aboutsummaryrefslogtreecommitdiff
path: root/sp/src/materialsystem/stdshaders/WaterReflect_ps11.psh
blob: 785ced6445b67e7802e7708589c1354f2d7f79cc (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
ps.1.1

; t0: 
;		texture: dudv map
;		texcoords: dudvmap texcoords
; t1:
;		texture: reflection render target
;		texcoords: 
; t2:	
;		texture: normal map (usef for fresnel calculation)
;		texcoords: 
; t4:	texture: normalization cube map
;		texcoords: eye vect

tex t0				; sample dudv map
texbem t1, t0		; reflection
tex t2				; normal map
tex t3				; eye vector (through normalization cubemap)

; dot eye-vector with per-pixel normal from t2
dp3_sat	r1.rgba, t3_bx2, t2_bx2

; run Fresnel approx. on it: R0 + (1-R0) (1-cos(q))^5
mul r0.a, 1-r1.a, 1-r1.a			// squared
mul r0.a, r0.a, r0.a				// quartic
mul r0.rgb, t1, c0				// shove color from reflection render target into r0
+mul_sat r0.a, r0.a, 1-r1.a			// quintic