Open QbieShay opened 1 year ago
Single-pass lighting has a higher base cost and is less compatible with old low-end devices, so it should be opt-in. Godot 3.x GLES3 used single-pass lighting and it was a big reason for it being too slow to render on mobile devices at the time.
From what I understood the higher cost was usage of some extensions of opengl that were poorly supported on certain devices
Discussed at godotcon, consider removing support for omni shadow in compatibility to enable passing multiple lights in a single pass. Tbd if it's actually worth it or possible at all.
maybe make it a setting the user can select, multi pass lights with abc not possible, or single pass lights with def not possible
Describe the project you are working on
Enabling stylized games support in Godot Engine
Describe the problem or limitation you are having in your project
NPR rendering often requires to act at the end of the lighting step and perform some operations on the accumulated light. While this would be theoretically possible in vulkan, gles3 using multi pass lights makes it impossible to implement and keep compatibility with low-end renderer.
The final goal is to have all the lights be resolved in a single pass so that there can exist a post-light function.
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Lighting in gles3 is done in a single pass
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
See above
If this enhancement will not be used often, can it be worked around with a few lines of script?
No, this is the built-in shading pipeline.
Is there a reason why this should be core and not an add-on in the asset library?
/