Jump to content


Photo

Shadow Optimization for SSE

sse ini

  • Please log in to reply
18 replies to this topic

#1 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 05 September 2020 - 11:06 AM

Shadow Optimization for SSE
 
The goal of this thread is to discover the best vanilla shadow settings for SSE.

Sun-Shadow Transitions

Skyrim.ini



[Display]
bDisableShadowJumps=1
fSunShadowUpdateTime=1.0000
fSunStaticTimeUpdateScale=0.1000
fSunUpdateThreshold=0.5000
These settings control sun-shadow movement. SSE modified shadows so that they move constantly with the movement of the sun by default (bDisableShadowJumps=1), in which case fSunShadowUpdateTime and fSunUpdateThreshold are ignored. This can cause constant shadow flickering at places, so many users find it best to go back to the Oldrim method by setting bDisableShadowJumps=0 and utilizing the fSunShadowUpdateTime and fSunUpdateThreshold to modify how often the shadows update in relation to the sun.
  • fSunShadowUpdateTime sets the speed of sun-shadow transitions in seconds when bDisableShadowJumps=0. It is recommended to be adjusted to minimize the transitions.
  • fSunStaticTimeUpdateScale sets the amount of time in seconds that passes between updating the shadows with the sun when bDisableShadowJumps=1. There is no transition using this method.
  • fSunUpdateThreshold sets the time between sun-shadow transitions when bDisableShadowJumps=0. A value of 0.05 is equal to 1 second, so a value of 1 equals 20 seconds. Increasing this also increases the distance the shadows will move during the transition. It is recommended to be adjusted to minimize the transitions.
Current recommendation:

Skyrim.ini
[Display]
bDisableShadowJumps=0
fSunShadowUpdateTime=0.25
fSunStaticTimeUpdateScale=0.1000
fSunUpdateThreshold=1.5
Shadow Bias

Skyrim.ini



[Display]
fShadowDirectionalBiasScale=0.3
  • fShadowDirectionalBiasScale sets the directional bias of the shadows applied to surfaces.Low values reduce peter-panning (detached shadows), but cause more shadow acne (AKA shadow striping). Please note that while fShadowBiasScale does exist in the INI files, it does not appear to work, and is presumed to be a leftover from Oldrim.
Current recommendation:

Skyrim.ini
[Display]
fShadowDirectionalBiasScale=0.47
Land Shadows

SkyrimPrefs.ini





[Display]
bDrawLandShadows=0
  • bDrawLandShadows toggles the ability of land objects such as rocks and mountains to cast shadows.
bDrawLandShadows=0 b-Draw-Land-Shadows-0.jpg

bDrawLandShadows=1 b-Draw-Land-Shadows-1-Default.jpg


 
Current recommendation:

SkyrimPrefs.ini
[Display]
bDrawLandShadows=1
Tree Shadows

SkyrimPrefs.ini



[Display]
bTreesReceiveShadows=1
  • bTreesReceiveShadows toggles the ability of trees to cast shadows on themselves.
bTreesReceiveShadows=1 Default.jpg

bTreesReceiveShadows=0 Tree-Shadows-Off.jpg
 
Current recommendation:

SkyrimPrefs.ini
[Display]
bTreesReceiveShadows=1
Interior Shadow Draw Distance

SkyrimPrefs.ini


[Display]
fInteriorShadowDistance=3000
  • fInteriorShadowDistance sets the distance that shadows are cast from the player while indoors. In Oldrim, and presumably also in SSE, increasing this greatly increased the likelihood of seeing blinking lights, so it is recommended to be left at its default value.
Current recommendation:

SkyrimPrefs.ini
[Display]
fInteriorShadowDistance=3000
Exterior Shadow Draw Distance

SkyrimPrefs.ini


[Display]
fShadowDistance=8000
  • fShadowDistance sets the distance that shadows are cast from the player outdoors. Increasing this decreases the relative resolution of shadows. Increasing this has a small performance cost.
fShadowDistance=8000 Default.jpg

fShadowDistance=2800 f-Shadow-Distance-2800.jpg

Current recommendation:

SkyrimPrefs.ini
[Display]
fShadowDistance=8000
Detailed Shadow Draw Distance

Skyrim.ini


