summaryrefslogtreecommitdiff
path: root/indra
diff options
context:
space:
mode:
authorRunitaiLinden <davep@lindenlab.com>2023-12-04 17:01:01 -0600
committerRunitaiLinden <davep@lindenlab.com>2023-12-04 17:01:01 -0600
commit18f42a659b98741a9d8c05731a8137080c9094b5 (patch)
tree7a706629714d0476519c8fdaab03786cc8581ceb /indra
parent6472b75bcd70470fe5775d1cf6eb70a75b3d76e5 (diff)
SL-20611 Followup -- fix edge cases with transparent PBR objects around eye/object above/below water.
Diffstat (limited to 'indra')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl10
1 files changed, 3 insertions, 7 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
index 80c1769b15..003dd05e6f 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl
@@ -82,9 +82,7 @@ vec3 srgb_to_linear(vec3 c);
vec3 linear_to_srgb(vec3 c);
void calcAtmosphericVarsLinear(vec3 inPositionEye, vec3 norm, vec3 light_dir, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive);
-vec3 atmosFragLightingLinear(vec3 color, vec3 additive, vec3 atten);
-
-vec4 applyWaterFogViewLinear(vec3 pos, vec4 color);
+vec4 applySkyAndWaterFog(vec3 pos, vec3 additive, vec3 atten, vec4 color);
void calcHalfVectors(vec3 lv, vec3 n, vec3 v, out vec3 h, out vec3 l, out float nh, out float nl, out float nv, out float vh, out float lightDist);
float calcLegacyDistanceAttenuation(float distance, float falloff);
@@ -241,10 +239,7 @@ void main()
color.rgb += light.rgb;
- color.rgb = atmosFragLightingLinear(color.rgb, additive, atten);
-
- vec4 temp = applyWaterFogViewLinear(pos, vec4(color, 0.0));
- color = temp.rgb;
+ color.rgb = applySkyAndWaterFog(pos.xyz, additive, atten, vec4(color, 1.0)).rgb;
float a = basecolor.a*vertex_color.a;
@@ -300,6 +295,7 @@ void main()
float a = basecolor.a*vertex_color.a;
color += colorEmissive;
+
color = linear_to_srgb(color);
frag_color = max(vec4(color.rgb,a), vec4(0));
}