diff options
Diffstat (limited to 'indra')
9 files changed, 56 insertions, 51 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 9f1fdb4385..fec79ebf62 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -121,7 +121,7 @@ void main()  	vec3 normal = vary_norm;   	vec3 l = light_position[0].xyz; -	vec3 dlight = calcDirectionalLight(normal, l); +	vec3 dlight = calcDirectionalLight(normal, l) * 2.6;  	dlight = dlight * vary_directional.rgb * vary_pointlight_col;  	vec4 col = vec4(vary_ambient + dlight, vertex_color_alpha); diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index b3c1a067ee..9d3e6882b7 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -326,9 +326,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(2.2)) * 2.2); +	setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(2.2)) * 2.2); +	setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(2.2)) * 2.2);  }  vec3 atmosLighting(vec3 light) @@ -567,13 +567,13 @@ void main()  	vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));  	float da =dot(norm.xyz, sun_dir.xyz); -    float final_da = pow(da, 0.7f); +    float final_da = da;            final_da = min(final_da, shadow);            final_da = max(final_da, diffuse.a);            final_da = max(final_da, 0.0f);  	col.rgb = atmosAmbient(col); -	col.rgb = col.rgb + atmosAffectDirectionalLight(final_da); +	col.rgb = col.rgb + atmosAffectDirectionalLight(final_da * 2.6);  	col.rgb *= diffuse.rgb; @@ -595,7 +595,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));  			} diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl index 50938d3ef9..893a92299a 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl @@ -184,7 +184,8 @@ void main()  	vec3 col = vec3(0,0,0);  	vec3 diff_tex = texture2DRect(diffuseRect, frag.xy).rgb; -		 +	vec3 dlit = vec3(0, 0, 0); +	  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	if (proj_tc.z > 0.0 &&  		proj_tc.x < 1.0 && @@ -202,14 +203,13 @@ void main()  			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod); -			vec3 lcol = color.rgb * plcol.rgb * plcol.a; +			dlit = color.rgb * plcol.rgb * plcol.a;  			lit = da * dist_atten * noise; -			col = lcol*lit*diff_tex; +			col = dlit*lit*diff_tex;  			amb_da += (da*0.5)*proj_ambiance;  		} -		  		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);  		vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod); @@ -218,8 +218,7 @@ void main()  		amb_da *= dist_atten * noise;  		amb_da = min(amb_da, 1.0-lit); -			 -		col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; +		col += amb_da*color.rgb*diff_tex*amb_plcol.rgb*amb_plcol.a;  	} @@ -227,7 +226,6 @@ void main()  	if (spec.a > 0.0)  	{ -		float lit = da * dist_atten * noise;  		vec3 npos = -normalize(pos);  		//vec3 ref = dot(pos+lv, norm); @@ -240,11 +238,11 @@ void main()  		float gtdenom = 2 * nh;  		float gt = max(0, min(gtdenom * nv / vh, gtdenom * da / vh)); -								 +  		if (nh > 0.0)  		{  			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); -			col += lit*scol*color.rgb*spec.rgb; +			col += dlit*scol*spec.rgb;  			//col += spec.rgb;  		}  	}	 diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index 90cf085524..5d936233fe 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -231,9 +231,9 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {  		  + tmpAmbient)));  	//brightness of surface both sunlight and ambient -	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); +	setSunlitColor(pow(vec3(sunlight * .5), vec3(global_gamma)) * 2.2); +	setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(global_gamma)) * 2.2); +	setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(global_gamma)) * 2.2);  }  vec3 atmosLighting(vec3 light) @@ -301,7 +301,7 @@ void main()  		calcAtmospherics(pos.xyz, 1.0);  		col = atmosAmbient(vec3(0)); -		col += atmosAffectDirectionalLight(max(min(da, 1.0), diffuse.a)); +		col += atmosAffectDirectionalLight(max(min(da, 1.0) * 2.6, diffuse.a));  		col *= diffuse.rgb; diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl index 8d2a4f2dd6..b29f676ecc 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl @@ -76,9 +76,15 @@ vec3 decode_normal (vec2 enc)      return n;  } +vec4 correctWithGamma(vec4 col) +{ +	return vec4(pow(col.rgb, vec3(2.2)), col.a); +} +  vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = tc-vec2(0.5); @@ -94,6 +100,7 @@ vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5)); @@ -111,6 +118,7 @@ vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = tc-vec2(0.5); @@ -188,6 +196,8 @@ void main()  	float noise = texture2D(noiseMap, frag.xy/128.0).b; +	vec3 dlit = vec3(0, 0, 0); +	  	if (proj_tc.z > 0.0 &&  		proj_tc.x < 1.0 &&  		proj_tc.y < 1.0 && @@ -205,13 +215,11 @@ void main()  			float lod = diff * proj_lod;  			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod); -		 -			vec3 lcol = color.rgb * plcol.rgb * plcol.a; +			dlit = color.rgb * plcol.rgb * plcol.a; -			col = lcol*lit*diff_tex; +			col = dlit*lit*diff_tex;  			//amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;  		} -		  		//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);  		vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod); @@ -220,14 +228,12 @@ void main()  		amb_da *= dist_atten * noise;  		amb_da = min(amb_da, 1.0-lit); -			 -		col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a; +		col += amb_da*color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a*diff_tex.rgb;  	}  	if (spec.a > 0.0)  	{ -		float lit = da * dist_atten * noise;  		vec3 npos = -normalize(pos);  		//vec3 ref = dot(pos+lv, norm); @@ -243,8 +249,9 @@ void main()  		if (nh > 0.0)  		{ +			  			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); -			col += lit*scol*color.rgb*spec.rgb; +			col += dlit*scol*spec.rgb;  			//col += spec.rgb;  		}  	}	 diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl index 76da91094c..9ddbb6da6a 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl @@ -200,7 +200,7 @@ void main()  	vec4 spec = texture2DRect(specularRect, frag.xy); -	 +	vec3 dlit = vec3(0, 0, 0);  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	if (proj_tc.z > 0.0 && @@ -221,9 +221,9 @@ void main()  			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod); -			vec3 lcol = color.rgb * plcol.rgb * plcol.a; +			dlit = color.rgb * plcol.rgb * plcol.a; -			col = lcol*lit*diff_tex*shadow; +			col = dlit*lit*diff_tex*shadow;  			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;  		} @@ -242,7 +242,6 @@ void main()  	if (spec.a > 0.0)  	{ -		float lit = da * dist_atten * noise;  		vec3 npos = -normalize(pos);  		//vec3 ref = dot(pos+lv, norm); @@ -259,7 +258,7 @@ void main()  		if (nh > 0.0)  		{  			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); -			col += lit*scol*color.rgb*spec.rgb*shadow; +			col += dlit*scol*spec.rgb*shadow;  			//col += spec.rgb;  		}  	}	 diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index 466714c108..15584548cc 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -234,9 +234,9 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {  		  + tmpAmbient)));  	//brightness of surface both sunlight and ambient -	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); +	setSunlitColor(pow(vec3(sunlight * .5), vec3(global_gamma)) * global_gamma); +	setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(global_gamma)) * global_gamma); +	setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(global_gamma)) * global_gamma);  }  vec3 atmosLighting(vec3 light) @@ -310,7 +310,7 @@ void main()  		calcAtmospherics(pos.xyz, ambocc);  		col = atmosAmbient(vec3(0)); -		col += atmosAffectDirectionalLight(max(min(da, scol), diffuse.a)); +		col += atmosAffectDirectionalLight(max(min(da, scol) * 2.6, diffuse.a));  		col *= diffuse.rgb; diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl index 2cc563ff67..aa964fa0a3 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl @@ -79,9 +79,15 @@ vec3 decode_normal (vec2 enc)      return n;  } +vec4 correctWithGamma(vec4 col) +{ +	return vec4(pow(col.rgb, vec3(2.2)), col.a); +} +  vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = tc-vec2(0.5); @@ -97,6 +103,7 @@ vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = vec2(0.5) - abs(tc-vec2(0.5)); @@ -114,6 +121,7 @@ vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)  vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)  {  	vec4 ret = texture2DLod(projectionMap, tc, lod); +	ret = correctWithGamma(ret);  	vec2 dist = tc-vec2(0.5); @@ -198,7 +206,7 @@ void main()  	vec4 spec = texture2DRect(specularRect, frag.xy); -	 +	vec3 dlit = vec3(0, 0, 0);  	float noise = texture2D(noiseMap, frag.xy/128.0).b;  	if (proj_tc.z > 0.0 && @@ -219,9 +227,9 @@ void main()  			vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod); -			vec3 lcol = color.rgb * plcol.rgb * plcol.a; +			dlit = color.rgb * plcol.rgb * plcol.a; -			col = lcol*lit*diff_tex*shadow; +			col = dlit*lit*diff_tex*shadow;  			amb_da += (da*0.5)*(1.0-shadow)*proj_ambiance;  		} @@ -240,7 +248,6 @@ void main()  	if (spec.a > 0.0)  	{ -		float lit = da * dist_atten * noise;  		vec3 npos = -normalize(pos);  		//vec3 ref = dot(pos+lv, norm); @@ -257,7 +264,7 @@ void main()  		if (nh > 0.0)  		{  			float scol = fres*texture2D(lightFunc, vec2(nh, spec.a)).r*gt/(nh*da); -			col += lit*scol*color.rgb*spec.rgb*shadow; +			col += dlit*scol*spec.rgb*shadow;  			//col += spec.rgb;  		}  	}	 diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl index d543479b85..c1eff73bc8 100644 --- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl +++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl @@ -130,17 +130,11 @@ void calcAtmospherics(vec3 inPositionEye) {  		vec3(blue_horizon * blue_weight * (sunlight*(1.-cloud_shadow) + tmpAmbient)  	  + (haze_horizon * haze_weight) * (sunlight*(1.-cloud_shadow) * temp2.x  		  + tmpAmbient))); -	 -	float gammaScale = 1.0; -	if (global_gamma > 1.0) -	{ -		gammaScale = global_gamma / 2 + global_gamma; -	}  	//brightness of surface both sunlight and ambient -	setSunlitColor(pow(vec3(sunlight * .5), vec3(global_gamma)) * gammaScale); -	setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(global_gamma)) * gammaScale); -	setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(global_gamma)) * gammaScale); +	setSunlitColor(pow(vec3(sunlight * .5), vec3(global_gamma)) * global_gamma); +	setAmblitColor(pow(vec3(tmpAmbient * .25), vec3(global_gamma)) * global_gamma); +	setAdditiveColor(pow(getAdditiveColor() * vec3(1.0 - temp1), vec3(global_gamma)) * global_gamma);  	// vary_SunlitColor = vec3(0);  	// vary_AmblitColor = vec3(0); | 