[Display]
fFirstSliceDistance=1250
  • fFirstSliceDistance sets the distance that full resolution shadows are cast from the player. You can sometimes visibly see the line where the detailed shadows (fFirstSliceDistance) stop and the lower resolution shadows (fShadowDistance) begins. I believe this value is used only in exteriors. Increasing this does not lower the relative resolution of shadows like fShadowDistance does. Increasing it has a small performance cost.
fFirstSliceDistance=2800 Default.jpg

fFirstSliceDistance=0 f-First-Slice-Distance-0.jpg

Current recommendation:

Skyrim.ini
[Display]
fFirstSliceDistance=2800
Shadow Splits

SkyrimPrefs.ini





[Display]
iNumSplits=2
  • iNumSplits sets the number of shadow splits. Acceptable values appear to be 2 or 3. More experimentation with iNumSplits=3 is warranted. Setting this to 0 or lower crashes the game. A setting of 1 is buggy. 4 is buggy. It may prove in future that iNumSplits=3 is the superior value, as initial testing indicated that it vastly improved shadows.
iNumSplits=2 b-Draw-Land-Shadows-1-Default.jpg
iNumSplits=3 i-Num-Splits-3-seems-to-be-okay.jpg
 
Current recommendation:

SkyrimPrefs.ini
[Display]
iNumSplits=2
Shadow Resolution

SkyrimPrefs.ini





[Display]
iShadowMapResolution=2048
  • iShadowMapResolution sets the resolution of shadows. This value controls virtually the entire performance impact of shadows.
Current recommendation:

SkyrimPrefs.ini
[Display]
iShadowMapResolution=2048
 
Settings to Be Tested
 
The following shadow settings (or presumed shadow settings -- some might not do anything to shadows at all) are relatively unknown and need to be tested to determine exactly what they control and how they can be usefully modified:

Skyrim.ini
[Display]
bCreateShadowRenderTarget=0
bDirShadowMapFullViewPort=1
bDisableHighTreeShadow=1
fExponentialShadowMapScale=10.0000
fLoadingMenuShadowBias=30.6400
fLoadingMenuShadowFallOff=0.0000
fMaxFocusShadowMapDistance=450.0000
fMaxHeightShadowCastingTrees=5000.0000
fShadowClampValue=0.3000
fShadowSparkleIntensity=0.2500
iEnableShadowCastingFlag=2
iLoadingMenuShadowLightFlags=1
  • fShadowSparkleIntensity propably modifies the intensity of snow sparkles in shadowed areas.
fShadowClampValue=0.3 b-Draw-Land-Shadows-1-Default.jpg
fShadowClampValue=3 f-Shadow-Clamp-Value-3.jpg
fShadowClampValue=-100 f-Shadow-Clamp-Value-100.jpg
 
iEnableShadowCastingFlag=2 b-Draw-Land-Shadows-1-Default.jpg
iEnableShadowCastingFlag=0 i-Enable-Shadow-Casting-Flag-0.jpg
 
SkyrimPrefs.ini
 
[Display]
ffocusShadowMapDoubleEveryXUnit=450.0000
iNumFocusShadow=4
Unused/Broken Settings
 
The following shadow settings are believed to be unused or broken:

Skyrim.ini





[Display]
bActorSelfShadowing=0
bShadowsOnGrass=1
fShadowBiasScale=1.0000
  • bActorSelfShadowing is leftover from previous games and did not work in Oldrim.
  • bShadowsOnGrass toggled the ability of shadows to be cast upon grass in Oldrim, but disabling it appears to break grass entirely in SSE.
  • fShadowBiasScale set the shadow bias in Oldrim, but appears to have been replaced by fShadowDirectionalBiasScale in SSE.
SkyrimPrefs.ini
[Display]
iShadowMaskQuarter=4
  • iShadowMaskQuarter actually works in SSE. However, changing it only produces bugs. Here is an example of iShadowMaskQuarter=2 so that you get an idea of what it is doing. Basically, by halving the value, it removes a quarter of the shadow mask. In order to have all 4 quarters of the shadow mask, you need to set it to 4. Setting it higher or lower produces game-breaking bugs.
iShadowMaskQuarter=2 2020-09-06-14-08-01.jpg
 
 
Current Recommendations

