diff options
9 files changed, 60 insertions, 13 deletions
| diff --git a/indra/llrender/llshadermgr.cpp b/indra/llrender/llshadermgr.cpp index 1383020873..236ebbd78f 100644 --- a/indra/llrender/llshadermgr.cpp +++ b/indra/llrender/llshadermgr.cpp @@ -1180,7 +1180,7 @@ void LLShaderMgr::initAttribsAndUniforms()  	llassert(mReservedUniforms.size() == LLShaderMgr::MULTI_LIGHT_FAR_Z+1); - +    //NOTE: MUST match order in eGLSLReservedUniforms  	mReservedUniforms.push_back("proj_mat");  	mReservedUniforms.push_back("proj_near");  	mReservedUniforms.push_back("proj_p"); diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl index 2d40e63eff..6b36d00f97 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightShinyF.glsl @@ -83,10 +83,21 @@ void main()  	//color.rgb = srgb_to_linear(color.rgb);  		color.rgb = mix(color.rgb, envColor.rgb, env_intensity); +  		color.rgb = fullbrightAtmosTransportFrag(color.rgb, additive, atten);  		color.rgb = fullbrightScaleSoftClip(color.rgb);  	} +/* +	// NOTE: HUD objects will be full bright. Uncomment if you want "some" environment lighting effecting these HUD objects. +	else +	{ +		vec3  envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb; +		float env_intensity = vertex_color.a; +		color.rgb = mix(color.rgb, envColor.rgb, env_intensity); +	} +*/ +  	color.a = 1.0;  	//color.rgb = linear_to_srgb(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/environment/encodeNormF.glsl b/indra/newview/app_settings/shaders/class1/environment/encodeNormF.glsl index 50e781fa78..6cd2445522 100644 --- a/indra/newview/app_settings/shaders/class1/environment/encodeNormF.glsl +++ b/indra/newview/app_settings/shaders/class1/environment/encodeNormF.glsl @@ -23,6 +23,9 @@   * $/LicenseInfo$   */ +// Lambert Azimuthal Equal-Area projection +// See: https://aras-p.info/texts/CompactNormalStorage.html +// Also see: A_bit_more_deferred_-_CryEngine3.ppt  vec2 encode_normal(vec3 n)  {  	float f = sqrt(8 * n.z + 8); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl index ab8b617746..0bb48061e0 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightAlphaMaskF.glsl @@ -31,6 +31,9 @@ out vec4 frag_color;  uniform float minimum_alpha; +// render_hud_attachments() -> HUD objects set LLShaderMgr::NO_ATMO; +uniform int no_atmo; +  vec3 atmosLighting(vec3 light);  vec3 scaleSoftClip(vec3 light); @@ -48,9 +51,12 @@ void default_lighting()  	color *= vertex_color; -	color.rgb = atmosLighting(color.rgb); - -	color.rgb = scaleSoftClip(color.rgb); +	// SL-9632 HUDs are affected by Atmosphere +	if (no_atmo == 0) +	{ +		color.rgb = atmosLighting(color.rgb); +		color.rgb = scaleSoftClip(color.rgb); +	}  	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl index 46390e4a0e..1855cfceeb 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightAlphaMaskF.glsl @@ -30,7 +30,10 @@ out vec4 frag_color;  #endif  uniform float minimum_alpha; -uniform float texture_gamma; +uniform float texture_gamma; // either 1.0 or 2.2; see: "::TEXTURE_GAMMA" + +// render_hud_attachments() -> HUD objects set LLShaderMgr::NO_ATMO; used in LLDrawPoolAlpha::beginRenderPass() +uniform int no_atmo;  vec3 fullbrightAtmosTransport(vec3 light);  vec3 fullbrightScaleSoftClip(vec3 light); @@ -50,9 +53,17 @@ void fullbright_lighting()  	color.rgb *= vertex_color.rgb;  	color.rgb = pow(color.rgb, vec3(texture_gamma)); -	color.rgb = fullbrightAtmosTransport(color.rgb); -	 -	color.rgb = fullbrightScaleSoftClip(color.rgb); + +	// SL-9632 HUDs are affected by Atmosphere +	if (no_atmo == 0) +	{ +		color.rgb = fullbrightAtmosTransport(color.rgb); +		color.rgb = fullbrightScaleSoftClip(color.rgb); +	} + +	//*TODO: Are we missing an inverse pow() here? +	// class1\lighting\lightFullbrightF.glsl has: +    //     color.rgb = pow(color.rgb, vec3(1.0/texture_gamma));  	frag_color = color;  } diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl index b967709c57..5fcdf3107c 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl @@ -34,6 +34,9 @@ VARYING vec2 vary_texcoord0;  uniform float texture_gamma; +// render_hud_attachments() -> HUD objects set LLShaderMgr::NO_ATMO; +uniform int no_atmo; +  vec3 fullbrightAtmosTransport(vec3 light);  vec3 fullbrightScaleSoftClip(vec3 light); @@ -43,9 +46,12 @@ void fullbright_lighting()  	color.rgb = pow(color.rgb, vec3(texture_gamma)); -	color.rgb = fullbrightAtmosTransport(color.rgb); -	 -	color.rgb = fullbrightScaleSoftClip(color.rgb); +	// SL-9632 HUDs are affected by Atmosphere +	if (no_atmo == 0) +	{ +		color.rgb = fullbrightAtmosTransport(color.rgb); +		color.rgb = fullbrightScaleSoftClip(color.rgb); +	}  	color.rgb = pow(color.rgb, vec3(1.0/texture_gamma)); diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl index 3eaaa41866..6f7e777d23 100644 --- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl +++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl @@ -56,9 +56,16 @@ void fullbright_shiny_lighting()  		color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a*0.75); // MAGIC NUMBER SL-12574; ALM: Off, Quality > Low  		color.rgb = fullbrightShinyAtmosTransport(color.rgb); -  		color.rgb = fullbrightScaleSoftClip(color.rgb);  	} +/* +	// NOTE: HUD objects will be full bright. Uncomment if you want "some" environment lighting effecting these HUD objects. +	else +	{ +		vec3 envColor = textureCube(environmentMap, vary_texcoord1.xyz).rgb; +		color.rgb = mix(color.rgb, envColor.rgb, vertex_color.a*0.75); // MAGIC NUMBER SL-12574; ALM: Off, Quality > Low +	} +*/  	color.a = 1.0; diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp index 0d2edc0268..1c4187d30f 100644 --- a/indra/newview/lltextureview.cpp +++ b/indra/newview/lltextureview.cpp @@ -549,7 +549,7 @@ void LLGLTexMemBar::draw()      U32 texFetchLatMed = U32(recording.getMean(LLTextureFetch::sTexFetchLatency).value() * 1000.0f);      U32 texFetchLatMax = U32(recording.getMax(LLTextureFetch::sTexFetchLatency).value() * 1000.0f); -	text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB FBO: %d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB", +	text = llformat("GL Tot: %d/%d MB Bound: %4d/%4d MB FBO: %d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB",  					total_mem.value(),  					max_total_mem.value(),  					bound_mem.value(), diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp index 368a3f2335..d428cb1568 100644 --- a/indra/newview/llvowlsky.cpp +++ b/indra/newview/llvowlsky.cpp @@ -99,6 +99,9 @@ LLDrawable * LLVOWLSky::createDrawable(LLPipeline * pipeline)  inline F32 LLVOWLSky::calcPhi(U32 i)  { +    // Calc: PI/8 * 1-((1-t^4)*(1-t^4))  { 0<t<1 } +    // Demos: \pi/8*\left(1-((1-x^{4})*(1-x^{4}))\right)\ \left\{0<x\le1\right\} +  	// i should range from [0..SKY_STACKS] so t will range from [0.f .. 1.f]  	F32 t = float(i) / float(getNumStacks()); | 
