mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-03-12 05:30:21 +03:00
This should include the latest version of every shader that was in the 2007 SDK. It also includes a smattering of debug shaders, both VR distortion shaders, and other assorted shaders that will hopefully be useful. None of these new files are included in the game shader DLL project. If you need to modify one of these shaders for use in your mod you will need to rename it so that you don't collide with the version of that shader that lives in stdshader_dx9.dll.
27 lines
877 B
Plaintext
27 lines
877 B
Plaintext
ps.1.1
|
|
|
|
; Get the 3-vector from the normal map
|
|
tex t0
|
|
|
|
; Perform matrix multiply to get a local normal bump. Then
|
|
; reflect the eye vector through the normal and sample from
|
|
; a cubic environment map.
|
|
texm3x3pad t1, t0_bx2
|
|
texm3x3pad t2, t0_bx2
|
|
texm3x3vspec t3, t0_bx2
|
|
|
|
mul r0.rgb, t3, c1 ; envmap color * envmaptint
|
|
+mov_sat r0.a, v0.a ; Put the cheap water blend factor here
|
|
|
|
dp3_sat t2, v0_bx2, t0_bx2 ; dot eye-vector with per-pixel normal from t0
|
|
|
|
; run Fresnel approx. on it: R0 + (1-R0) (1-cos(q))^5 in alpha channel
|
|
; NOTE: This is not perspective-correct and results in strange artifacts
|
|
mul r1.a, 1-t2.a, 1-t2.a ; squared
|
|
mul r1.a, r1.a, r1.a ; quartic
|
|
mul_sat r1.a, r1.a, 1-t2.a ; quintic
|
|
|
|
; t1.a is now the fresnel factor
|
|
add_sat r0.a, r1.a, r0.a ; Now we have the final blend factor between cheap water + refraction
|
|
|