diff options
Diffstat (limited to 'indra/newview/app_settings')
9 files changed, 37 insertions, 20 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index b439fbbff6..e0bf58a5c2 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -223,7 +223,9 @@ void main()      float ambient = da;      ambient *= 0.5;      ambient *= ambient; -    ambient = min(getAmbientClamp(), 1.0 - ambient); + +    float ambient_clamp = getAmbientClamp() + 0.2; +    ambient = (1.0 - ambient) * ambient_clamp;      vec3 sun_contrib = min(final_da, shadow) * sunlit; diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 0880a73b26..b9c16bfa11 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -320,7 +320,9 @@ void main()      float ambient = da;      ambient *= 0.5;      ambient *= ambient; -    ambient = min(getAmbientClamp(), 1.0 - ambient); +  +    float ambient_clamp = getAmbientClamp() + 0.2; +    ambient = (1.0 - ambient) * ambient_clamp;      vec3 sun_contrib = min(final_da, shadow) * sunlit; diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index c81d0f97da..40bb705326 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -106,7 +106,10 @@ void main()          float ambient = da;          ambient *= 0.5;          ambient *= ambient; -        ambient = min(getAmbientClamp(), 1.0 - ambient); + +        ambient = (1.0 - ambient); +        float ambient_clamp = getAmbientClamp() + 0.1; +        ambient *= ambient_clamp;          vec3 sun_contrib = final_da * sunlit; @@ -179,11 +182,10 @@ vec3 post_atmo = color.rgb;              bloom = fogged.a;          #endif +// srgb colorspace debuggables  //color.rgb = amblit; -//color.rgb = vec3(ambient);  //color.rgb = sunlit;  //color.rgb = post_ambient; -//color.rgb = vec3(final_da);  //color.rgb = sun_contrib;  //color.rgb = post_sunlight;  //color.rgb = diffuse_srgb.rgb; @@ -197,6 +199,11 @@ vec3 post_atmo = color.rgb;          color.rgb = srgb_to_linear(color.rgb);      } +// linear debuggables +//color.rgb = vec3(final_da); +//color.rgb = vec3(ambient); +//color.rgb = vec3(scol); +      frag_color.rgb = color.rgb;      frag_color.a = bloom;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl index 38230836eb..cf635ffa3f 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl @@ -28,11 +28,12 @@  // All lights, no specular highlights  vec3 atmosAmbient();  vec4 sumLights(vec3 pos, vec3 norm, vec4 color); +float getAmbientClamp();  vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)  {  	vec4 c = sumLights(pos, norm, color); -    c.rgb += atmosAmbient() * color.rgb * 0.5; +    c.rgb += atmosAmbient() * color.rgb * 0.5 * getAmbientClamp();      return c;  } diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl index 68eb671e7c..55ffbdcc46 100644 --- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl +++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsFuncs.glsl @@ -44,7 +44,7 @@ uniform float sun_moon_glow_factor;  float getAmbientClamp()  { -    return 0.45f; +    return 0.9;  }  void calcAtmosphericVars(vec3 inPositionEye, float ambFactor, out vec3 sunlit, out vec3 amblit, out vec3 additive, out vec3 atten) { diff --git a/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl b/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl index eb95890e08..dca2862b5a 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/skyF.glsl @@ -88,6 +88,7 @@ vec3 halo22(float d)  /// Soft clips the light with a gamma correction  vec3 scaleSoftClip(vec3 light); +vec3 srgb_to_linear(vec3 c);  void main()  { @@ -194,10 +195,12 @@ void main()      color.rgb += halo_22; -    color *= 2.; +    color.rgb *= 2.; +    color.rgb = scaleSoftClip(color.rgb); +    color.rgb = srgb_to_linear(color.rgb);      /// Gamma correct for WL (soft clip effect). -    frag_data[0] = vec4(scaleSoftClip(color.rgb), 1.0); +    frag_data[0] = vec4(color.rgb, 1.0);      frag_data[1] = vec4(0.0,0.0,0.0,0.0);      frag_data[2] = vec4(0.5,0.5,0.0,1.0); //1.0 in norm.w masks off fog  } diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index 1b2b835ad1..94abcf08ed 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -24,6 +24,7 @@   */  #extension GL_ARB_texture_rectangle : enable +#extension GL_ARB_shader_texture_lod : enable  /*[EXTRA_CODE_HERE]*/ @@ -87,14 +88,11 @@ void main()      float da = dot(normalize(norm.xyz), light_dir.xyz);            da = clamp(da, -1.0, 1.0); -     -      float final_da = da;            final_da = clamp(final_da, 0.0, 1.0); -    vec4 diffuse_srgb   = texture2DRect(diffuseRect, tc); -    vec4 diffuse_linear = vec4(srgb_to_linear(diffuse_srgb.rgb), diffuse_srgb.a); -  +    vec4 diffuse_linear = texture2DRect(diffuseRect, tc); +    vec4 diffuse_srgb   = vec4(linear_to_srgb(diffuse_linear.rgb), diffuse_linear.a);      // clamping to alpha value kills underwater shadows...      //scol = max(scol_ambocc.r, diffuse_linear.a); @@ -116,7 +114,10 @@ void main()          float ambient = da;          ambient *= 0.5;          ambient *= ambient; -        ambient = min(getAmbientClamp(), 1.0 - ambient); + +        float ambient_clamp = getAmbientClamp() + 0.1; +        ambient = (1.0 - ambient); +        ambient *= ambient_clamp;          vec3 sun_contrib = min(scol, final_da) * sunlit; @@ -129,7 +130,7 @@ vec3 post_ambient = color.rgb;  vec3 post_sunlight = color.rgb; -        color.rgb *= diffuse_srgb.rgb; +        color.rgb *= diffuse_linear.rgb;  vec3 post_diffuse = color.rgb; @@ -155,7 +156,7 @@ vec3 post_diffuse = color.rgb;                  float scontrib = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da);                  vec3 sp = sun_contrib*scontrib / 16.0;                  sp = clamp(sp, vec3(0), vec3(1)); -                bloom += dot (sp, sp) / 6.0; +                bloom += dot(sp, sp) / 6.0;                  color += sp * spec.rgb;              }          } @@ -163,7 +164,7 @@ vec3 post_diffuse = color.rgb;   vec3 post_spec = color.rgb;  #ifndef WATER_FOG -        color.rgb += diffuse_srgb.a * diffuse_srgb.rgb; +        color.rgb = mix(color.rgb, diffuse_srgb.rgb, diffuse_srgb.a);  #endif          if (envIntensity > 0.0) diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl index a23a5d4076..5b1eb55e0c 100644 --- a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl +++ b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl @@ -88,7 +88,7 @@ void main()  	vec4 sunlight = (sun_up_factor == 1) ? sunlight_color : moonlight_color;  	vec4 light_atten; -    float dens_mul = density_multiplier * 0.45; +    float dens_mul = density_multiplier;  	// Sunlight attenuation effect (hue and brightness) due to atmosphere  	// this is used later for sunlight modulation at various altitudes diff --git a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl index 48c883d98a..effe4c5971 100644 --- a/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl +++ b/indra/newview/app_settings/shaders/class3/lighting/lightV.glsl @@ -28,11 +28,12 @@  // All lights, no specular highlights  vec3 atmosAmbient();  vec4 sumLights(vec3 pos, vec3 norm, vec4 color); +float getAmbientClamp();  vec4 calcLighting(vec3 pos, vec3 norm, vec4 color)  {  	vec4 c = sumLights(pos, norm, color); -    c.rgb += atmosAmbient() * color.rgb; +    c.rgb += atmosAmbient() * color.rgb * getAmbientClamp();      return c;   } | 
