summaryrefslogtreecommitdiff
path: root/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
diff options
context:
space:
mode:
authorGeenz <geenz@geenzo.com>2013-04-17 15:53:09 -0400
committerGeenz <geenz@geenzo.com>2013-04-17 15:53:09 -0400
commitbb5bf632c6c3dea22865a86dc8c13f5de9ce06f0 (patch)
treeae3ddab3001c060a9513f469ddcdd6ce0f7c21fa /indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
parentc72c3691ecf83875d4ee3e0784b3e76cb4b4633a (diff)
First pass of gamma correction reimplementation.
Diffstat (limited to 'indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl')
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl12
1 files changed, 7 insertions, 5 deletions
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index 8e638c64eb..e8f3a02c5a 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -60,6 +60,7 @@ uniform float density_multiplier;
uniform float distance_multiplier;
uniform float max_y;
uniform vec4 glow;
+uniform float global_gamma;
uniform float scene_light_strength;
uniform mat3 env_mat;
uniform vec4 shadow_clip;
@@ -233,9 +234,9 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
+ tmpAmbient)));
//brightness of surface both sunlight and ambient
- setSunlitColor(vec3(sunlight * .5));
- setAmblitColor(vec3(tmpAmbient * .25));
- setAdditiveColor(getAdditiveColor() * vec3(1.0 - temp1));
+ setSunlitColor(pow(vec3(sunlight * .5), vec3(global_gamma)) * 3.3);
+ setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(global_gamma)) * 3.3);
+ setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(global_gamma)) * 3.3);
}
vec3 atmosLighting(vec3 light)
@@ -293,9 +294,9 @@ void main()
float envIntensity = norm.z;
norm.xyz = decode_normal(norm.xy);
float da = max(dot(norm.xyz, sun_dir.xyz), 0.0);
- da = pow(da, 0.7);
vec4 diffuse = texture2DRect(diffuseRect, tc);
+ diffuse.rgb = pow(diffuse.rgb, vec3(2.2));
vec3 col;
float bloom = 0.0;
@@ -303,6 +304,7 @@ void main()
if (diffuse.a < 0.9)
{
vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);
+ spec.rgb = pow(spec.rgb, vec3(2.2));
vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
float scol = max(scol_ambocc.r, diffuse.a);
@@ -330,7 +332,7 @@ void main()
//add environmentmap
vec3 env_vec = env_mat * refnormpersp;
- col = mix(col.rgb, textureCube(environmentMap, env_vec).rgb,
+ col = mix(col.rgb, pow(textureCube(environmentMap, env_vec).rgb, vec3(2.2)) * 2.2,
max(envIntensity-diffuse.a*2.0, 0.0));
}