Optimize most blending and other compositing operations so that a new framebuffer is not required, and instead elements are blended into the existing destination. However, some major problems must be solved first:
Destructive modifications in render graph - the current paradigm is that all intermediate images are final. This will no longer hold true and all components of the project must be ready for this, including RGI. The biggest issue here is probably with shared graph nodes, where resulting image is used multiple times.
Bounds prediction - a chain of destructive blending operation requires that the original image has the necessary bounds to fit all subsequently blended images. Currently, this is impossible to determine ahead of time without traversing the entire graph.
This is currently the most important optimization as currently the number of shaded pixels is extremely high due to all compositing re-creating each image in at least the resolution of destination, which is often a large background layer.
I would like to also add a shaded pixel counter to compare its value before and after optimization.
Finally, ODE currently assumes that GL_BLEND is disabled (and only enabled temporarily for a few operations). Instead, after this, it can be left in any state and has to be set for each render operation.
Optimize most blending and other compositing operations so that a new framebuffer is not required, and instead elements are blended into the existing destination. However, some major problems must be solved first:
This is currently the most important optimization as currently the number of shaded pixels is extremely high due to all compositing re-creating each image in at least the resolution of destination, which is often a large background layer.
I would like to also add a shaded pixel counter to compare its value before and after optimization.
Finally, ODE currently assumes that
GL_BLEND
is disabled (and only enabled temporarily for a few operations). Instead, after this, it can be left in any state and has to be set for each render operation.