Skip to content
Snippets Groups Projects
Commit 2de9e631 authored by David Parks's avatar David Parks
Browse files

SL-18730 Dumb down water distortions to reduce appearance of brokenness.

parent 89f21f27
No related branches found
No related tags found
2 merge requests!3Update to main branch,!2Rebase onto current main branch
......@@ -120,12 +120,12 @@ void main()
vec3 pos = vary_position.xyz;
float dist = length(pos.xyz);
//normalize view vector
vec3 viewVec = normalize(pos.xyz);
//get wave normals
float dist = length(pos.xyz);
//normalize view vector
vec3 viewVec = normalize(pos.xyz);
//get wave normals
vec2 bigwave = vec2(refCoord.w, view.w);
vec3 wave1_a = texture(bumpMap, bigwave, -2 ).xyz*2.0-1.0;
vec3 wave2_a = texture2D(bumpMap, littleWave.xy).xyz*2.0-1.0;
......@@ -135,16 +135,24 @@ void main()
vec3 wave2_b = texture2D(bumpMap2, littleWave.xy).xyz*2.0-1.0;
vec3 wave3_b = texture2D(bumpMap2, littleWave.zw).xyz*2.0-1.0;
//wave1_a = wave2_a = wave3_a = wave1_b = wave2_b = wave3_b = vec3(0,0,1);
vec3 wave1 = BlendNormal(wave1_a, wave1_b);
vec3 wave2 = BlendNormal(wave2_a, wave2_b);
vec3 wave3 = BlendNormal(wave3_a, wave3_b);
wave1 = transform_normal(wave1);
wave2 = transform_normal(wave2);
wave3 = transform_normal(wave3);
vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
//wave1 = transform_normal(wave1);
//wave2 = transform_normal(wave2);
//wave3 = transform_normal(wave3);
vec3 wavef = (wave1 + wave2 * 0.4 + wave3 * 0.6) * 0.5;
vec3 waver = wavef*3;
wavef = transform_normal(wavef);
//wavef.z *= max(-viewVec.z, 0.1);
wavef = normalize(wavef);
......@@ -157,25 +165,20 @@ void main()
dot(viewVec, wave3)
) * fresnelScale + fresnelOffset;
vec2 distort = (refCoord.xy/refCoord.z) * 0.5 + 0.5;
float dist2 = dist;
dist = max(dist, 5.0);
float dmod = sqrt(dist);
vec2 dmod_scale = vec2(dmod*dmod, dmod);
float df1 = df.x + df.y + df.z;
//wavef = normalize(wavef - vary_normal);
//wavef = vary_normal;
vec3 waver = reflect(viewVec, -wavef)*3;
//figure out distortion vector (ripply)
vec2 distort2 = distort + waver.xy * refScale / max(dmod * df1, 1.0);
distort2 = clamp(distort2, vec2(0), vec2(0.99));
vec2 distort2 = distort + waver.xy * refScale / max(dmod, 1.0);
distort2 = clamp(distort2, vec2(0), vec2(0.999));
#ifdef TRANSPARENT_WATER
vec4 fb = texture2D(screenTex, distort2);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment