X Tutup
Skip to content

Prevent SSR from getting affected by specular occlusion.#114727

Merged
akien-mga merged 1 commit intogodotengine:masterfrom
blueskythlikesclouds:ssr-after-specular-occlusion
Jan 8, 2026
Merged

Prevent SSR from getting affected by specular occlusion.#114727
akien-mga merged 1 commit intogodotengine:masterfrom
blueskythlikesclouds:ssr-after-specular-occlusion

Conversation

@blueskythlikesclouds
Copy link
Contributor

Closes #113227.
Supersedes #114244.

We decided in the rendering meeting that this is incorrect behavior and should be fixed.

Copy link
Member

@clayjohn clayjohn left a comment

Choose a reason for hiding this comment

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

Looks great, thanks!

For future reference, the root of the problem is that specular occlusion without bent normals relies on the ambient color to darken specular areas. The assumption is twofold:

  1. That either lightmaps, or SSAO, Baked AO, or diffuse GI are being used and
  2. That overall brightness of diffuse is a good approximation for specular occlusion

Obviously there will be many causes where both assumptions are false.

In any case, we decided that specular occlusion is never a good idea for SSR since SSR has more information and is able to handle occlusion much better anyway.

Specular occlusion still applies to other sources of specular lighting like IBL, ReflectionProbes and specular GI. It may only make sense to apply specular occlusion to ReflectionProbes and IBL in the future. We need to evaluate if specular occlusion actually enhances VoxelGI sharp reflections or SDFGI sharp reflections.

@akien-mga akien-mga merged commit c8b1071 into godotengine:master Jan 8, 2026
20 checks passed
@akien-mga
Copy link
Member

Thanks!

@blueskythlikesclouds blueskythlikesclouds deleted the ssr-after-specular-occlusion branch January 15, 2026 09:16
rivie13 pushed a commit to rivie13/Phoenix-Agentic-Engine that referenced this pull request Feb 16, 2026
…fter-specular-occlusion

Prevent SSR from getting affected by specular occlusion.
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.

New SSR implementation disappears when background is black

4 participants

X Tutup