diff options
| author | Graham Linden <graham@lindenlab.com> | 2019-05-06 16:29:06 -0700 | 
|---|---|---|
| committer | Graham Linden <graham@lindenlab.com> | 2019-05-06 16:29:06 -0700 | 
| commit | c61f73321dbef9f0f5741830bfbaa8facd6ec060 (patch) | |
| tree | 9f07c674db061b81ca24a05470defb4a04fb5bec /indra | |
| parent | ac080210a8cd2f64c040f980708ccce2c5464874 (diff) | |
SL-11102, SL-11103
Fix diffuse boost in deferred lighting to match non-deferred.
Make class2 soften not clamp shadow color to incoming alpha (make shadows appear on terrain underwater).
Diffstat (limited to 'indra')
5 files changed, 8 insertions, 18 deletions
| diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl index 2112fa8251..dbd7abd7e5 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl @@ -240,8 +240,6 @@ vec3 post_sunlight = color.rgb;  vec3 post_diffuse = color.rgb; -    //color.rgb = mix(diffuse_linear.rgb, color.rgb, final_alpha); -          color.rgb = atmosFragLighting(color.rgb, additive, atten);      color.rgb = scaleSoftClipFrag(color.rgb); diff --git a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl index ba1f121bfd..7533762a96 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/materialF.glsl @@ -367,8 +367,6 @@ vec3 post_diffuse = color.rgb;  vec3 post_spec = color.rgb; -    //color = mix(color.rgb, diffuse_srgb.rgb, diffuse_srgb.a); -      if (envIntensity > 0.0)      {          //add environmentmap diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl index 981a50769a..fb9f6d7f37 100644 --- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl @@ -153,8 +153,6 @@ vec3 post_diffuse = color.rgb;   vec3 post_spec = color.rgb; -        color.rgb += diffuse_srgb.a * diffuse_srgb.rgb; -          if (envIntensity > 0.0)          { //add environmentmap              vec3 env_vec = env_mat * refnormpersp; diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl index f6f8f56103..73b4473be5 100644 --- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl +++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl @@ -95,7 +95,10 @@ void main()      vec4 diffuse_srgb   = texture2DRect(diffuseRect, tc);      vec4 diffuse_linear = vec4(srgb_to_linear(diffuse_srgb.rgb), diffuse_srgb.a); -    scol = max(scol_ambocc.r, diffuse_linear.a); + +    // clamping to alpha value kills underwater shadows... +    //scol = max(scol_ambocc.r, diffuse_linear.a); +    scol = scol_ambocc.r;      vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);      vec3 color = vec3(0); @@ -160,8 +163,6 @@ vec3 post_diffuse = color.rgb;   vec3 post_spec = color.rgb; -        color.rgb += diffuse_srgb.a * diffuse_srgb.rgb; -          if (envIntensity > 0.0)          { //add environmentmap              vec3 env_vec = env_mat * refnormpersp; diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index 3277a6ed32..c57b267c92 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -2327,8 +2327,6 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&  	LLViewerCamera::eCameraID saved_camera_id = LLViewerCamera::sCurCameraID;  	LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD; -	bool res = true; -  	for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();   			iter != LLWorld::getInstance()->getRegionList().end(); ++iter)  	{ @@ -2339,20 +2337,17 @@ bool LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3&  			LLSpatialPartition* part = region->getSpatialPartition(i);  			if (part)  			{ -				if (hasRenderType(part->mDrawableType)) +				if (hasRenderType(part->mDrawableType) && !part->getVisibleExtents(camera, min, max))  				{ -					if (!part->getVisibleExtents(camera, min, max)) -					{ -						res = false; -					} +					LLViewerCamera::sCurCameraID = saved_camera_id; +                    return false;  				}  			}  		}  	}  	LLViewerCamera::sCurCameraID = saved_camera_id; - -	return res; +	return true;  }  static LLTrace::BlockTimerStatHandle FTM_CULL("Object Culling"); | 
