diff --git a/indra/newview/app_settings/settings_alchemy.xml b/indra/newview/app_settings/settings_alchemy.xml index 574a39fdbbfe52f31fd4a0f842fb0b129a2eb3f4..051dbb726579525efeae7df65a4f0317159b12d6 100644 --- a/indra/newview/app_settings/settings_alchemy.xml +++ b/indra/newview/app_settings/settings_alchemy.xml @@ -769,13 +769,13 @@ <key>RenderToneMapType</key> <map> <key>Comment</key> - <string>Tonemapping type 0 - None, 1 - Linear, 2 - Reinhard, 3 - Reinhard2, 4 - Filmic, 5 - Unreal, 6 - ACES, 7 - Uchimura, 8 - Lottes, 9 - Uncharted</string> + <string>Tonemapping type 0 - HDR Debug, 1 - Linear, 2 - Reinhard, 3 - Reinhard2, 4 - Filmic, 5 - Unreal, 6 - ACES, 7 - Uchimura, 8 - Lottes, 9 - Uncharted</string> <key>Persist</key> <integer>1</integer> <key>Type</key> <string>U32</string> <key>Value</key> - <integer>0</integer> + <integer>7</integer> </map> <key>RenderToneMapUchimuraA</key> <map> @@ -803,7 +803,7 @@ <key>Value</key> <array> <real>0.4</real> - <real>1.33</real> + <real>1.13</real> <real>0.0</real> </array> </map> diff --git a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl index 2955f24cd07bf8c0a989a01e259c6347f845d467..989c44c8665ea69ce11da81fe018c05ed87e08e3 100644 --- a/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl +++ b/indra/newview/app_settings/shaders/class1/alchemy/toneMapF.glsl @@ -46,7 +46,7 @@ vec3 linear_to_srgb(vec3 cl); vec3 reinhard(vec3 x) { - return x/(1+x); + return x/(1+x); } vec3 reinhard2(vec3 x) { @@ -56,9 +56,9 @@ vec3 reinhard2(vec3 x) { vec3 filmic(vec3 color) { - color = max(vec3(0.), color - vec3(0.004)); - color = (color * (6.2 * color + .5)) / (color * (6.2 * color + 1.7) + 0.06); - return color; + color = max(vec3(0.), color - vec3(0.004)); + color = (color * (6.2 * color + .5)) / (color * (6.2 * color + 1.7) + 0.06); + return color; } vec3 unreal(vec3 x) @@ -178,8 +178,9 @@ void main() #if TONEMAP_METHOD == 0 // None, Gamma Correct Only #define NEEDS_GAMMA_CORRECT 1 -#elif TONEMAP_METHOD == 1 // Linear +#elif TONEMAP_METHOD == 1 // Linear #define NEEDS_GAMMA_CORRECT 1 + diff.rgb = clamp(diff.rgb, 0, 1); #elif TONEMAP_METHOD == 2 // Reinhard method #define NEEDS_GAMMA_CORRECT 1 diff.rgb = reinhard(diff.rgb); @@ -212,25 +213,25 @@ void main() #if COLOR_GRADE_LUT // Invert coord for compat with DX-style LUT - diff.y = 1.0 - diff.y; + diff.y = 1.0 - diff.y; - // Convert to texel coords - vec3 lutRange = diff.rgb * ( colorgrade_lut_size.w - 1); + // Convert to texel coords + vec3 lutRange = diff.rgb * ( colorgrade_lut_size.w - 1); // Calculate coords in texel space - vec2 lutX = vec2(floor(lutRange.z)*colorgrade_lut_size.w+lutRange.x, lutRange.y); - vec2 lutY = vec2(ceil(lutRange.z)*colorgrade_lut_size.w+lutRange.x, lutRange.y); + vec2 lutX = vec2(floor(lutRange.z)*colorgrade_lut_size.w+lutRange.x, lutRange.y); + vec2 lutY = vec2(ceil(lutRange.z)*colorgrade_lut_size.w+lutRange.x, lutRange.y); - // texel to ndc - lutX = (lutX+0.5)*colorgrade_lut_size.xy; - lutY = (lutY+0.5)*colorgrade_lut_size.xy; + // texel to ndc + lutX = (lutX+0.5)*colorgrade_lut_size.xy; + lutY = (lutY+0.5)*colorgrade_lut_size.xy; - // LUT interpolation - diff.rgb = mix( + // LUT interpolation + diff.rgb = mix( texture2D(colorgrade_lut, lutX).rgb, texture2D(colorgrade_lut, lutY).rgb, fract(lutRange.z) - ); + ); #endif frag_color = diff; diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index 2b0ded0f808a8977250d70b3295a76da137298d1..46af11ebaa96718eabf3a4b7f253acacc05cac75 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -158,7 +158,7 @@ vec3 calcPointLightOrSpotLight(vec3 light_col, vec3 npos, vec3 diffuse, vec4 spe { float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt / (nh*da); vec3 speccol = lit*scol*light_col.rgb*spec.rgb; - speccol = clamp(speccol, vec3(0), vec3(1)); + speccol = max(speccol, vec3(0)); col += speccol; float cur_glare = max(speccol.r, speccol.g); diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index 42c0a7ba2535103408c9b845e5bf6ffb21fd5ca4..b80ff45b0c392eab91a03d71185ed5415a122257 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -229,8 +229,9 @@ void main() if (nh > 0.0) { float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); - col += dlit*scol*spec.rgb; - //col += spec.rgb; + vec3 speccol = dlit*scol*spec.rgb; + speccol = max(speccol, vec3(0)); + col += speccol; } } diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl index c68a4c3a40113803f11d18453a05ebbfe3799670..22e079cec6ba8c858c4db3c8696bc69c3f93f816 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -229,8 +229,9 @@ void main() if (nh > 0.0) { float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); - col += dlit*scol*spec.rgb; - //col += spec.rgb; + vec3 speccol = dlit*scol*spec.rgb; + speccol = max(speccol, vec3(0)); + col += speccol; } } diff --git a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl index 4a8b892c3ae99a5fd3aa313f419bf72bbb2f4d7e..972016076372e23c56f630bbbe3156309be2b3e6 100644 --- a/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/srgbF.glsl @@ -43,7 +43,6 @@ vec3 srgb_to_linear(vec3 cs) vec3 linear_to_srgb(vec3 cl) { - cl = clamp(cl, vec3(0), vec3(1)); vec3 low_range = cl * 12.92; vec3 high_range = 1.055 * pow(cl, vec3(0.41666)) - 0.055; bvec3 lt = lessThan(cl,vec3(0.0031308)); diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 97925822076332d19c22ec3478883989657d92ad..2ddecd5aef62692d70e3eacae737f4ef8005a8c2 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -225,9 +225,10 @@ void main() vec4 spec = texture2DRect(specularRect, frag.xy); if (spec.a > 0.0) { - vec3 npos = -normalize(pos); dlit *= min(da*6.0, 1.0) * dist_atten; + vec3 npos = -normalize(pos); + //vec3 ref = dot(pos+lv, norm); vec3 h = normalize(lv+npos); float nh = dot(norm, h); @@ -243,7 +244,7 @@ void main() { float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); vec3 speccol = dlit*scol*spec.rgb*shadow; - speccol = clamp(speccol, vec3(0), vec3(1)); + speccol = max(speccol, vec3(0)); col += speccol; } } diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index 8d836686a16a8ed72a95b483db2e1c190cd1ccd4..9f0ae224b7e98faf4017ff3f7ddd586a26427bd1 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -225,6 +225,7 @@ void main() if (spec.a > 0.0) { dlit *= min(da*6.0, 1.0) * dist_atten; + vec3 npos = -normalize(pos); //vec3 ref = dot(pos+lv, norm); @@ -242,7 +243,7 @@ void main() { float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); vec3 speccol = dlit*scol*spec.rgb*shadow; - speccol = clamp(speccol, vec3(0), vec3(1)); + speccol = max(speccol, vec3(0)); col += speccol; } }