diff options
Diffstat (limited to 'materialsystem/stdshaders/WorldTwoTextureBlend_SelfIlluminated.psh')
| -rw-r--r-- | materialsystem/stdshaders/WorldTwoTextureBlend_SelfIlluminated.psh | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/materialsystem/stdshaders/WorldTwoTextureBlend_SelfIlluminated.psh b/materialsystem/stdshaders/WorldTwoTextureBlend_SelfIlluminated.psh new file mode 100644 index 0000000..75ce4b5 --- /dev/null +++ b/materialsystem/stdshaders/WorldTwoTextureBlend_SelfIlluminated.psh @@ -0,0 +1,27 @@ +ps.1.1 + +;------------------------------------------------------------------------------ +; Draw a texture . . woo hoo! +; t0 - texture +; +; The texture coordinates need to be defined as follows: +; tc0 - texcoords +;------------------------------------------------------------------------------ + +tex t0 +tex t1 +tex t2 + +mov r0.rgb, t0 + +mov r0.a, v0.a ; Grab alpha from vertex color + +lrp r0.rgb, t2.a, t2, r0 ; Base = base * (1 - detail alpha) + detail * detail alpha +mul r0.rgb, r0, v0 ; modulate by vertex color +mul r0.rgb, t1, r0 ; fold in lightmap (color only) +mul_x2 r0.rgb, c0, r0 ; * 2 * (overbrightFactor/2) + +mul r1.rgb, c1, t0 ; Self illum * tint ++ mul r1.a, t0.a, 1-t2.a ; Reduce self-illum amount based on 1 - detailalpha + +lrp r0.rgb, t0.a, r1, r0 ; Blend between self-illum + base * lightmap + |