Shadow Quality

StefanOS

Volunteer Moderator
My latest GraphicsConfiguration.xml file is usually the latest file in this thread (post #274), as the only changes I make to the primary file are to the shadow tables as those are the only changes that cannot be made in the override.

I alter my GraphicsConfigurationOverride.xml rather frequently and generally only post it on request. I'll attach my current iteration here (remove the .txt extension before using).

Note that my HDRNode and HDRNode_Reference settings are currently tuned to support HDR render targets and inverse tonemapping. They will be too dark while running the game in SDR. So, if one is not using some kind of HDR injector with a 800+ nit display, just remove those sections entirely.
Hello, the file in post 274 is too small only 3.3kB it must be wrong, the game crashes, normally file size is 61KB
 
Hello, the file in post 274 is too small only 3.3kB it must be wrong, the game crashes, normally file size is 61KB

Are you sure you aren't confusing post #274 with post #277?

Post 277 contains an override file in response to a request. 274 is correctly my most recent set of shadow tables integrated into the main GraphicsConfiguration.xml.
 

StefanOS

Volunteer Moderator
Are you sure you aren't confusing post #274 with post #277?

Post 277 contains an override file in response to a request. 274 is correctly my most recent set of shadow tables integrated into the main GraphicsConfiguration.xml.
O.k. seems you are right, it looks like I mixed it up.
 
Sadly I think the current iteration of this, with the current 05 update seems to cause a game crash in planet rings - e.g. each time I drop into Col 285 Sector US-Z b14-7 12 rings to check out shadow flicker there (on my way to the spire site nearby) the game crashes completely... after restoring my backup xml file no crash.
 
Sadly I think the current iteration of this, with the current 05 update seems to cause a game crash in planet rings - e.g. each time I drop into Col 285 Sector US-Z b14-7 12 rings to check out shadow flicker there (on my way to the spire site nearby) the game crashes completely... after restoring my backup xml file no crash.

I went to this planet and tested both rings, no crashes.

The problem with the frustum transitions that's been around since U18 dropped is still there, but that exists even in the stock profiles.
 
I went to this planet and tested both rings, no crashes.

The problem with the frustum transitions that's been around since U18 dropped is still there, but that exists even in the stock profiles.
Odd. I'll do a bit more testing to see if I can figure out why I get a crash.

EDIT. Weird, every time I start ED, Directional Shadows is set to Ultra, Spot Shadows to High... even though I set it and then make the Custom.4.0.fxcfg file read only
 
Last edited:
I went to this planet and tested both rings, no crashes.

The problem with the frustum transitions that's been around since U18 dropped is still there, but that exists even in the stock profiles.
Aha! I see the problem, with your fix file and IF the game decides to run itself with Directional Shadow set to Ultra (which it seems to want to do by itself) THEN the rings cause a crash... but if I start the game, manually check and set Directional Shadow it to Low each time, then no crash.
Weird Huh?
Also it might be worth noting I have monitor resolution 2560x1080
 
Aha! I see the problem, with your fix file and IF the game decides to run itself with Directional Shadow set to Ultra (which it seems to want to do by itself) THEN the rings cause a crash... but if I start the game, manually check and set Directional Shadow it to Low each time, then no crash.
Weird Huh?
Also it might be worth noting I have monitor resolution 2560x1080

If it's set to ultra it should just use the ultra tables. I swap back and forth between my profiles (on Low) and the Ultra preset in my testing without issue; the ability to do so is the whole reason I replaced the Low preset.

You shouldn't need to make Custom4.0.fxcfg read only either.
 
If it's set to ultra it should just use the ultra tables. I swap back and forth between my profiles (on Low) and the Ultra preset in my testing without issue; the ability to do so is the whole reason I replaced the Low preset.

You shouldn't need to make Custom4.0.fxcfg read only either.
Yep that's what I figured too, yet the crash is what I got in only when the game stubbornly had started in ultra - I have solved that too, I think the old Custom.fxcfg (for Horizons era) still being there was causing the game to get in a weird state of ignoring the Custom4.0.fxcfg file or something. I added the same xml inside both and now it starts properly on low without needing me to manually change it each time I start a session.

What I have learned from all this is that these xml and fcvfg files (and the shadow system) are all very temperamental, and annoying. I do wish they would make an effort to overhaul the lighting and shadow system. It seems janky all the way down.
 
Yep that's what I figured too, yet the crash is what I got in only when the game stubbornly had started in ultra - I have solved that too, I think the old Custom.fxcfg (for Horizons era) still being there was causing the game to get in a weird state of ignoring the Custom4.0.fxcfg file or something. I added the same xml inside both and now it starts properly on low without needing me to manually change it each time I start a session.

What I have learned from all this is that these xml and fcvfg files (and the shadow system) are all very temperamental, and annoying. I do wish they would make an effort to overhaul the lighting and shadow system. It seems janky all the way down.

The 3.8 graphics config shouldn't interfere with anything either, but yes, the game does occasionally seem to botch it's settings for whatever reason.

Best bet, if you run into issues, is to delete the entire Graphics subfolder under Options (after backing up your GraphicsConfigurationOverride.xml if you need to), delete the GPUWorkTable.xml from the main game director, then clear the OS/driver shader caches. When starting the game it should regenerate all of these files and you can manually go through the game options, set everything to taste, then exit the game, restore the override and make any adjustments to the graphics options files as needed (making sure checkerboard rendering is disabled in both places it tends to crop up, for example).
 
Just a follow up appreciation comment...
Morbad you have made the greatest single visual QOL fix for me in ages - with recent activities at spire sites, Hadad and now in a return to a little space knitting exploration, all vastly improved by the shadows no longer making me want to punch through the screen. Kudos - it appears you may know more about the frustrums than anyone left at Fdev. lol
PS. your fix gets a mention in my lengthy 'manifesto' shown in my sig block below lol

Side note, do you think any other optimisations might be possible for individual monitor resolutions? I'm thinking given the age of the engine designed at a time when probably standard 1080P was 99% of users, other limitations may be manifesting themselves more often for people such as me with 2560 widescreen, or those with 2K, 4K, and much higher resolution VR than was available back in the day etc? It's one of the reasons I think they should do a wholesale refactor and redesign of the lighting system.
 
Last edited:
Side note, do you think any other optimisations might be possible for individual monitor resolutions?

Unlikely. My tables are already using the highest slice size/shadow map resolution that can be set (8-16k). This resolution would be absurd in most other games, both in terms of being overkill and in the performance hit it would cause, but ED has such large environments with directional shadows cast at such long distances, and so many other performance issues, that going straight for the maximum was the most expedient and sensible way to improve quality.

Since the shadow map resolution can't really be increased (though I do wonder if the EVSM half-resolution setting that needs to be enabled to avoid issues will allow me to set an unsupported base resolution...something I'll test later) there is not really any other parameters that would be dependent on screen resolution for improving the directional shadows.

It's one of the reasons I think they should do a wholesale refactor and redesign of the lighting system.

There is a lot of stuff they should redesign, but I don't think they're going to.

Ideally, we'd have tighter geometry and ray traced shadows (which need not be hardware accelerated) in a modern engine. Maybe in the next game.
 
Some preliminary changes for the next version of my tables:

  • (re)Doubled ShadowSliceSize, which seems to work without (additional) issue with EVSMCascadeFullRes = false. This should be enabling full 16k res EVSM shadow maps without the artifacts that EVSMCascadeFullRes = true causes. The net effect is subtle (8k was already well into diminishing returns), but should result in generally crisper shadows.
  • Rebalanced Profile_PlanetSurface yet again. I decided that the dummy frustum plus a 20m Frustum1 was costing too much shadow detail up close. So I've gone back to 3.5m/10m for these. There will be rare self shadowing/shadow acne artifacts at extremely low sunlight angles, but the net effect should be an improvement.
  • Small adjustment to Profile_StationInterior.

XML:
        <Profile_General>
            <SliceSize>32768</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>3</FilterQuality>
            <Fade>1.0</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <NearClipBias>1.0</NearClipBias>
            <Frustum0>
                <EndDistance>0.0</EndDistance>
            </Frustum0>
            <Frustum1>
                <EndDistance>40.0</EndDistance>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.0</EndDistance>
            </Frustum2>
            <Frustum3>
                <EndDistance>300.0</EndDistance>
            </Frustum3>
            <Frustum4>
                <EndDistance>650.0</EndDistance>
            </Frustum4>
            <Frustum5>
                <EndDistance>1325.0</EndDistance>
            </Frustum5>
            <Frustum6>
                <EndDistance>2625.0</EndDistance>
            </Frustum6>
            <Frustum7>
                <EndDistance>5300.0</EndDistance>
            </Frustum7>
            <Frustum8>
                <EndDistance>12500.0</EndDistance>
            </Frustum8>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
            <EVSMCascadeFullRes>false</EVSMCascadeFullRes>
        </Profile_General>
        <Profile_PlanetApproach>
            <SliceSize>32768</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>3</FilterQuality>
            <Fade>1.0</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <CrossFadeCascadesDistance>300.0</CrossFadeCascadesDistance>
            <LastCrossFadeCascadesDistance>1000.0</LastCrossFadeCascadesDistance>
            <NearClipBias>1.0</NearClipBias>
            <AltitudeAdaptation>
                <MinElevation>100.0</MinElevation>
                <MaxElevation>350.0</MaxElevation>
                <Scale>3.0</Scale>
                <FirstCascadeScalingAmount>2.0</FirstCascadeScalingAmount>
            </AltitudeAdaptation>
            <Frustum0>
                <EndDistance>0.0</EndDistance>
            </Frustum0>
            <Frustum1>
                <EndDistance>20.0</EndDistance>
            </Frustum1>
            <Frustum2>
                <EndDistance>40.0</EndDistance>
            </Frustum2>
            <Frustum3>
                <EndDistance>80.0</EndDistance>
            </Frustum3>
            <Frustum4>
                <EndDistance>160.0</EndDistance>
            </Frustum4>
            <Frustum5>
                <EndDistance>480.0</EndDistance>
            </Frustum5>
            <Frustum6>
                <EndDistance>1200.0</EndDistance>
            </Frustum6>
            <Frustum7>
                <EndDistance>2400.0</EndDistance>
            </Frustum7>
            <Frustum8>
                <EndDistance>4800.0</EndDistance>
            </Frustum8>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
            <EVSMCascadeFullRes>false</EVSMCascadeFullRes>
        </Profile_PlanetApproach>
        <Profile_PlanetSurface>
            <SliceSize>32768</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>3</FilterQuality>
            <Fade>1.0</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <LastCrossFadeCascadesDistance>900.0</LastCrossFadeCascadesDistance>
            <NearClipBias>1.0</NearClipBias>
            <Frustum0>
                <EndDistance>3.5</EndDistance>
            </Frustum0>
            <Frustum1>
                <EndDistance>10.0</EndDistance>
            </Frustum1>
            <Frustum2>
                <EndDistance>20.5</EndDistance>
            </Frustum2>
            <Frustum3>
                <EndDistance>60.0</EndDistance>
            </Frustum3>
            <Frustum4>
                <EndDistance>125.0</EndDistance>
            </Frustum4>
            <Frustum5>
                <EndDistance>250.0</EndDistance>
            </Frustum5>
            <Frustum6>
                <EndDistance>500.0</EndDistance>
            </Frustum6>
            <Frustum7>
                <EndDistance>1500.0</EndDistance>
            </Frustum7>
            <Frustum8>
                <EndDistance>5000.0</EndDistance>
            </Frustum8>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
            <EVSMCascadeFullRes>false</EVSMCascadeFullRes>
        </Profile_PlanetSurface>
        <Profile_StationInterior>
            <SliceSize>32768</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>3</FilterQuality>
            <Fade>1.0</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <CrossFadeCascadesDistance>300.0</CrossFadeCascadesDistance>
            <LastCrossFadeCascadesDistance>1000.0</LastCrossFadeCascadesDistance>
            <NearClipBias>1.0</NearClipBias>
            <AltitudeAdaptation>
                <MinElevation>50.0</MinElevation>
                <MaxElevation>350.0</MaxElevation>
                <Scale>3.0</Scale>
                <FirstCascadeScalingAmount>1.0</FirstCascadeScalingAmount>
            </AltitudeAdaptation>
            <Frustum0>
                <EndDistance>3.5</EndDistance>
            </Frustum0>
            <Frustum1>
                <EndDistance>20.0</EndDistance>
            </Frustum1>
            <Frustum2>
                <EndDistance>40.0</EndDistance>
            </Frustum2>
            <Frustum3>
                <EndDistance>80.0</EndDistance>
            </Frustum3>
            <Frustum4>
                <EndDistance>160.0</EndDistance>
            </Frustum4>
            <Frustum5>
                <EndDistance>480.0</EndDistance>
            </Frustum5>
            <Frustum6>
                <EndDistance>1200.0</EndDistance>
            </Frustum6>
            <Frustum7>
                <EndDistance>2400.0</EndDistance>
            </Frustum7>
            <Frustum8>
                <EndDistance>4800.0</EndDistance>
            </Frustum8>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
            <EVSMCascadeFullRes>false</EVSMCascadeFullRes>
        </Profile_StationInterior>
        <Profile_AsteroidField>
            <SliceSize>32768</SliceSize>
            <NumFrustums>9</NumFrustums>
            <FilterQuality>3</FilterQuality>
            <Fade>1.0</Fade>
            <CrossFadeCascades>true</CrossFadeCascades>
            <NearClipBias>1.0</NearClipBias>
            <Frustum0>
                <EndDistance>0.0</EndDistance>
            </Frustum0>
            <Frustum1>
                <EndDistance>40.0</EndDistance>
            </Frustum1>
            <Frustum2>
                <EndDistance>120.0</EndDistance>
            </Frustum2>
            <Frustum3>
                <EndDistance>300.0</EndDistance>
            </Frustum3>
            <Frustum4>
                <EndDistance>600.0</EndDistance>
            </Frustum4>
            <Frustum5>
                <EndDistance>1200.0</EndDistance>
            </Frustum5>
            <Frustum6>
                <EndDistance>2400.0</EndDistance>
            </Frustum6>
            <Frustum7>
                <EndDistance>6000.0</EndDistance>
            </Frustum7>
            <Frustum8>
                <EndDistance>15000.0</EndDistance>
            </Frustum8>
            <AsteroidShadowsEnabled>1</AsteroidShadowsEnabled>
            <FogShadowMapsEnabled>1</FogShadowMapsEnabled>
            <EVSMCascadeFullRes>false</EVSMCascadeFullRes>
        </Profile_AsteroidField>

