Replies: 2 comments 1 reply
-
Moving to discussion, as there is no concrete technical implementation provided. In the meantime, if you want reflections on transparent materials, use VoxelGI. This also supports off-screen reflections, which is often desired for reflections of large water bodies where screen-space artifacts can be noticeable. SSR is pending a full rewrite at some point, as the current algorithm has lots of issues (both in terms of quality and performance). I'm not sure if the current implementation could be modified to be visible on transparent materials, but it may not be desired from a performance standpoint given how heavy the current implementation is. A workaround you could use is to use dithered transparency for the water surface, but it won't look great at lower resolutions. This allows TAA and sharp SDFGI reflections to show up. This can be done using Distance Fade > Pixel Dither material property, or a custom shader. It could be made to look better with TAA enabled by jittering the dithering pattern every frame though. Another workaround is to have a ReflectionProbe parented to the camera, with its update mode set to Always and ambient mode set to Disabled. Set Extents to a high value like
You can get the normal roughness buffer in Godot 4 when using the Forward+ rendering method. This is not available in Godot 3 though. |
Beta Was this translation helpful? Give feedback.
-
Is deferred rendering necessary in order to achieve this, particularly in addressing the various issues we have encountered with screen space reflection? |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Describe the project you are working on
A roque like game in an open ocean setting, where the player spends most of his time steering his ship across the waters.
Describe the problem or limitation you are having in your project
My water material has severe limitations. It can either have SSReflections or be semi transparent. It can't have both.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
It should be possible to render SSReflections on semi transparent materials.
Disclaimer: This is NOT about rendering semi transparent materials AS the reflection, but rendering the reflections of opaque materials ON a semi transparent material.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Water shaders like this should be possible:

If this enhancement will not be used often, can it be worked around with a few lines of script?
I tried to work it around by creating a custom shader that both does transparency and SSR, but its really hard. My main problem is, that I need the normal texture of the screen, which is not easily obtainable in Godot shaders, if at all.
Is there a reason why this should be core and not an add-on in the asset library?
Great water shaders are a pillar of a lot of games, transport huge amounts of immersion and are commonly used. Both Unity and Unreals supports that, so Godot should join them.
Beta Was this translation helpful? Give feedback.
All reactions