Implement a Rendering Compositor
### Describe the project you are working on Godot 3D Rendering ### Describe the problem or limitation you are having in your project There are a good number of rendering techniques that can't be used in Godot due to the relatively monolithic renderer design. As examples: * Fine grained stencil control. * Portals. * Planar reflections. * Geometry decals, since you can write and read back custom buffers. * Terrain blending to geometry. * Geometry blending to sky. * Custom post processing. * And a few others Godot renderer takes objects, renders them and that's it. To be able to implement most of these techniques, multiple, customizable opaque passes are required. ### Describe the feature / enhancement and how it helps to overcome the problem or limitation The idea is to implement a compositor. Basically you create a **RendererCompositor** resource and set it into either **WorldEnvionment** or **Camera** nodes. The compositor lets you: * Allocate custom buffers for custom rendering * Divide opaque rendering into several passes. * Assign materials to each pass. * Read and write from/to custom buffers in materials. * Do clears and copies to backbuffers in each pass. * Do stencil operations in each pass. * This may not be enough for all cases, so for the more exquisite render engineers, give low level access to everything going on and allow inserting custom rendering code at any stage of rendering and between passes. * Additionally, also add a rendering logic script to co
Posted by reduz on Sep 29, 2023, 2:49 PM
Tags
Related issues
- struct's lifetime requirements can be bypassed via covariant field assignment
- Proposal to Reorganize the Moderation Team and Review Moderation Policies
- Progressive FPS degradation appears to be related to dota2.com — blocking the domain prevents the performance loss
- proposal: container/...: generic collection types
- Better Custom Endpoint BYOK
- A concrete policy for backward compatibility until Godot 5.0
Raise real-world problems, find people facing the same issue, and discuss solutions.2,000 issues0 comments
github (Other)
struct's lifetime requirements can be bypassed via covariant field assignment
Proposal to Reorganize the Moderation Team and Review Moderation Policies
Progressive FPS degradation appears to be related to dota2.com — blocking the domain prevents the performance loss
proposal: container/...: generic collection types
Better Custom Endpoint BYOK
A concrete policy for backward compatibility until Godot 5.0
New MTP models not supported
Tracking: 429 / Capacity Issues
Implement a Rendering Compositor
### Describe the project you are working on Godot 3D Rendering ### Describe the problem or limitation you are having in your project There are a good number of rendering techniques that can't be used in Godot due to the relatively monolithic renderer design. As examples: * Fine grained stencil control. * Portals. * Planar reflections. * Geometry decals, since you can write and read back custom buffers. * Terrain blending to geometry. * Geometry blending to sky. * Custom post processing. * And a few others Godot renderer takes objects, renders them and that's it. To be able to implement most of these techniques, multiple, customizable opaque passes are required. ### Describe the feature / enhancement and how it helps to overcome the problem or limitation The idea is to implement a compositor. Basically you create a **RendererCompositor** resource and set it into either **WorldEnvionment** or **Camera** nodes. The compositor lets you: * Allocate custom buffers for custom rendering * Divide opaque rendering into several passes. * Assign materials to each pass. * Read and write from/to custom buffers in materials. * Do clears and copies to backbuffers in each pass. * Do stencil operations in each pass. * This may not be enough for all cases, so for the more exquisite render engineers, give low level access to everything going on and allow inserting custom rendering code at any stage of rendering and between passes. * Additionally, also add a rendering logic script to co
Comments (0)
No comments yet. Start the discussion.