-
Notifications
You must be signed in to change notification settings - Fork 143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Render graph for image filter effects #784
base: main
Are you sure you want to change the base?
Conversation
One filter which I don't see listed above is opacity. I'm thinking (but I don't know what I'm talking about) that this might make a for a good first "real world" use case given as I'm assuming that correct opacity blending is easier to implement than a high-quality blur filter, and I suspect it's a more commonly used than something like greyscale. |
Maybe? It seems more likely that you'd want to use the |
This is a design for how image filters could be added. This is currently built entirely1 on top of the existing API, and so can theoretically land with minimal risk of breaking existing consumers (maybe after 0.4).
The core concept is that a
Gallery
(~one per thread) stores the operations which will create aPainting
(semantically similar to a texture). All galleries can then be combined together in a rendering operation, which will return the texture of a specific Painting, which can be used as you like.This allows scenes to have a dependency on other paintings, which will be rendered before the scene is rendered. The above image was generated with a "main" scene, which is then blurred. The top part of the image is an inclusion of the rendering, and the bottom part is an inclusion of the blurred version.
Things needing to happen in this PR:
Follow-up work needed (after this PR):
Footnotes
We peek into the internals of
override_image
slightly. ↩