diff options
| author | Rider Linden <rider@lindenlab.com> | 2019-04-10 17:48:06 +0000 | 
|---|---|---|
| committer | Rider Linden <rider@lindenlab.com> | 2019-04-10 17:48:06 +0000 | 
| commit | 37bd0b809f8d5db5b2fbee5b7c63631e4ffc2a6f (patch) | |
| tree | 7d92ac04a99115a1cda0d268018c8d8589655df0 /indra/newview/app_settings/shaders/class1/deferred | |
| parent | 4e1874184e5eb2fc69702f0934f245e8b9dd0350 (diff) | |
| parent | de1a88d6bb17e767a9db8979ea2f7c0b3ba4cb41 (diff) | |
Merged in Geenz/viewer-eep/OPEN-340 (pull request #345)
OPEN-340 & OPEN-343 - Consolidate shader atmospheric calcs into a singular utility shader + fix fog on fullbright in deferred
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
4 files changed, 13 insertions, 8 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 4fe0d1351d..ca82dd9432 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -77,7 +77,7 @@ vec2 encode_normal (vec3 n);  vec3 scaleSoftClipFrag(vec3 l);  vec3 atmosFragLighting(vec3 light, vec3 additive, vec3 atten); -void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive); +void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 atten, out vec3 additive);  #ifdef HAS_SHADOW  float sampleDirectionalShadow(vec3 pos, vec3 norm, vec2 pos_screen); @@ -184,7 +184,7 @@ void main()      vec3 additive;      vec3 atten; -    calcFragAtmospherics(pos.xyz, 1.0, sunlit, amblit, additive, atten); +    calcAtmosphericVars(pos.xyz, 1.0, sunlit, amblit, additive, atten);      vec2 abnormal = encode_normal(norm.xyz); diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl index d5ef010017..f98fc0d518 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl @@ -45,6 +45,9 @@ VARYING vec2 vary_texcoord0;  vec4 applyWaterFogView(vec3 pos, vec4 color);  #endif +vec3 fullbrightAtmosTransport(vec3 light); +vec3 fullbrightScaleSoftClip(vec3 light); +  #ifdef HAS_ALPHA_MASK  uniform float minimum_alpha;  #endif @@ -74,6 +77,8 @@ void main()  	color.rgb = fogged.rgb;  	color.a   = fogged.a;  #else +	color.rgb = fullbrightAtmosTransport(color.rgb); +	color.rgb = fullbrightScaleSoftClip(color.rgb);  	color.a   = final_alpha;  #endif diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 6d7162b5a2..9b07c11361 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -41,7 +41,7 @@ vec4 applyWaterFogView(vec3 pos, vec4 color);  vec3 atmosFragLighting(vec3 l, vec3 additive, vec3 atten);  vec3 scaleSoftClipFrag(vec3 l); -void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten); +void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten);  vec3 srgb_to_linear(vec3 cs);  vec3 linear_to_srgb(vec3 cs); @@ -290,7 +290,7 @@ void main()      vec3 additive;      vec3 atten; -    calcFragAtmospherics(pos.xyz, 1.0, sunlit, amblit, additive, atten); +    calcAtmosphericVars(pos.xyz, 1.0, sunlit, amblit, additive, atten);      vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz)); diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index 4b9e8290dd..ff30004ffd 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -71,7 +71,7 @@ vec3 getNorm(vec2 pos_screen);  vec3 atmosFragLighting(vec3 l, vec3 additive, vec3 atten);  vec3 fullbrightAtmosTransportFrag(vec3 l, vec3 additive, vec3 atten); -void calcFragAtmospherics(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten); +void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten);  vec3 scaleSoftClipFrag(vec3 l); @@ -107,8 +107,8 @@ void main()          vec3 additive;          vec3 atten; -        calcFragAtmospherics(pos.xyz, 1.0, sunlit, amblit, additive, atten); - +        calcAtmosphericVars(pos.xyz, 1.0, sunlit, amblit, additive, atten); +        sunlit *= 0.5;          float ambient = da;          ambient *= 0.5;          ambient *= ambient; @@ -166,7 +166,7 @@ vec3 post_diffuse = col.rgb;              col = mix(col.rgb, refcol, envIntensity);           } -        if (norm.w < 0.5) +        if (norm.w < 1)          {              col = atmosFragLighting(col, additive, atten);              col = scaleSoftClipFrag(col); | 
