Line | |
---|
1 | sampler Tex: register(s0); |
---|
2 | sampler Env: register(s1); |
---|
3 | float off; |
---|
4 | |
---|
5 | float4 main(float2 texCoord: TEXCOORD0, float3 viewVec: TEXCOORD1) : COLOR { |
---|
6 | const float4 waterColor = float4(0.3, 0.4, 1.0, 0.0); |
---|
7 | |
---|
8 | float4 s = tex2D(Tex, texCoord) - 0.5; |
---|
9 | float sobelX = s.z; |
---|
10 | float sobelY = s.w; |
---|
11 | |
---|
12 | float3 normal = float3(sobelX, 0.04, sobelY); |
---|
13 | |
---|
14 | normal = normalize(normal); |
---|
15 | viewVec = normalize(viewVec); |
---|
16 | |
---|
17 | float3 reflVec = reflect(viewVec, normal); |
---|
18 | float4 refl = texCUBE(Env, reflVec) * 0.9; |
---|
19 | |
---|
20 | float3 refrVec = refract(viewVec, normal, 0.85); |
---|
21 | float4 refr = texCUBE(Env, refrVec) * waterColor; |
---|
22 | |
---|
23 | return lerp(refl, refr, -dot(viewVec, normal)); |
---|
24 | } |
---|
Note: See
TracBrowser
for help on using the repository browser.