NOTE: This thread applies to the Legacy 3.8 version of the game. I have a separate thread for 4.0 Live.

Update Check post #14 #18 #23 #28 #32 #82 #99 #137 #165 #209 #240 #262 for most recent iteration of the file. Unless otherwise noted in the referenced post, the rest of this post still applies Update

Adding a belated attribution to @Voubi, whose earlier work here originally inspired my own.

First some background information. Elite: Dangerous uses cascaded shadow maps whose parameters are defined for each individual shadow detail preset in the game's 'GraphicsConfiguration.xml' file, located in the main product directory. Here is some light reading to get the basics of what I'm manipulating out of the way:

You can ignore the more technical information as it's varying degrees of irrelevant or inapplicable, but the jist of how shadow cascades, depth & slope biases, etc, work is important if you want to have a useful conceptual framework for what this thread addresses. Though, if you don't give a damn about any of that, you can skip to the end and just slap my modified xml into your game and see if you like the changes.

Anyway, I have long been rather dissatisfied with the appearance of Elite's shadows. Adjustments have been made that have solved some issues over the years, but other issues persist, and shadows as a whole have not kept up with evolving hardware capabilities (not talking about ray-tracing or anything special, just raw raster performance). Horizons also introduced new concerns that seem to have been poorly accounted for.

In particular the following problems continue to stand out:
  • Shadow acne (what Old Duck would call 'elephant butt leather', caused by an insufficient depth offset or slope bias) on interior cockpit surfaces and planetary surface terrain when the dominant light source is at a highly oblique angles.
  • The exact opposite problem, peter panning shadows (when shadows are disconnected from what casts them, caused by too great an offset), on many objects from the beluga's fins, to the canopy support structures in the viper III & IV, to the shadows cast by rocks and other terrain features on planets at various ranges and lighting angles.
  • Extremely poor shadow detail at certain distances, caused by initial shadow cascades that are extended too far.
  • Poor shadow transitions, caused by an insufficient number of shadow cascades for the distances involved.
  • Shadows that reveal, rather than obfuscate, low geometric detail/distant LOD objects. This is especially apparent on asteroid bases, which normally use the 'General' shadow profile, rather than the 'AsteroidField' profile, which has more proper depth/slop biases to prevent this.
Elite's 'ultra' shadow quality preset has six shadow frustums/cascades (well, seven if you count the cockpit). Modifying only the cascade levels originally defined by the game allowed me to remedy some of these issues, but the results were ultimately still dissatisfying. The "PlanetaryApproach" shadow profile in general was in desperate need of more cascades to fix it's more glaring issues without extreme negative trade-offs. Unfortunately, I've also discovered that shadow cascades cannot be added via my prefered method of using the 'GraphicsConfigurationOverride.xml', located in one's settings directory, rather they must be added to the "GraphicsConfiguration.xml" proper.

So, a quick outline of the changes I made to the 'ultra' quality preset in my 'GraphicsConfiguration.xml':
  • Increased shadow slice size (which seems to be shadow map resolution) from 2048 to 4096.
  • Increased the number of cascade levels (frustums) from six to nine, focusing on closer shadows, to improve detail and smoothness of transistions.
  • Altered the magnitude of shadow fading to further smooth transitions.
  • Removed any dynamic altitude adjustment stuff for the 'PlanetApproach' shadows because it was causing extreme shadow acne and they aren't needed with nine cascades.
  • Rebalanced virtually all of the depth and slope biases across all profiles to reduce peter panning shadows, shadow acne, and excessive highlighting of geometry, with as few trade offs as practical.
  • Set all the filter kernel sizes to three to improve the softness of the higher resolution maps and improve performance as well. Adjusted most of these to 1.5 in more recent shadow tables to preserve more detail...negligble performance impact.
Since I have no control over the geometry actually casting the shadows and there are such extremes of environment and distances involved in-game, this entire endevour was an exercise in compromise, with a few scenarios that may actually look worse than before (some transistions on very smooth surfaces are more pronounced, due to the increased number of cascades). However, I am quite happy with the overall end results, so far. This is still a work in progress, and after gathering some more feedback I'll probably revise things further. I'm also looking into the possibility of using twelve or sixteen cascades.

Note that these changes will only apply if you use the 'Ultra' quality shadow preset in the game's graphics settings. Performance hit should be quite minor, but it is there, and if you are very borderline on being able to run Ultra shadows, this particular set of adjustments may not be for you and you may wish to reference previous threads of mine on the topic for some less significant changes.

