diff options
| author | Dave Parks <davep@lindenlab.com> | 2023-03-24 14:33:41 -0500 | 
|---|---|---|
| committer | Dave Parks <davep@lindenlab.com> | 2023-03-24 14:33:41 -0500 | 
| commit | 5882215a6d53f5a20779be78805392f4e38c3669 (patch) | |
| tree | bdc89e2b0ccdcb336a61c915399324cde6b83e60 /indra/newview | |
| parent | df9d2b6e9613d15d39e3e870fc09686e41b6c37f (diff) | |
SL-19321 Optimization pass -- Remove another shadow split from probe render, incidental decruft.
Diffstat (limited to 'indra/newview')
| -rw-r--r-- | indra/newview/app_settings/settings.xml | 46 | ||||
| -rw-r--r-- | indra/newview/pipeline.cpp | 39 | ||||
| -rw-r--r-- | indra/newview/pipeline.h | 3 | 
3 files changed, 10 insertions, 78 deletions
| diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml index 5ade88e32b..e0662b8115 100644 --- a/indra/newview/app_settings/settings.xml +++ b/indra/newview/app_settings/settings.xml @@ -9002,37 +9002,6 @@      <key>Value</key>      <integer>1</integer>    </map> - -  <key>RenderShadowNearDist</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane of shadow camera (affects precision of depth shadows).</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>256</real> -      <real>256</real> -      <real>256</real> -    </array> -  </map> -  <key>RenderShadowClipPlanes</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane split distances for shadow map frusta.</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>1.0</real> -      <real>12.0</real> -      <real>32.0</real> -    </array> -  </map>    <key>RenderShadowSplitExponent</key>    <map>      <key>Comment</key> @@ -9048,21 +9017,6 @@        <real>2.0</real>      </array>    </map> -  <key>RenderShadowOrthoClipPlanes</key> -  <map> -    <key>Comment</key> -    <string>Near clip plane split distances for orthographic shadow map frusta.</string> -    <key>Persist</key> -    <integer>1</integer> -    <key>Type</key> -    <string>Vector3</string> -    <key>Value</key> -    <array> -      <real>4.0</real> -      <real>8.0</real> -      <real>24.0</real> -    </array> -  </map>    <key>RenderShadowProjOffset</key>    <map>      <key>Comment</key> diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp index f059c87c91..a53b3aac8e 100644 --- a/indra/newview/pipeline.cpp +++ b/indra/newview/pipeline.cpp @@ -202,9 +202,6 @@ LLVector3 LLPipeline::RenderShadowGaussian;  F32 LLPipeline::RenderShadowBlurDistFactor;  bool LLPipeline::RenderDeferredAtmospheric;  F32 LLPipeline::RenderHighlightFadeTime; -LLVector3 LLPipeline::RenderShadowClipPlanes; -LLVector3 LLPipeline::RenderShadowOrthoClipPlanes; -LLVector3 LLPipeline::RenderShadowNearDist;  F32 LLPipeline::RenderFarClip;  LLVector3 LLPipeline::RenderShadowSplitExponent;  F32 LLPipeline::RenderShadowErrorCutoff; @@ -558,9 +555,6 @@ void LLPipeline::init()  	connectRefreshCachedSettingsSafe("RenderShadowBlurDistFactor");  	connectRefreshCachedSettingsSafe("RenderDeferredAtmospheric");  	connectRefreshCachedSettingsSafe("RenderHighlightFadeTime"); -	connectRefreshCachedSettingsSafe("RenderShadowClipPlanes"); -	connectRefreshCachedSettingsSafe("RenderShadowOrthoClipPlanes"); -	connectRefreshCachedSettingsSafe("RenderShadowNearDist");  	connectRefreshCachedSettingsSafe("RenderFarClip");  	connectRefreshCachedSettingsSafe("RenderShadowSplitExponent");  	connectRefreshCachedSettingsSafe("RenderShadowErrorCutoff"); @@ -1043,9 +1037,6 @@ void LLPipeline::refreshCachedSettings()  	RenderShadowBlurDistFactor = gSavedSettings.getF32("RenderShadowBlurDistFactor");  	RenderDeferredAtmospheric = gSavedSettings.getBOOL("RenderDeferredAtmospheric");  	RenderHighlightFadeTime = gSavedSettings.getF32("RenderHighlightFadeTime"); -	RenderShadowClipPlanes = gSavedSettings.getVector3("RenderShadowClipPlanes"); -	RenderShadowOrthoClipPlanes = gSavedSettings.getVector3("RenderShadowOrthoClipPlanes"); -	RenderShadowNearDist = gSavedSettings.getVector3("RenderShadowNearDist");  	RenderFarClip = gSavedSettings.getF32("RenderFarClip");  	RenderShadowSplitExponent = gSavedSettings.getVector3("RenderShadowSplitExponent");  	RenderShadowErrorCutoff = gSavedSettings.getF32("RenderShadowErrorCutoff"); @@ -9277,27 +9268,12 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  	glh::matrix4f view[6];  	glh::matrix4f proj[6]; -	//clip contains parallel split distances for 3 splits -	LLVector3 clip = RenderShadowClipPlanes; -      LLVector3 caster_dir(environment.getIsSunUp() ? mSunDir : mMoonDir); -	//F32 slope_threshold = gSavedSettings.getF32("RenderShadowSlopeThreshold"); - -	//far clip on last split is minimum of camera view distance and 128 -	mSunClipPlanes = LLVector4(clip, clip.mV[2] * clip.mV[2]/clip.mV[1]); - -	clip = RenderShadowOrthoClipPlanes; -	mSunOrthoClipPlanes = LLVector4(clip, clip.mV[2]*clip.mV[2]/clip.mV[1]); - -	//currently used for amount to extrude frusta corners for constructing shadow frusta -	//LLVector3 n = RenderShadowNearDist; -	//F32 nearDist[] = { n.mV[0], n.mV[1], n.mV[2], n.mV[2] }; -  	//put together a universal "near clip" plane for shadow frusta  	LLPlane shadow_near_clip;  	{ -		LLVector3 p = gAgent.getPositionAgent(); +        LLVector3 p = camera.getOrigin(); // gAgent.getPositionAgent();  		p += caster_dir * RenderFarClip*2.f;  		shadow_near_clip.setVec(p, caster_dir);  	} @@ -9318,9 +9294,6 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  		up = camera.getUpAxis();  	} -	/*LLVector3 left = up%at; -	up = at%left;*/ -  	up.normVec();  	at.normVec(); @@ -9403,6 +9376,14 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  		mSunClipPlanes.mV[0] *= 1.25f; //bump back first split for transition padding  	} +    if (gCubeSnapshot) +    { // stretch clip planes for reflection probe renders to reduce number of shadow passes +        mSunClipPlanes.mV[1] = mSunClipPlanes.mV[2]; +        mSunClipPlanes.mV[2] = mSunClipPlanes.mV[3]; +        mSunClipPlanes.mV[3] *= 1.5f; +    } + +  	// convenience array of 4 near clip plane distances  	F32 dist[] = { near_clip, mSunClipPlanes.mV[0], mSunClipPlanes.mV[1], mSunClipPlanes.mV[2], mSunClipPlanes.mV[3] }; @@ -9419,7 +9400,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)  	}  	else  	{ -        for (S32 j = 0; j < (gCubeSnapshot ? 3 : 4); j++) +        for (S32 j = 0; j < (gCubeSnapshot ? 2 : 4); j++)  		{  			if (!hasRenderDebugMask(RENDER_DEBUG_SHADOW_FRUSTA) && !gCubeSnapshot)  			{ diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h index 0faa0c3f20..4cefb719fd 100644 --- a/indra/newview/pipeline.h +++ b/indra/newview/pipeline.h @@ -999,9 +999,6 @@ public:  	static F32 RenderShadowBlurDistFactor;  	static bool RenderDeferredAtmospheric;  	static F32 RenderHighlightFadeTime; -	static LLVector3 RenderShadowClipPlanes; -	static LLVector3 RenderShadowOrthoClipPlanes; -	static LLVector3 RenderShadowNearDist;  	static F32 RenderFarClip;  	static LLVector3 RenderShadowSplitExponent;  	static F32 RenderShadowErrorCutoff; | 
