aboutsummaryrefslogtreecommitdiff
path: root/mp/src/materialsystem/stdshaders/LightmappedGeneric_BumpmappedLightmap_blend_ps14.psh
blob: 2b43ee332ce7d886474827ef91e086b1211dd5fc (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
;------------------------------------------------------------------------------
; Computes the diffuse component of lighting using lightmap + bumpmap
; t0 - Normalmap
; t1 - Lightmap1
; t2 - Lightmap2
; t3 - Lightmap3
; t4 - Base1
; t5 - Base2
;
; The texture coordinates need to be defined as follows:
; tc0 - Normalmap and lightmap texture coordinates
; c0, c1, c2 - Axes of the lightmap coordinate system in tangent space 
;------------------------------------------------------------------------------
ps.1.4

; output = (lightmapColor[0] * ( ( N dot basis[0] )^2 ) + 
;	       lightmapColor[1] * ( ( N dot basis[1] )^2 ) +
;	       lightmapColor[2] * ( ( N dot basis[2] )^2 ) ) * lerp(base1, base2, lightmapColor[0].a)

; Get the 3-vector from the normal map
texld r0, t0

dp3 r5.r, r0_bx2, c0
dp3 r5.g, r0_bx2, c1
dp3 r5.b, r0_bx2, c2
mul	r5.rgb, r5, r5

phase

; Sample the lightmaps
texld r1, t1 
texld r2, t2 
texld r3, t3 

; Sample the base textures
texld r4, t4
texld r5, t5

mul	r1, r1, r5.r
mad r1, r2, r5.g, r1
mad r1, r3, r5.g, r1

; blend base textures
lrp	r4, r4, r5, r1.a

; assume overbright_2 !!!
mul_x2 r0, r1, r4