summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class3/deferred
diff options
context:
space:
mode:
authorRye Mutt <rye@alchemyviewer.org>2023-05-25 16:09:22 -0400
committerGitHub <noreply@github.com>2023-05-25 15:09:22 -0500
commitcbd17fce86cc30434d6d665338a7d771bddcad8b (patch)
tree91682cafd5e23d83e1071b6736528b8fefe2a626 /indra/newview/app_settings/shaders/class3/deferred
parentc12712aa9609325ba3247a67354e91e9342106d6 (diff)
Fix underwater fog mismatch between opaque and alpha blend when local lights are nearby (#227)
* Fix water fog mismatch between alpha blend and opaque when local light is nearby * Add PBR underwater alpha blend shader
Diffstat (limited to 'indra/newview/app_settings/shaders/class3/deferred')
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/materialF.glsl12
1 files changed, 6 insertions, 6 deletions
diff --git a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
index ba19fe0f19..5fb5647d35 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/materialF.glsl
@@ -38,7 +38,7 @@ uniform float emissive_brightness; // fullbright flag, 1.0 == fullbright, 0.0 o
uniform int sun_up_factor;
#ifdef WATER_FOG
-vec4 applyWaterFogView(vec3 pos, vec4 color);
+vec4 applyWaterFogViewLinear(vec3 pos, vec4 color, vec3 sunlit);
#endif
vec3 atmosFragLightingLinear(vec3 l, vec3 additive, vec3 atten);
@@ -411,6 +411,11 @@ void main()
color.rgb = atmosFragLightingLinear(color.rgb, additive, atten);
+#ifdef WATER_FOG
+ vec4 temp = applyWaterFogViewLinear(pos, vec4(color, 0.0), sunlit_linear);
+ color = temp.rgb;
+#endif
+
vec3 npos = normalize(-pos.xyz);
vec3 light = vec3(0, 0, 0);
@@ -431,11 +436,6 @@ void main()
glare = min(glare, 1.0);
float al = max(diffcol.a, glare) * vertex_color.a;
-#ifdef WATER_FOG
- vec4 temp = applyWaterFogView(pos, vec4(color, 0.0));
- color = temp.rgb;
-#endif
-
frag_color = max(vec4(color, al), vec4(0));
#else // mode is not DIFFUSE_ALPHA_MODE_BLEND, encode to gbuffer