Joe Ludwig 7309a5f13f Added many shader source files
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.
2013-12-23 15:00:03 -08:00

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