Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve visuals and settings menus, fix overly strong lights #179

Merged
merged 1 commit into from
Nov 30, 2023

Conversation

Calinou
Copy link
Member

@Calinou Calinou commented Nov 30, 2023

Note

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

menu webp

Default settings:

settings webp

Level with VoxelGI

voxelgi_aiming webp

voxelgi_bridge webp

voxelgi_catwalk_2 webp

voxelgi_catwalk webp

voxelgi_core_2 webp

voxelgi_core webp

voxelgi_headlights webp

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.

sdfgi_back_from_core webp

sdfgi_core webp

sdfgi_railing webp

- 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.
- 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).
Copy link
Member

@aaronfranke aaronfranke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think there's too much to review everything, but a Calinou PR is always awesome, so I'm inclined to just merge it. Thank you for the detailed description though :)

Copy link
Member

@akien-mga akien-mga left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Tested on Linux, it works great and looks amazing. Really cool settings menu update, and general UI polish.

I don't have a very good eye for rendering quality but I can confirm that the default settings look much nicer with this PR - and I have similar 30 FPS with Radeon RX Vega M before before and after (and 2 FPS before, 5 FPS after on Intel HD 630).

@akien-mga akien-mga merged commit 9024e4c into godotengine:master Nov 30, 2023
1 check passed
@akien-mga
Copy link
Member

Thanks!

@Calinou Calinou deleted the improve-visuals branch November 30, 2023 14:49
@adamscott
Copy link
Member

Thanks Hugo!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants