You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Describe the problem or limitation you are having in your project
Godot currently offers screen-space debanding in the GLES3 (3.x) and Vulkan Clustered (master) backends. Debanding currently doesn't work in GLES2 because a LDR rendering pipeline is used there. Vulkan Mobile backend uses an HDR rendering pipeline but with lower precision than Vulkan Clustered (with debanding also not working there).
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Add a debanding filter that works at a material level instead of doing so at a screen-space level.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Performance seems to be roughly the same from my testing, although it may be slower in complex scenes when the depth prepass is disabled (as is the case in GLES2 and Vulkan Mobile). Transparent materials may also cause debanding to be slower, although we could disable debanding on transparent materials if this turns out to be a significant problem.
On the bright side, material-level debanding will not operate on the sky, saving GPU resources in outdoor scenes. (Instead, the sky shader itself should have debanding, like PhysicalSkyMaterial already does.)
Depending on how well this material-level filter behave, we may consider removing the screen-space approach for 4.0. If there are still valid reasons to keep it, then material-level debanding should be provided as an additional option (ideally in all rendering backends for consistency, even GLES3 and Vulkan Clustered).
I have WIP implementations for the Vulkan Mobile backend and GLES2:
Is there a reason why this should be core and not an add-on in the asset library?
Since games with a lowpoly/stylized aesthetic are often developed with Godot (and I don't see that changing soon), I think it makes sense to provide this as a built-in option. In any case, debanding would still be disabled by default to avoid making screenshots larger when it's not needed.
The text was updated successfully, but these errors were encountered:
Describe the project you are working on
The Godot editor 🙂
Describe the problem or limitation you are having in your project
Godot currently offers screen-space debanding in the GLES3 (
3.x
) and Vulkan Clustered (master
) backends. Debanding currently doesn't work in GLES2 because a LDR rendering pipeline is used there. Vulkan Mobile backend uses an HDR rendering pipeline but with lower precision than Vulkan Clustered (with debanding also not working there).Describe the feature / enhancement and how it helps to overcome the problem or limitation
Add a debanding filter that works at a material level instead of doing so at a screen-space level.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Performance seems to be roughly the same from my testing, although it may be slower in complex scenes when the depth prepass is disabled (as is the case in GLES2 and Vulkan Mobile). Transparent materials may also cause debanding to be slower, although we could disable debanding on transparent materials if this turns out to be a significant problem.
On the bright side, material-level debanding will not operate on the sky, saving GPU resources in outdoor scenes. (Instead, the sky shader itself should have debanding, like PhysicalSkyMaterial already does.)
Depending on how well this material-level filter behave, we may consider removing the screen-space approach for 4.0. If there are still valid reasons to keep it, then material-level debanding should be provided as an additional option (ideally in all rendering backends for consistency, even GLES3 and Vulkan Clustered).
I have WIP implementations for the Vulkan Mobile backend and GLES2:
master
: https://github.com/Calinou/godot/tree/vulkan-mobile-add-material-debanding3.x
: https://github.com/Calinou/godot/tree/add-material-debanding-3.xGLES2
Click to view at full size.
Vulkan Mobile
If this enhancement will not be used often, can it be worked around with a few lines of script?
This can be worked around with a custom shader already: https://github.com/fractilegames/godot-gles2-debanding-material
Is there a reason why this should be core and not an add-on in the asset library?
Since games with a lowpoly/stylized aesthetic are often developed with Godot (and I don't see that changing soon), I think it makes sense to provide this as a built-in option. In any case, debanding would still be disabled by default to avoid making screenshots larger when it's not needed.
The text was updated successfully, but these errors were encountered: