This PR grew to be pretty large, so I'd like to make future changes that may depend upon this PR in a separate PR to avoid making it even larger. I plan to make some changes to further improve visuals (mainly particles/VFX) as soon as possible.
Fix lights being overly strong due to an excessive range, which led to clustering artifacts.
Make VoxelGI and SDFGI brighter to make the scene more readable.
Add LightmapProbe nodes around the path taken by the player (not currently effective, as meshes don't use dynamic GI mode when needed yet).
Tweak spotlight colors to better match their emitter material.
Make the core light orange-red to make it look more "unique" in the scene.
Add window mode, V-Sync and FPS limit options.
Add resolution scale and scale filter options (bilinear, FSR1, FSR2). The default is to use FSR2 at native resolution to provide high-quality temporal antialiasing.
Add volumetric fog (enabled by default), used as a volumetric lighting solution.
Add SSIL option (disabled by default), which helps better ground some objects in the scene.
Refactor settings code to use ConfigFile instead of manual JSON serialization.
Reorder settings to feature video settings first, then rendering settings.
Order settings from least expensive to most expensive.
Add performance color hints for settings (green = fast, yellow = average, orange = slow, red = slowest).
Add volumetric fog and a fake bounce light to the menu.
Make all setting changes effective in the menu.
Tweak shadow settings to improve performance and visual consistency.
Render GI at full-resolution to improve temporal stability when using FSR2 or TAA. Using upscaling should be preferred instead, since this demo relies on strong GI effects to look good.
Improve menu theming using the StyleBoxFlat Skew property.
Use the canvas_items stretch mode to match 3.x demo behavior, which used the 2d stretch mode but wasn't ported over by the project converter.
Only display multiplayer ID in the debug menu if currently online.
Fix menu not using experiment.hdr for reflections as intended.
Remove unused menu button textures (these were replaced by StyleBoxFlat in the 4.0 port).
Preview
Menu
Default settings:
Level with VoxelGI
Level with SDFGI
SDFGI struggles with this scene due to the presence of small bright emissive objects, so VoxelGI should be preferred for this demo. Nonetheless, I've updated the settings for SDFGI as well.
canvas_items
stretch mode to match 3.x demo behavior, which used the2d
stretch mode but wasn't ported over by the project converter.experiment.hdr
for reflections as intended.Preview
Menu
Default settings:
Level with VoxelGI
Level with SDFGI
SDFGI struggles with this scene due to the presence of small bright emissive objects, so VoxelGI should be preferred for this demo. Nonetheless, I've updated the settings for SDFGI as well.