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.
43 lines
1.2 KiB
Plaintext
43 lines
1.2 KiB
Plaintext
ps.1.1
|
|
|
|
;------------------------------------------------------------------------------
|
|
; Environment mapping on a bumped surface
|
|
; t0 - Normalmap
|
|
; t3 - Cube environment map (*must* be a cube map!)
|
|
;
|
|
; c0 - color to multiply the results by
|
|
; Input texture coords required here are a little wonky.
|
|
; tc0.uv <- U,V into the normal map
|
|
; tc1.uvw, tc2.uvw, tc3.uvw <- 3x3 matrix transform
|
|
; from tangent space->env map space
|
|
; tc1.q, tc2.q, tc3.q <- eye vector in env map space
|
|
;------------------------------------------------------------------------------
|
|
; This version doesn't multiply by lighting.
|
|
|
|
; 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
|
|
|
|
; result goes in output color
|
|
mul r0.rgb, t3, c0 ; constant color
|
|
+mov r0.a, c0.a
|
|
|
|
mul r1.rgb, r0, r0
|
|
lrp r0.rgb, c1, r1, r0 ; blend between color and color * color
|
|
dp3 r1.rgb, r0, c3
|
|
lrp r0.rgb, c2, r0, r1 ; blend between color and greyscale
|
|
|
|
; Multiply the output color by the alpha channel of the normal map.
|
|
mul r0.rgb, t0.a, r0
|
|
|
|
|
|
|
|
|
|
|