A 2D game that makes use of post-processing effects.
Describe the problem or limitation you are having in your project
Currently, the new Compositor feature allows users to add post-processing effects through a WorldEnvironment node, but applying a post-processing effect using a shader requires some additional configuration and precautions, as explained in The compositor tutorial.
This makes the new feature less convenient to use than the previously used approach of adding a ColorRect under a CanvasLayer that covers the entire screen (see the custom post-processing tutorial).
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Add a post_processing shader type that can be used to create post-processing shaders that will be used in a ShaderCompositorEffect. This will allow users to add post-processing effect without needing a script to manipulate shader code.
Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Users will be able to create shaders dedicated to post processing with shader_type post_processing.
This type of shaders will be used in a ShaderCompositorEffect that can be used in a compositor. The user will then be able to assign a shader to the compositor effect.
If this enhancement will not be used often, can it be worked around with a few lines of script?
Describe the project you are working on
A 2D game that makes use of post-processing effects.
Describe the problem or limitation you are having in your project
Currently, the new Compositor feature allows users to add post-processing effects through a WorldEnvironment node, but applying a post-processing effect using a shader requires some additional configuration and precautions, as explained in The compositor tutorial.
This makes the new feature less convenient to use than the previously used approach of adding a ColorRect under a CanvasLayer that covers the entire screen (see the custom post-processing tutorial).
Describe the feature / enhancement and how it helps to overcome the problem or limitation
Add a
post_processing
shader type that can be used to create post-processing shaders that will be used in aShaderCompositorEffect
. This will allow users to add post-processing effect without needing a script to manipulate shader code.Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams
Users will be able to create shaders dedicated to post processing with
shader_type post_processing
.Example:
This type of shaders will be used in a
ShaderCompositorEffect
that can be used in a compositor. The user will then be able to assign a shader to the compositor effect.If this enhancement will not be used often, can it be worked around with a few lines of script?
It is possible to create compositors that use shaders, but it requires some additional steps and some boilerplate shader code. See https://docs.godotengine.org/en/stable/tutorials/rendering/compositor.html
Is there a reason why this should be core and not an add-on in the asset library?
This will allow shaders to be used as post processing effects out of the box.