diff options
| author | RunitaiLinden <davep@lindenlab.com> | 2023-10-02 15:16:53 -0500 | 
|---|---|---|
| committer | RunitaiLinden <davep@lindenlab.com> | 2023-10-02 15:16:53 -0500 | 
| commit | 41433fdb08b50e4721b2285a045cc8f14e82433c (patch) | |
| tree | 23cc8a45952d84d82eb900568e26fa4782d0b541 /indra/newview/app_settings/shaders/class2/deferred | |
| parent | 942df58666407b405ed4f82e05dea19dcc1a9f18 (diff) | |
SL-20394 Remove "glare" effect from PBR alpha shaders.
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred')
| -rw-r--r-- | indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl | 23 | 
1 files changed, 6 insertions, 17 deletions
| diff --git a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl index be66b6feb2..35d752be02 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/pbralphaF.glsl @@ -112,16 +112,14 @@ vec3 pbrBaseLight(vec3 diffuseColor,                    vec3 colorEmissive,                    float ao,                    vec3 additive, -                  vec3 atten, -                  out vec3 specContrib); +                  vec3 atten);  vec3 pbrPunctual(vec3 diffuseColor, vec3 specularColor,                       float perceptualRoughness,                       float metallic,                      vec3 n, // normal                      vec3 v, // surface point to camera -                    vec3 l, //surface point to light -                    out vec3 specContrib);  +                    vec3 l); //surface point to light  vec3 calcPointLightOrSpotLight(vec3 diffuseColor, vec3 specularColor,                       float perceptualRoughness,  @@ -132,7 +130,7 @@ vec3 calcPointLightOrSpotLight(vec3 diffuseColor, vec3 specularColor,                      vec3 lp, // light position                      vec3 ld, // light direction (for spotlights)                      vec3 lightColor, -                    float lightSize, float falloff, float is_pointlight, inout float glare, float ambiance) +                    float lightSize, float falloff, float is_pointlight, float ambiance)  {      vec3 color = vec3(0,0,0); @@ -154,10 +152,7 @@ vec3 calcPointLightOrSpotLight(vec3 diffuseColor, vec3 specularColor,          vec3 intensity = spot_atten * dist_atten * lightColor * 3.0; //magic number to balance with legacy materials -        vec3 speccol; -        color = intensity*pbrPunctual(diffuseColor, specularColor, perceptualRoughness, metallic, n.xyz, v, lv, speccol); -        speccol *= intensity; -        glare += max(max(speccol.r, speccol.g), speccol.b); +        color = intensity*pbrPunctual(diffuseColor, specularColor, perceptualRoughness, metallic, n.xyz, v, lv);      }      return color; @@ -166,7 +161,6 @@ vec3 calcPointLightOrSpotLight(vec3 diffuseColor, vec3 specularColor,  void main()  {      vec3 color = vec3(0,0,0); -    float glare = 0.0;      vec3  light_dir   = (sun_up_factor == 1) ? sun_dir : moon_dir;      vec3  pos         = vary_position; @@ -232,9 +226,7 @@ void main()      vec3 v = -normalize(pos.xyz); -    vec3 spec; -    color = pbrBaseLight(diffuseColor, specularColor, metallic, v, norm.xyz, perceptualRoughness, light_dir, sunlit_linear, scol, radiance, irradiance, colorEmissive, ao, additive, atten, spec); -    glare += max(max(spec.r, spec.g), spec.b); +    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); @@ -246,7 +238,7 @@ void main()      vec3 light = vec3(0);      // Punctual lights -#define LIGHT_LOOP(i) light += calcPointLightOrSpotLight(diffuseColor, specularColor, perceptualRoughness, metallic, norm.xyz, pos.xyz, v, light_position[i].xyz, light_direction[i].xyz, light_diffuse[i].rgb, light_deferred_attenuation[i].x, light_deferred_attenuation[i].y, light_attenuation[i].z, glare, light_attenuation[i].w); +#define LIGHT_LOOP(i) light += calcPointLightOrSpotLight(diffuseColor, specularColor, perceptualRoughness, metallic, norm.xyz, pos.xyz, v, light_position[i].xyz, light_direction[i].xyz, light_diffuse[i].rgb, light_deferred_attenuation[i].x, light_deferred_attenuation[i].y, light_attenuation[i].z, light_attenuation[i].w);      LIGHT_LOOP(1)      LIGHT_LOOP(2) @@ -261,9 +253,6 @@ void main()      float a = basecolor.a*vertex_color.a; -    glare = min(glare, 1.0); -    a = max(a, glare); -      frag_color = max(vec4(color.rgb,a), vec4(0));  } | 
