diff options
9 files changed, 30 insertions, 12 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl index cf29939cb2..eaaa7b208d 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl @@ -39,13 +39,15 @@ VARYING vec2 vary_texcoord0;  void default_lighting()   { -	vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; +	vec4 color = diffuseLookup(vary_texcoord0.xy);  	if (color.a < minimum_alpha)  	{  		discard;  	} +	color.rgb *= vertex_color.rgb; +  	color.rgb = atmosLighting(color.rgb);  	color.rgb = scaleSoftClip(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl index 4070d41f47..b9ddbc8e1c 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskNonIndexedF.glsl @@ -41,13 +41,15 @@ VARYING vec2 vary_texcoord0;  void default_lighting()   { -	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; +	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy);  	if (color.a < minimum_alpha)  	{  		discard;  	} +	color.rgb *= vertex_color.rgb; +	  	color.rgb = atmosLighting(color.rgb);  	color.rgb = scaleSoftClip(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl index e130ef5d91..5740987ab1 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl @@ -40,12 +40,15 @@ VARYING vec2 vary_texcoord0;  void fullbright_lighting()  { -	vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; +	vec4 color = diffuseLookup(vary_texcoord0.xy);  	if (color.a < minimum_alpha)  	{  		discard;  	} + +	color.rgb *= vertex_color.rgb; +  	color.rgb = pow(color.rgb, vec3(texture_gamma));  	color.rgb = fullbrightAtmosTransport(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl index 56ad658696..d64584c015 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightNonIndexedAlphaMaskF.glsl @@ -42,12 +42,15 @@ VARYING vec2 vary_texcoord0;  void fullbright_lighting()  { -	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; +	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy);  	if (color.a < minimum_alpha)  	{  		discard;  	} +	 +	color.rgb *= vertex_color.rgb; +  	color.rgb = pow(color.rgb, vec3(texture_gamma));  	color.rgb = fullbrightAtmosTransport(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl index 9c82056fd7..6dd3bb937f 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterAlphaMaskF.glsl @@ -41,7 +41,9 @@ VARYING vec2 vary_texcoord0;  void fullbright_lighting_water()  { -	vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; +	vec4 color = diffuseLookup(vary_texcoord0.xy); + +	color.rgb *= vertex_color.rgb;  	if (color.a < minimum_alpha)  	{ diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl index b68240ba0d..3426fea52f 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskF.glsl @@ -39,7 +39,9 @@ VARYING vec2 vary_texcoord0;  void default_lighting_water()  { -	vec4 color = diffuseLookup(vary_texcoord0.xy) * vertex_color; +	vec4 color = diffuseLookup(vary_texcoord0.xy); + +	color.rgb *= vertex_color.rgb;  	if (color.a < minimum_alpha)  	{ diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl index da3b20012d..d9faa9b314 100755 --- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterAlphaMaskNonIndexedF.glsl @@ -41,7 +41,9 @@ VARYING vec2 vary_texcoord0;  void default_lighting_water()  { -	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy) * vertex_color; +	vec4 color = texture2D(diffuseMap,vary_texcoord0.xy); + +	color.rgb *= vertex_color.rgb;  	if (color.a < minimum_alpha)  	{ diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp index 90474ea6f6..145cd02668 100755 --- a/indra/newview/lldrawpoolalpha.cpp +++ b/indra/newview/lldrawpoolalpha.cpp @@ -94,7 +94,7 @@ void LLDrawPoolAlpha::beginPostDeferredPass(S32 pass)  	if (pass == 0)  	{  		simple_shader = &gDeferredAlphaProgram; -		fullbright_shader = &gObjectFullbrightAlphaMaskProgram; +		fullbright_shader = &gObjectFullbrightProgram;  		//prime simple shader (loads shadow relevant uniforms)  		gPipeline.bindDeferredShader(*simple_shader); @@ -144,14 +144,14 @@ void LLDrawPoolAlpha::beginRenderPass(S32 pass)  	if (LLPipeline::sUnderWaterRender)  	{ -		simple_shader = &gObjectSimpleWaterAlphaMaskProgram; -		fullbright_shader = &gObjectFullbrightWaterAlphaMaskProgram; +		simple_shader = &gObjectSimpleWaterProgram; +		fullbright_shader = &gObjectFullbrightWaterProgram;  		emissive_shader = &gObjectEmissiveWaterProgram;  	}  	else  	{ -		simple_shader = &gObjectSimpleAlphaMaskProgram; -		fullbright_shader = &gObjectFullbrightAlphaMaskProgram; +		simple_shader = &gObjectSimpleProgram; +		fullbright_shader = &gObjectFullbrightProgram;  		emissive_shader = &gObjectEmissiveProgram;  	} diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp index 37c579bdf5..9117bf1c01 100755 --- a/indra/newview/llviewerdisplay.cpp +++ b/indra/newview/llviewerdisplay.cpp @@ -1095,6 +1095,8 @@ void render_hud_attachments()  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_SIMPLE);  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_VOLUME);  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_ALPHA); +		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_ALPHA_MASK); +		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_FULLBRIGHT_ALPHA_MASK);  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_FULLBRIGHT);  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_ALPHA);  		gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK); | 