Skyrim.ini
[Display]
bDisableShadowJumps=0
fFirstSliceDistance=2800
fShadowDirectionalBiasScale=0.47
fSunShadowUpdateTime=0.25
fSunStaticTimeUpdateScale=0.1000
fSunUpdateThreshold=1.5
SkyrimPrefs.ini
[Display]
bDrawLandShadows=1
bTreesReceiveShadows=1
fInteriorShadowDistance=3000
fShadowDistance=8000
iNumSplits=2
iShadowMapResolution=2048

Edited by DoubleYou, 09 September 2020 - 08:55 PM.


#2 z929669

z929669

    Ixian Inventor

  • Administrator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7,053 posts

Posted 05 September 2020 - 11:15 AM

Shadow Optimization for SSE

 

The goal of this thread is to discover the best vanilla shadow settings for SSE.

Sun-Shadow Transitions

Skyrim.ini

bDisableShadowJumps=1
fSunShadowUpdateTime=1.0000
fSunStaticTimeUpdateScale=0.1000

These settings control sun-shadow movement. SSE modified shadows so that they move constantly with the movement of the sun by default (bDisableShadowJumps=1), in which case fSunShadowUpdateTime and fSunStaticTimeUpdateScale are ignored. This can cause constant shadow flickering at places, so many users find it best to go back to the Oldrim method by setting bDisableShadowJumps=0 and utilizing the fSunShadowUpdateTime and fSunStaticTimeUpdateScale to modify how often the shadows update in relation to the sun.

fSunShadowUpdateTime sets the speed of sun-shadow transitions in seconds. It is recommended to be adjusted to minimize the transitions.

fSunUpdateThreshold sets the time between sun-shadow transitions. A value of 0.05 is equal to 1 second, so a value of 1 equals 20 seconds. Increasing this also increases the distance the shadows will move during the transition. It is recommended to be adjusted to minimize the transitions.

/snip

This setting reference is a mistake maybe? It's out of context anyway



#3 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 05 September 2020 - 11:38 AM

This setting reference is a mistake maybe? It's out of context anyway

Fixed.



#4 TechAngel85

TechAngel85

    Akatosh

  • Administrator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 12,938 posts

Posted 05 September 2020 - 11:43 AM

SSE modified shadows so that they move constantly with the movement of the sun by default (bDisableShadowJumps=1), in which case fSunShadowUpdateTime and fSunUpdateThreshold are ignored. This can cause constant shadow flickering at places...

 

Really? I have never had such an issue. Whatever is decided on, I'll likely still use bDisableShadowJumps=1 because it's the best option and, again, never seen any issue with it.



#5 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 05 September 2020 - 11:57 AM

Really? I have never had such an issue. Whatever is decided on, I'll likely still use bDisableShadowJumps=1 because it's the best option and, again, never seen any issue with it.

This is why it is "recommended" but not a part of general "Recommended Tweaks" or presets in BethINI. This issue is only an issue if you notice it, and should be left up to the user if they find it problematic.



#6 z929669

z929669

    Ixian Inventor

  • Administrator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7,053 posts

Posted 06 September 2020 - 11:56 AM

bDrawLandShadows=1 or bDrawLandShadows=0 .... Are you sure that you don't have these reversed in your compares? bDrawLandShadows=0 seems to cast object shadows in your shots, but I don't know where the sun is to say for sure. Seems best to set this at '1' if it really works.

 

bTreesReceiveShadows=1 or bTreesReceiveShadows=0 ... not sure if this is reversed either, since it is listed in a different order than^. Seems like a value of '1' should be best, but I like your bTreesReceiveShadows=0 image best for those trees.

 

I don't know what iEnableShadowCastingFlag is doing, but colors are way diff if set to '0' (not necessarily bad looking though).

 

iNumSplits=3 seems better from your shots.

 

fShadowClampValue<3 seems best, but would need to test a broader range of values in those limits.



#7 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 06 September 2020 - 12:38 PM

bDrawLandShadows=1 or bDrawLandShadows=0 .... Are you sure that you don't have these reversed in your compares? bDrawLandShadows=0 seems to cast object shadows in your shots, but I don't know where the sun is to say for sure. Seems best to set this at '1' if it really works.

 

bTreesReceiveShadows=1 or bTreesReceiveShadows=0 ... not sure if this is reversed either, since it is listed in a different order than^. Seems like a value of '1' should be best, but I like your bTreesReceiveShadows=0 image best for those trees.

 