If you would like to test these changes yourself, you can either replace your 'GraphicsConfiguration.xml', located in the main game directory (\Products\elite-dangerous-64), with the one I have attached to this post (remove the .txt extension first, the new forum doesn't let me attach .xml files), or you can paste+add my changes directly over lines 877 to 1192 in the same.

Reverting these changes is as simple as having the launcher verify the game's integrity; any modified files will be replaced with originals.

My current ultra shadow settings:
XML:
    <Shadows_Ultra>
        <Profile_General>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0.99</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>480.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>960.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1920.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0015</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3840.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>7680.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_General>
        <Profile_PlanetApproach>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0.99</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <CrossFadeCascadesDistance>180.0</CrossFadeCascadesDistance>
            <LastCrossFadeCascadesDistance>720.0</LastCrossFadeCascadesDistance>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.0</NearClipBias>
            <AltitudeAdaptation>
                <MinElevation>100.0</MinElevation>
                <MaxElevation>350.0</MaxElevation>
                <Scale>1.0</Scale>
                <FirstCascadeScalingAmount>1.0</FirstCascadeScalingAmount>
            </AltitudeAdaptation>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>480.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>960.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1920.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3840.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>3.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>7680.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetApproach>
        <Profile_PlanetSurface>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <NumInteriorFrustums>1</NumInteriorFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0.99</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>480.0</LastCrossFadeCascadesDistance>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.0</NearClipBias>
            <FrustumZeroCanBeOverridden>0</FrustumZeroCanBeOverridden>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>10.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>20.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>40.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>80.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>160.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>320.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>640.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>3.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>1600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>4800.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetSurface>
        <Profile_StationInterior>
            <SliceSize>4096</SliceSize>
            <NumFrustums>1</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0.01</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>1470.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>0</TexelStability>
            </Frustum0>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_StationInterior>
        <Profile_AsteroidField>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0.99</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.00125</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0025</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>480.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>960.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1920.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3840.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <AsteroidShadowsEnabled>1</AsteroidShadowsEnabled>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_AsteroidField>
    </Shadows_Ultra>

I'll try to add some comparison images at some point.

Feel free to post any questions, comments, or suggestions.
 

Attachments

  • GraphicsConfiguration.xml.txt
    67.3 KB · Views: 676
Last edited:
While I cannot use any of this on my PS4, I am thrilled to know that I'm not the only one who cares about shadow quality. Shadows are a huge part of the visual presentation, with the ability to make or break our experience. I've said before that ED on PS4 is kinda like a vampire - it is great at night / in the dark (like a station in the shadow of a planet), but when exposed to sunlight, it just crumbles visually.

Anywho, you have my deep and and sincere gratitude for this thread :D
 
While I cannot use any of this on my PS4, I am thrilled to know that I'm not the only one who cares about shadow quality. Shadows are a huge part of the visual presentation, with the ability to make or break our experience. I've said before that ED on PS4 is kinda like a vampire - it is great at night / in the dark (like a station in the shadow of a planet), but when exposed to sunlight, it just crumbles visually.

Anywho, you have my deep and and sincere gratitude for this thread :D

I agree so much about the importance of shadows that I spent over a hundred hours testing and tweaking the game's shadow tables for my own enjoyment!

But yeah, the quality of shadows, even on PC, are generally not up to snuff and could really use a major revision. I'd like to think that the professionals responsible could do a better job than myself with regard to this, but then again, most of them aren't playing the game and don't have to stare at their work in their off time.

As for the PS4, I wonder if their settings aren't implimented very similarly to the PC...there may well be some way to modify the game with new shadow cascade settings, depending on how integrity is checked. This is just speculation though; my most recent console is an Atari Jaguar, so I can't really check myself.
 
One of the things I don't understand is why Frontier uses dynamic shadows everywhere. I get it for ships and stations, but the majority of outposts and planet surfaces could easily get away with static shadows (forgive my arcane terms) that are regenerated perhaps once a minute. Most games I play with day / night cycles do this. For example, if you look at building shadows in ESO, they "tick" every n seconds to a new position. It's not even perceivable unless you really look closely at a long shadow, like cast from a sailing ship's mast. This allows ESO to generate very high-quality shadows in their complex game world, even on a console.

On PS4, both outposts and planetary features are a flickering, blurry mess right now, because they are dynamic despite being "static" (they don't move at a perceivable rate) and thus require the lowest-quality shaders to keep framerate high. True static shadows would visually transform these assets into amazing visual works of art, even on the humble PS4 Slim. Why does Frontier not do this? I suspect because it's "easier" to use one dynamic shader to rule them all. Just throw hardware at the problem instead of smart programming...

/rant

Disclaimer - I don't even pretend to know the more nuanced details of the OP, I'm just looking at the "big picture" of shadows in ED.
 
Swapped my profile to the "Low" preset to make comparisons with "Ultra" easier and made a quick couple of comparison videos to illustrate some of the alterations I've made with the "PlanetApproach" profile (which seems to be anything in normal space inside the drop out zone of a landable planet, while still in your ship and not the SRV):

Source: https://www.youtube.com/watch?v=Ge1aDqG6TGM


Source: https://www.youtube.com/watch?v=ejo4om4hRp0


As you can see, the results, while not perfect, are much improved and the performance hit negligible. This was one of the trickier profiles to work on as flickering is caused by too little depth bias while the peter panning (disconnected) shadows are caused by too much.

More comparisons to come.
 
Revamping most of my shadow profiles as I've stumbled upon a fix for an issue I've been having with certain frustum transitions. Adding more frustums and thus compressing the space between them appears to have caused this problem and I nearly dismissed it as unsolvable until I started playing with the "NearClipBias" setting that was part of a few of the profiles. Adding this to all of the profiles and setting a value of "1.5" (as I'm using 1.5 times the number of cascades vs. default, with similarly closer distances) seems to have resolved these issues.

Will post an updated configuration file soon.
 
Revamping most of my shadow profiles as I've stumbled upon a fix for an issue I've been having with certain frustum transitions. Adding more frustums and thus compressing the space between them appears to have caused this problem and I nearly dismissed it as unsolvable until I started playing with the "NearClipBias" setting that was part of a few of the profiles. Adding this to all of the profiles and setting a value of "1.5" (as I'm using 1.5 times the number of cascades vs. default, with similarly closer distances) seems to have resolved these issues.

Will post an updated configuration file soon.

Great job ! Will wait for the updated configuration file and try it. Was on PS4 before and I have to admit that shadows were horrible. Switched to PC recently and it's already far better but still some issues in ULTRA so I can't wait to try it and give my feedbacks :)
 

rootsrat

Volunteer Moderator
Nice one, thanks Cmdr! I'll definitely test this at some point. Big fan of modding, be it via actual mods or messing with cfg files :)
 
Having issues balancing three aspects of the 'general' shadow profile, given the broad spectrum of situations it can be used it.

If I have enough cascades and sufficient depth bias to mask the transitions between frustums when near a flat, smooth, surface (like the side of a mega ship), I get severe peter panning shadows on some geometry (like Beluga fins). If I minimize the biases to eliminate peter panning shadows beyond a certain view distance, frustum transitions get more noticeable on flat surfaces and shadowy seams reveal the facets on the geometry of objects like asteroid bases.

I might have to purchase a Beluga and park it outside an asteroid base so I can balance as many aspects of the general profile as possible simultaneously.
 
Did a quick experiment with a single frustum at 16k slice size (the maximum texture size under D3D11) to see if that was sufficient to get acceptable quality at a distance with out cascaded shadows at all. The results were completely unsatisfactory; the self shadowing on ships and other close shadows looked impressively clean, as expected, but beyond a few hundred meters (as you can see on the station about half-way through the video below it quickly turned into a mess of cloudiness and flicker:

Source: https://www.youtube.com/watch?v=T5Zb91hpJzA


Looks like cascades are mandatory and it appears some degree of compromise will be unavoidable. I probably won't fuss too much over the independent asteroid bases, as they are relatively uncommon (as opposed to the ones that are in rings, which use the 'AsteroidField' profile).
 
I think my current progress is polished enough to post.

Note that I've swapped the custom profile to the LOW preset to allow for easier comparison/fallback with Ultra. So, if you use the file below, select LOW shadow quality if you want to use my custom settings. Medium, High, and Ultra will work normally.

File will be attached at the bottom of this post. Once again, rename the file and remove everything after ".xml" before placing it in the game directory.

Contents:

XML:
    <Shadows_Low>
        <Profile_General>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>480.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>960.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1920.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3840.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_General>
        <Profile_PlanetApproach>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>900.0</LastCrossFadeCascadesDistance>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>360.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0003</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3000.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9000.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetApproach>
        <Profile_PlanetSurface>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>900.0</LastCrossFadeCascadesDistance>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>10.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>20.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>40.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>80.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>120.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>1500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.004</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>4500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetSurface>
        <Profile_StationInterior>
            <SliceSize>4096</SliceSize>
            <NumFrustums>1</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0</Fade>
            <CrossFadeCascades>false</CrossFadeCascades>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>1470.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>0</TexelStability>
            </Frustum0>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_StationInterior>
        <Profile_AsteroidField>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>1200.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>2400.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>4800.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <AsteroidShadowsEnabled>1</AsteroidShadowsEnabled>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_AsteroidField>
    </Shadows_Low>
 

Attachments

  • GraphicsConfiguration.xml.v3.txt
    72.9 KB · Views: 583
Also, if anyone trying these changes is within easy reach of a Thargoid structure, information on how the changes work inside would be appreciated.

I removed a line in the PlanetSurface profile that refered to interior frustums as I'm pretty sure it's depreciated, but I cannot actually test it myself as my CMDR is still in the vicinity of Colonia.
 
Hi Morbad, can I ask what the performance hit is like using these new shadow tables, or do you have a feel for that yet?

Cheers again for the work,

Z
 
Hi Morbad, can I ask what the performance hit is like using these new shadow tables, or do you have a feel for that yet?

It will depend on hardware and precise in-game situation. I've tried to keep the hit manageable and on my setup it's generally well below the threshold of perception and probably averages at a 5% reduction (vs. the stock Ultra preset) to my measured framerates. This is on an Intel hex core with a 1080 Ti.

If you try it and find the performance hit a bit too severe, it can probably be reduced to margin of error simply by changing the slice size for the profile that is giving you trouble from 4096 back to 2048 (the file can be edited in plain text and these areas are not hard to find). This will leave you with most of the benefits, but bring the performance most of the way back to Ultra.
 
Incremental update. I increased the depth biases of all the cockpit frustums and the last cascade of the planet approach profile to clean up a bit more flickering. I also reinserted the line to disable adaptive shadow cascades, as there were some situations where I suspect these were defaulting to enabled, and even if they aren't, leaving the line won't harm anything. Additionally removed the near clip bias to the planet surface profile shadows; it seems to hurt more often than it helps from the SRV's perspective.

XML:
    <Shadows_Low>
        <Profile_General>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00006</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>480.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>960.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1920.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3840.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_General>
        <Profile_PlanetApproach>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>900.0</LastCrossFadeCascadesDistance>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00006</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>360.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0003</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>1500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.001</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>3000.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9000.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.004</DepthBias>
                <DepthSlopeBias>3.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetApproach>
        <Profile_PlanetSurface>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>900.0</LastCrossFadeCascadesDistance>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.0</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00003</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>10.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>20.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>40.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>80.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>120.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0001</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>1500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.004</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>4500.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_PlanetSurface>
        <Profile_StationInterior>
            <SliceSize>4096</SliceSize>
            <NumFrustums>1</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>0</Fade>
            <CrossFadeCascades>false</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <FrustumCockpit>
                <DepthBias>0.00006</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>1470.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3</FilterKernelSize>
                <TexelStability>0</TexelStability>
            </Frustum0>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_StationInterior>
        <Profile_AsteroidField>
            <SliceSize>4096</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>2</FilterQuality>
            <Fade>1</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <AdaptiveCascades>false</AdaptiveCascades>
            <NearClipBias>1.5</NearClipBias>
            <FrustumCockpit>
                <DepthBias>0.00006</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
            </FrustumCockpit>
            <Frustum0>
                <EndDistance>30.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum0>
            <Frustum1>
                <EndDistance>60.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>4.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.00000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.0005</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum2>
            <Frustum3>
                <EndDistance>240.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.002</DepthBias>
                <DepthSlopeBias>5.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum3>
            <Frustum4>
                <EndDistance>600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>4.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum4>
            <Frustum5>
                <EndDistance>1200.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum5>
            <Frustum6>
                <EndDistance>2400.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>3.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum6>
            <Frustum7>
                <EndDistance>4800.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.5</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum7>
            <Frustum8>
                <EndDistance>9600.000000</EndDistance>
                <ShaderBias>0.003</ShaderBias>
                <ShaderSlopeBias>0.003</ShaderSlopeBias>
                <DepthBias>0.003</DepthBias>
                <DepthSlopeBias>2.0</DepthSlopeBias>
                <FilterKernelSize>3.0</FilterKernelSize>
                <TexelStability>2</TexelStability>
            </Frustum8>
            <NumSpotShadows>6</NumSpotShadows>
            <SpotFilterQuality>1</SpotFilterQuality>
            <AsteroidShadowsEnabled>1</AsteroidShadowsEnabled>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
        </Profile_AsteroidField>
    </Shadows_Low>
 

Attachments

  • GraphicsConfiguration.xml.v4.txt
    73.1 KB · Views: 569
Just made the changes in my .xml file. I was at a planetary station with bright sun (so a lot of shadows).

FPS is always a little bit lower near surface station and I saw no difference between ULTRA & LOW (your custom setting). I was between 45-50 fps no matter the setting.

I'll take time to do some screenshots to compare different situations but the first thing that hit me was the resolution of my ship shadow...far better & clean with your settings ! Love it !

Will keep you in touch.
 
Top Bottom