-
-
Notifications
You must be signed in to change notification settings - Fork 22k
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
SSR Reflections fade out very early on non-metallic materials #75302
Comments
I can confirm this on 4.0.stable (Linux, GeForce RTX 4090 with NVIDIA 525.89.02). This appears to be related to how metallic the material is. Materials with high metallic don't exhibit this issue: Mostly parallel angleMetallic = 1.0Metallic = 0.24More perpendicular angleMetallic = 1.0Metallic = 0.24 |
Ah yeah that's interesting! Didn't notice that. |
The fade is expected to look more abrupt at the end with highly metallic materials, as the reflection can't be shown offscreen. I'm referring to the intermediate transition here (way before the reflected object reaches the edge of the viewport). |
Of course, but just something I noticed. The fade-out with non-metallic surfaces is less disruptive visually but also occurs far too early. A setting to adjust this fade when reflection information is reduced might help. |
I think your fix makes sense for now. SSR is eventually planned to get a full rework, so it's expected that we have to make band-aid fixes for the current implementation. @armmah Remember that for GitHub video previews to work, you need to have a blank line before and after the video URL. I edited your post accordingly, but remember to do this in the future 🙂 |
… Schlick approx of Fresnel term to cosTheta^1.
@MightiestGoat found the proper physically accurate fix #75368 (comment), it also looks nicer on some scenarios, so I'll remove my PR. |
@armmah man you are one of the most humble person I ever met. Thank you |
Godot version
4.0 Stable
System information
Windows 11, Nvidia RTX4070ti, AMD Ryzen7700x
Issue description
Godot's SSR reflections fade out far too early. There is commonly more than enough screen information for a reflection to persist before it fades out into nothing. This might be a conscious choice to reduce visual artifacts, but every SSR implementation I've seen fades out much later and there's no user-facing option to enforce this behavior in Godot.
In this scene the box reflects nicely onto the plane below:
However this is reduced entirely while there is still relevant scene information to retain a reflection:
In another more complex example:
The reflection is gone entirely once the objects casting them reach the top half of the screen:
Steps to reproduce
Minimal reproduction project
SSRShortRange.zip
The text was updated successfully, but these errors were encountered: