diff options
Diffstat (limited to 'indra/newview/app_settings/shaders/class1/deferred')
11 files changed, 32 insertions, 41 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 00717cd6a9..aa0e73d058 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -35,8 +35,6 @@ out vec4 frag_color;  #define frag_color gl_FragColor  #endif -uniform sampler2DRect depthMap; -  #if INDEX_MODE != INDEXED  uniform sampler2D diffuseMap;  #endif @@ -72,10 +70,6 @@ uniform vec3 light_direction[8];  uniform vec3 light_attenuation[8];   uniform vec3 light_diffuse[8]; -uniform sampler2D bumpMap; -uniform samplerCube environmentMap; -uniform mat3 env_mat; -  uniform vec4 specular_color; @@ -129,7 +123,7 @@ void main()  #else  	vec4 diff = texture2D(diffuseMap,vary_texcoord0.xy);  #endif - +	diff.rgb = pow(diff.rgb, vec3(2.2));  #if INDEX_MODE == NON_INDEXED_NO_COLOR  	float vertex_color_alpha = 1.0;  #else @@ -137,10 +131,6 @@ void main()  #endif  	vec3 normal = vary_norm; -	normal = texture2D(bumpMap, vary_texcoord1.xy).xyz * 2 - 1; -	normal = vec3(dot(normal.xyz, vary_rotation[0]), -				dot(normal.xyz, vary_rotation[1]), -				dot(normal.xyz, vary_rotation[2]));  	vec3 l = light_position[0].xyz;  	vec3 dlight = calcDirectionalLight(normal, l); @@ -173,7 +163,6 @@ void main()  #endif  	color.rgb += diff.rgb * vary_pointlight_col * light_col; -  	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl index e6b63657e6..13676ceead 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl @@ -181,21 +181,21 @@ void main()  	vary_rotation[2] = vec3(t.z, b.z, n.z);  	calcAtmospherics(pos.xyz); - +	vec3 dff = pow(diffuse_color.rgb, vec3(2.2));  	//vec4 color = calcLighting(pos.xyz, norm, diffuse_color, vec4(0.));  	vec4 col = vec4(0.0, 0.0, 0.0, diffuse_color.a); -	vary_pointlight_col = diffuse_color.rgb; +	vary_pointlight_col = dff;  	col.rgb = vec3(0,0,0);  	// Add windlight lights  	col.rgb = atmosAmbient(vec3(0.)); -	vary_ambient = col.rgb*diffuse_color.rgb;  	vary_directional.rgb = atmosAffectDirectionalLight(1); +	vary_ambient = col.rgb*dff; -	col.rgb = col.rgb*diffuse_color.rgb; +	col.rgb = col.rgb*dff;  #if INDEX_MODE != NON_INDEXED_NO_COLOR  	vertex_color = col;  #endif diff --git a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl index 6aa4d7b4ed..ed02c4a481 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/emissiveF.glsl @@ -42,7 +42,7 @@ void main()  	float shadow = 1.0;  	vec4 color = diffuseLookup(vary_texcoord0.xy)*vertex_color; -	 +	color.rgb = pow(color.rgb, vec3(2.2));  	color.rgb = fullbrightAtmosTransport(color.rgb);  	color.rgb = fullbrightScaleSoftClip(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl index 36433a5827..b91aaf80fb 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl @@ -43,7 +43,7 @@ void main()  	float shadow = 1.0;  	vec4 color = diffuseLookup(vary_texcoord0.xy)*vertex_color; -	 +	color.rgb = pow(color.rgb, vec3(2.2));  	color.rgb = fullbrightAtmosTransport(color.rgb);  	color.rgb = fullbrightScaleSoftClip(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl index 5329ae9dd7..d29c9a2b77 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl @@ -93,7 +93,8 @@ void main()  	norm = decode_normal(norm.xy); // unpack norm  	norm = normalize(norm);  	vec4 spec = texture2DRect(specularRect, frag.xy); -	vec3 diff = texture2DRect(diffuseRect, frag.xy).rgb; +	spec.rgb = pow(spec.rgb, vec3(2.2)); +	vec3 diff = pow(texture2DRect(diffuseRect, frag.xy).rgb, vec3(2.2));  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	vec3 out_col = vec3(0,0,0);  	vec3 npos = normalize(-pos); @@ -128,8 +129,6 @@ void main()  			dist_atten *= noise;  			float lit = da * dist_atten; - -			lit = pow(lit,0.7);  			vec3 col = light_col[i].rgb*lit*diff; diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index 9746218ea6..5129ecf128 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -181,6 +181,7 @@ void main()  	vec3 col = vec3(0,0,0);  	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; +	diff_tex = pow(diff_tex, vec3(2.2));  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	if (proj_tc.z > 0.0 && @@ -202,8 +203,6 @@ void main()  			vec3 lcol = color.rgb * plcol.rgb * plcol.a;  			lit = da * dist_atten * noise; - -			lit = pow(lit, 0.7);  			col = lcol*lit*diff_tex;  			amb_da += (da*0.5)*proj_ambiance; @@ -223,6 +222,8 @@ void main()  	vec4 spec = texture2DRect(specularRect, frag.xy); +	spec.rgb = pow(spec.rgb, vec3(2.2)); +	  	if (spec.a > 0.0)  	{  		vec3 ref = reflect(normalize(pos), norm); diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl index 27863b0095..fa514e5585 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl @@ -108,16 +108,15 @@ void main()  	float noise = texture2D(noiseMap, frag.xy/128.0).b; -	vec3 col = texture2DRect(diffuseRect, frag.xy).rgb; +	vec3 col = pow(texture2DRect(diffuseRect, frag.xy).rgb, vec3(2.2));  	float fa = falloff+1.0;  	float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0);  	float lit = da * dist_atten * noise; -	 -	lit = pow(lit, 0.7);  	col = color.rgb*lit*col;  	vec4 spec = texture2DRect(specularRect, frag.xy); +	spec.rgb = pow(spec.rgb, vec3(2.2));  	if (spec.a > 0.0)  	{  		vec3 npos = -normalize(pos); diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl index eb5beeef39..cceb1b11ab 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredNoDoFF.glsl @@ -42,6 +42,6 @@ void main()  	vec4 diff = texture2DRect(diffuseRect, vary_fragcoord.xy);  	vec4 bloom = texture2D(bloomMap, vary_fragcoord.xy/screen_res); -	frag_color = diff + bloom; +	frag_color = pow(diff + bloom, vec4(0.454545, 0.454545, 0.454545, 1.0));  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index d2b4da89ce..8600f69b8a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/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 mat3 ssao_effect_mat; @@ -230,9 +231,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) @@ -291,12 +292,11 @@ void main()  	norm.xyz = decode_normal(norm.xy); // unpack norm  	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));  	vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy); -	 +	spec.rgb = pow(spec.rgb, vec3(2.2));  	vec3 col;  	float bloom = 0.0;  	if (diffuse.a < 0.9) @@ -323,7 +323,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));   		} @@ -339,6 +339,5 @@ void main()  	frag_color.rgb = col; -	//frag_color.a = bloom; -	frag_color.a = 0.0; +	frag_color.a = bloom;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl index c6031fc45a..b59fcbe017 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl @@ -35,6 +35,6 @@ void main()  	//transform vertex  	vec4 pos = modelview_projection_matrix * vec4(position.xyz, 1.0);  	gl_Position = pos;  -		 +	  	vary_fragcoord = (pos.xy*0.5+0.5)*screen_res;  } diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl index d7f0ab6d8e..4b4063f51c 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -84,6 +84,7 @@ vec3 decode_normal (vec2 enc)  vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret.rgb = pow(ret.rgb, vec3(2.2));  	vec2 dist = tc-vec2(0.5); @@ -99,7 +100,8 @@ vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); -	 +	ret.rgb = pow(ret.rgb, vec3(2.2)); +  	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));  	float det = min(lod/(proj_lod*0.5), 1.0); @@ -116,7 +118,8 @@ vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); -	 +	ret.rgb = pow(ret.rgb, vec3(2.2)); +  	vec2 dist = tc-vec2(0.5);  	float d = dot(dist,dist); @@ -184,6 +187,7 @@ void main()  	vec3 col = vec3(0,0,0);  	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; +	diff_tex = pow(diff_tex, vec3(2.2));  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	if (proj_tc.z > 0.0 && @@ -205,8 +209,6 @@ void main()  			vec3 lcol = color.rgb * plcol.rgb * plcol.a;  			lit = da * dist_atten * noise; -			 -			lit = pow(lit, 0.7);  			col = lcol*lit*diff_tex;  			amb_da += (da*0.5)*proj_ambiance; @@ -226,6 +228,8 @@ void main()  	vec4 spec = texture2DRect(specularRect, frag.xy); +	spec.rgb = pow(spec.rgb, vec3(2.2)); +  	if (spec.a > 0.0)  	{  		vec3 ref = reflect(normalize(pos), norm); | 
