diff options
| author | RunitaiLinden <davep@lindenlab.com> | 2023-11-16 16:46:12 -0600 | 
|---|---|---|
| committer | RunitaiLinden <davep@lindenlab.com> | 2023-11-16 16:46:12 -0600 | 
| commit | bdb53fd56d56c659941e7e63f83cefc366acef6d (patch) | |
| tree | 89a6744852e7df622df02477a54c977aa91783d7 /indra/newview/app_settings/shaders/class2/deferred | |
| parent | 361efcb9267f2c91f88198081bbe6ac2264766fd (diff) | |
SL-20611 Make haze effect local lights -- move sky and water haze to their own passes and unify sky and water haze in forward rendering shaders.
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred')
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl | 14 | ||||
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl | 15 | 
2 files changed, 10 insertions, 19 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl index b63f3b60f9..07fa5cd01c 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl @@ -65,9 +65,7 @@ uniform vec3 light_diffuse[8];  void waterClip(vec3 pos); -#ifdef WATER_FOG -vec4 applyWaterFogViewLinear(vec3 pos, vec4 color, vec3 sunlit); -#endif +vec4 applyWaterFogViewLinear(vec3 pos, vec4 color);  vec3 srgb_to_linear(vec3 c);  vec3 linear_to_srgb(vec3 c); @@ -270,12 +268,6 @@ void main()      color.rgb *= diffuse_linear.rgb; -    color.rgb = atmosFragLightingLinear(color.rgb, additive, atten); - -#ifdef WATER_FOG -    color = applyWaterFogViewLinear(pos.xyz, color, sunlit_linear); -#endif // WATER_FOG -      vec4 light = vec4(0,0,0,0);     #define LIGHT_LOOP(i) light.rgb += calcPointLightOrSpotLight(light_diffuse[i].rgb, diffuse_linear.rgb, pos.xyz, norm, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z, light_attenuation[i].w); @@ -291,6 +283,10 @@ void main()      // sum local light contrib in linear colorspace      color.rgb += light.rgb; +    color.rgb = atmosFragLightingLinear(color.rgb, additive, atten); + +    color = applyWaterFogViewLinear(pos.xyz, color); +  #endif // #else // FOR_IMPOSTOR  #ifdef IS_HUD diff --git a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl index 35d752be02..80c1769b15 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl @@ -84,9 +84,7 @@ 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); -#ifdef WATER_FOG -vec4 applyWaterFogViewLinear(vec3 pos, vec4 color, vec3 sunlit); -#endif +vec4 applyWaterFogViewLinear(vec3 pos, 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); @@ -228,13 +226,6 @@ void main()      color = pbrBaseLight(diffuseColor, specularColor, metallic, v, norm.xyz, perceptualRoughness, light_dir, sunlit_linear, scol, radiance, irradiance, colorEmissive, ao, additive, atten); -    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 light = vec3(0);      // Punctual lights @@ -250,7 +241,11 @@ void main()      color.rgb += light.rgb; +    color.rgb = atmosFragLightingLinear(color.rgb, additive, atten); +    vec4 temp = applyWaterFogViewLinear(pos, vec4(color, 0.0)); +    color = temp.rgb; +      float a = basecolor.a*vertex_color.a;      frag_color = max(vec4(color.rgb,a), vec4(0)); | 
