diff options
author | Graham Linden <graham@lindenlab.com> | 2019-05-04 09:11:59 -0700 |
---|---|---|
committer | Graham Linden <graham@lindenlab.com> | 2019-05-04 09:11:59 -0700 |
commit | 42397056089245da248d1aae6318239e90fbf866 (patch) | |
tree | 8ac6dc7ea7160a12f8b82216d474cb9470870ac4 /indra/newview | |
parent | 24acb7d5c3b6c3af4d7d814b8ccb0b9652eb38d3 (diff) |
Fix broken water reflection/refraction mix.
Restore 1.0 alpha to prevent atmo being applied directly to water.
Fix broken shadow frust generation.
Diffstat (limited to 'indra/newview')
-rw-r--r-- | indra/newview/app_settings/shaders/class1/deferred/waterF.glsl | 6 | ||||
-rw-r--r-- | indra/newview/pipeline.cpp | 3 |
2 files changed, 4 insertions, 5 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl index e72b36f28a..8fea4e5d27 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl @@ -149,14 +149,14 @@ void main() vec4 fb = texture2D(screenTex, distort2); //mix with reflection - color.rgb = fb.rgb; - color.rgb += refcol.rgb * df1; + // Note we actually want to use just df1, but multiplying by 0.999999 gets around an nvidia compiler bug + color.rgb = mix(fb.rgb, refcol.rgb, df1 * 0.99999); vec4 pos = vary_position; vec3 screenspacewavef = normalize((norm_mat*vec4(wavef, 1.0)).xyz); - frag_data[0] = vec4(color.rgb, 0.25); // diffuse + frag_data[0] = vec4(color.rgb, 0); // diffuse frag_data[1] = vec4(specular * 0.15, 0.5); // speccolor, spec frag_data[2] = vec4(encode_normal(screenspacewavef.xyz), 0.05, 0);// normalxy, 0, 0 } diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 9d8f5721d2..f1a75f1277 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -10181,8 +10181,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera) //LLVector3 n = RenderShadowNearDist; //F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] }; - LLVector3 caster_dir(environment.getIsSunUp() ? LLVector3(environment.getClampedSunNorm()) : - environment.getIsMoonUp() ? LLVector3(environment.getClampedMoonNorm()) : LLVector3(0,0,1)); + LLVector3 caster_dir(environment.getIsSunUp() ? mSunDir : mMoonDir); //put together a universal "near clip" plane for shadow frusta LLPlane shadow_near_clip; |