diff options
Diffstat (limited to 'indra/newview/app_settings')
9 files changed, 11 insertions, 21 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl index d29e8a9423..eb6e56e718 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl @@ -40,6 +40,8 @@ uniform sampler2D specularMap;  VARYING vec2 vary_texcoord0; +vec3 linear_to_srgb(vec3 c); +  void main()   {  	vec4 col = texture2D(diffuseMap, vary_texcoord0.xy); @@ -52,6 +54,7 @@ void main()  	vec4 norm = texture2D(normalMap,   vary_texcoord0.xy);  	vec4 spec = texture2D(specularMap, vary_texcoord0.xy); +	col.rgb = linear_to_srgb(col.rgb);  	frag_data[0] = vec4(col.rgb, 0.0);  	frag_data[1] = spec;  	frag_data[2] = vec4(norm.xy,0,0); diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 80d19102b6..bb69e45816 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -159,11 +159,6 @@ vec3 calcPointLightOrSpotLight(vec3 light_col, vec3 npos, vec3 diffuse, vec4 spe                  vec3 speccol = lit*scol*light_col.rgb*spec.rgb;                  speccol = clamp(speccol, vec3(0), vec3(1));                  col += speccol; - -                float cur_glare = max(speccol.r, speccol.g); -                cur_glare = max(cur_glare, speccol.b); -                glare = max(glare, speccol.r); -                glare += max(cur_glare, 0.0);              }          }      } @@ -406,6 +401,8 @@ void main()      vec3 light = vec3(0, 0, 0); +    final_specular.rgb = srgb_to_linear(final_specular.rgb); // SL-14035 +  #define LIGHT_LOOP(i) light.rgb += calcPointLightOrSpotLight(light_diffuse[i].rgb, npos, diffuse.rgb, final_specular, pos.xyz, norm.xyz, light_position[i], light_direction[i].xyz, light_attenuation[i].x, light_attenuation[i].y, light_attenuation[i].z, glare, light_attenuation[i].w );      LIGHT_LOOP(1) diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl index 8c402fcb54..09c47165dd 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl @@ -73,9 +73,7 @@ void main()      vec3 norm = getNorm(frag.xy);      vec4 spec = texture2DRect(specularRect, frag.xy); -    spec.rgb  = srgb_to_linear(spec.rgb);      vec3 diff = texture2DRect(diffuseRect, frag.xy).rgb; -    diff.rgb  = srgb_to_linear(diff.rgb);      float noise = texture2D(noiseMap, frag.xy / 128.0).b;      vec3  npos  = normalize(-pos); diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index 9bba45bc4e..ec3fb9c543 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -182,10 +182,6 @@ void main()  	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; -    // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space. -    //          We can't switch to linear here unless we do it everywhere* -	// *gbuffer is sRGB, convert to linear whenever sampling from it -    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);  	vec3 dlit = vec3(0, 0, 0); diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl index d805c9ea48..18616a9bb3 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl @@ -90,7 +90,6 @@ void main()      float noise = texture2D(noiseMap, frag.xy/128.0).b;      vec3 col = texture2DRect(diffuseRect, frag.xy).rgb; -    col.rgb = srgb_to_linear(col.rgb);      float fa = falloff+1.0;      float dist_atten = clamp(1.0-(dist-1.0*(1.0-fa))/fa, 0.0, 1.0); @@ -127,7 +126,7 @@ void main()      {          discard;      } -//col.rgb = vec3(0);         +      frag_color.rgb = col;         frag_color.a = 0.0;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index f80f1a985a..7f2c603f87 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -90,7 +90,7 @@ void main()      vec4 diffuse = texture2DRect(diffuseRect, tc);      //convert to gamma space -    //diffuse.rgb = linear_to_srgb(diffuse.rgb); +    diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14035      vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);      vec3 color = vec3(0); diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 5d7a28c359..1b7a1cc6ec 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -191,10 +191,6 @@ void main()      float da = dot(norm, lv);      vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; -    // SL-12005 Projector light pops as we get closer, more objectionable than being in wrong color space. -    //          We can't switch to linear here unless we do it everywhere* -    // *gbuffer IS sRGB, convert to linear since this shader outputs linear -    diff_tex.rgb = srgb_to_linear(diff_tex.rgb);      vec4 spec = texture2DRect(specularRect, frag.xy); diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index f4db53e0b7..7700d16007 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -87,8 +87,9 @@ void main()      float light_gamma = 1.0 / 1.3;      da                = pow(da, light_gamma); -    vec4 diffuse = texture2DRect(diffuseRect, tc); -    vec4 spec    = texture2DRect(specularRect, vary_fragcoord.xy); +    vec4 diffuse     = texture2DRect(diffuseRect, tc); +         diffuse.rgb = linear_to_srgb(diffuse.rgb); // SL-14025 +    vec4 spec        = texture2DRect(specularRect, vary_fragcoord.xy);      vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;      scol_ambocc      = pow(scol_ambocc, vec2(light_gamma)); diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index 5ab0b5c5b4..774f537821 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -189,7 +189,7 @@ void main()  	lv = normalize(lv);  	float da = dot(norm, lv); -	vec3 diff_tex = srgb_to_linear(texture2DRect(diffuseRect, frag.xy).rgb); +	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb;  	vec4 spec = texture2DRect(specularRect, frag.xy);  	vec3 dlit = vec3(0, 0, 0); | 
