| 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.