summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class1/deferred
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-12-04 16:50:06 -0600
committerRunitaiLinden <davep@lindenlab.com>2023-12-04 16:50:06 -0600
commit6472b75bcd70470fe5775d1cf6eb70a75b3d76e5 (patch)
tree4fae5abd39b9af7bad0f6ed55b651d87fa3bfc3b /indra/newview/app_settings/shaders/class1/deferred
parentc573d27e5baf23adbc14153c4d65a581f55febb4 (diff)
SL-20611 Followup -- fix edge cases with transparent objects around eye/object above/below water.
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl21
1 files changed, 10 insertions, 11 deletions
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
index 1de8b25a7d..8b2a69b924 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
@@ -35,19 +35,19 @@ in vec3 vary_position;
in vec4 vertex_color;
in vec2 vary_texcoord0;
-vec4 applyWaterFogViewLinear(vec3 pos, vec4 color);
-
vec3 srgb_to_linear(vec3 cs);
vec3 linear_to_srgb(vec3 cl);
-vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten);
-void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten);
#ifdef HAS_ALPHA_MASK
uniform float minimum_alpha;
#endif
#ifdef IS_ALPHA
+uniform vec4 waterPlane;
void waterClip(vec3 pos);
+void calcAtmosphericVars(vec3 inPositionEye, vec3 light_dir, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive,
+ out vec3 atten);
+vec4 applySkyAndWaterFog(vec3 pos, vec3 additive, vec3 atten, vec4 color);
#endif
void main()
@@ -77,21 +77,20 @@ void main()
vec3 pos = vary_position;
#ifndef IS_HUD
+ color.rgb = srgb_to_linear(color.rgb);
+ color.a = final_alpha;
+#ifdef IS_ALPHA
+
vec3 sunlit;
vec3 amblit;
vec3 additive;
vec3 atten;
calcAtmosphericVars(pos.xyz, vec3(0), 1.0, sunlit, amblit, additive, atten);
- color.rgb = srgb_to_linear(color.rgb);
-
-#ifdef IS_ALPHA
- color.rgb = atmosFragLighting(color.rgb, additive, atten);
+ color.rgb = applySkyAndWaterFog(pos, additive, atten, color).rgb;
+
#endif
- vec4 fogged = applyWaterFogViewLinear(pos, vec4(color.rgb, final_alpha));
- color.rgb = fogged.rgb;
- color.a = fogged.a;
#endif
frag_color = max(color, vec4(0));