I don't know what iEnableShadowCastingFlag is doing, but colors are way diff if set to '0' (not necessarily bad looking though).

 

iNumSplits=3 seems better from your shots.

 

fShadowClampValue<3 seems best, but would need to test a broader range of values in those limits.

bDrawLandShadows and bTreesReceiveShadows should definitely be left at 1 (enabled). The shots are marked in the correct order, so I'm not sure how you seem to like the off versions better.

 

iEnableShadowCastingFlag is rather a mystery to me. It seems like it disabled volumetric lighting (Godrays) by setting it to 0, but it also altered the shadows from simply disabling Godrays, so I really need to test more scenarios to figure out what is going on there.

 

iNumSplits=3 definitely looks better to me. I will be testing it on my playthrough and see if I run into any bugs. This is the most promising tweak for shadows that I have seen so far.

 

fShadowClampValue appears to be affecting shadowing only on grass. Lower values cause darker shadowing on the grass, whereas higher values seem to brighten the shadows to the point of removing them altogether. I doubt that it improves performance, however. The default value of 0.3 is probably best, but it may be useful for weather authors who have trouble with too bright grass.



#8 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 06 September 2020 - 01:30 PM

iShadowMaskQuarter actually works in SSE. However, changing it only produces bugs. Here is an example of iShadowMaskQuarter=2 so that you get an idea of what it is doing. Basically, by halving the value, it removes a quarter of the shadow mask. In order to have all 4 quarters of the shadow mask, you need to set it to 4. Setting it higher or lower produces game-breaking bugs.

 

2020-09-06-14-08-01.jpg



#9 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 06 September 2020 - 03:13 PM

I updated the Tree Shadows Compare. The interesting thing I see is that it seems to only affect the smaller trees. Perhaps that's the reason behind all the other tree shadow settings.

 

bTreesReceiveShadows=1 Default.jpg
 
bTreesReceiveShadows=0 Tree-Shadows-Off.jpg


#10 z929669

z929669

    Ixian Inventor

  • Administrator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7,053 posts

Posted 06 September 2020 - 03:22 PM

iShadowMaskQuarter actually works in SSE. However, changing it only produces bugs. Here is an example of iShadowMaskQuarter=2 so that you get an idea of what it is doing. Basically, by halving the value, it removes a quarter of the shadow mask. In order to have all 4 quarters of the shadow mask, you need to set it to 4. Setting it higher or lower produces game-breaking bugs.

So this value is basically good for testing purposes? I.e., if set to 2 or 1, you see all shadows tweaks versus no shadows?



#11 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 06 September 2020 - 03:43 PM

So this value is basically good for testing purposes? I.e., if set to 2 or 1, you see all shadows tweaks versus no shadows?

I don't think it is useful for anything. It caused the game to freeze on one of my tests, and I had to force close it.



#12 Greg

Greg

    High King

  • Uber Moderator
  • PipPipPipPipPipPip
  • 2,204 posts

Posted 06 September 2020 - 08:00 PM

iEnableShadowCastingFlag is rather a mystery to me. It seems like it disabled volumetric lighting (Godrays) by setting it to 0, but it also altered the shadows from simply disabling Godrays, so I really need to test more scenarios to figure out what is going on there.

This one seems rather odd in that the prefix implies it is an integer value and the suffix implies it is a bitmap, so it may be challenging to decipher which bits are used and what they do.



#13 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 07 September 2020 - 10:17 AM

It seems that bDisableShadowJumps=0 can sometimes cause blinking shadows. The funny thing is that restarting the computer will fix it on my system, but if I don't, setting bDisableShadowJumps=1 will fix it.

 



#14 z929669

z929669

    Ixian Inventor

  • Administrator
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7,053 posts

Posted 08 September 2020 - 09:31 AM

That seems like possibly a video driver/hardware issue if a restart fixes for you



#15 DoubleYou

DoubleYou

    Wiki Stepper

  • Uber Moderator
  • PipPipPipPipPipPipPipPipPipPipPip
  • 4,831 posts

Posted 08 September 2020 - 10:47 AM

Yes, it definitely could be. AMD drivers suck. I think I am definitely going NVIDIA next time, which I think is fast approaching.



Also tagged with one or more of these keywords: sse, ini

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users