Still a ton of resurgent shadow issues with U18 that, to the best of my current knowledge, are neither caused, nor can be fixed, by editing the graphics configuration files.
 

Attachments

  • GraphicsConfiguration.xml.EDOv27_test.txt
    60.8 KB · Views: 235
Last edited:
Confirming looking good so far, still in the same system doing some mining and exo bio as the last few days so will shout out if there's something not working as well

Only thing I have noticed so far is that the old file had much softer shadow barely visible on character itself on foot, with less shadows turning off/on (e.g. the shadow on underside of the ship) when turning character left and right. New file has much better on foot character shadow but a bit more of that off/on under ship when turning around -- see
Source: https://www.youtube.com/watch?v=-wJBplchEa8

In an ideal world, I think I'd prefer something of a midpoint between the sharp character shadow but with less turning artifacts.

No major constant flickering on terrain at low light angle
Elite Dangerous_2024.05.29-07.36.jpg


ADDITIONAL NOTES

The new test has more shadow popping off and on approaching and within bright rings too which is a bit too jarring. I think I'll have to return to previous 'soft shadow' one.
 
Last edited:
New file has much better on foot character shadow but a bit more of that off/on under ship when turning around -- see
Source: https://www.youtube.com/watch?v=-wJBplchEa8

That artifact from the cascade disappearing is something that shouldn't be happening at all and something I can't really fix. I can push out the cascade a bit, at the cost of detail, but the underlying issue is part of what Frontier broke in U18.

The new test has more shadow popping off and on approaching and within bright rings too which is a bit too jarring. I think I'll have to return to previous 'soft shadow' one.

This is interesting. Rings are an area I didn't test as I wasn't expecting any meaningful changes beyond slightly sharper shadows.

Do either of these issues get better if you simply edit the new file and change all instances of "32768" back to "16384"?
 
Do either of these issues get better if you simply edit the new file and change all instances of "32768" back to "16384"?

Just tried that, rings shadows were still flicking off on, and under ship on foot still janky... ps. I've been deleting the worktables each time just in case that makes a difference, figured it can't hurt.

When I revert to the previous 'soft' shadow version (the 69K file) little in the way of shadows at all in the rings which may be a problem for some, but until fdev do their job I'd rather have too few shadows than too many popping off and on randomly. lol
 
Thx very much 2Morbad! ... using v26 now (RTX 4070, 1080p monitor) and really heavy shadow flickering is gone. This should be basic in-game graphic setting ...
 
Last edited:
Back
Top Bottom