diff options
author | RunitaiLinden <davep@lindenlab.com> | 2023-12-04 17:01:01 -0600 |
---|---|---|
committer | RunitaiLinden <davep@lindenlab.com> | 2023-12-04 17:01:01 -0600 |
commit | 18f42a659b98741a9d8c05731a8137080c9094b5 (patch) | |
tree | 7a706629714d0476519c8fdaab03786cc8581ceb /indra/newview/app_settings/shaders/class2 | |
parent | 6472b75bcd70470fe5775d1cf6eb70a75b3d76e5 (diff) |
SL-20611 Followup -- fix edge cases with transparent PBR objects around eye/object above/below water.
Diffstat (limited to 'indra/newview/app_settings/shaders/class2')
-rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl | 10 |
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)); } |