Realtime Compositor: Realize rotation for filter nodes #111213

Closed
Omar Emara wants to merge 4 commits from OmarEmaraDev/blender:realize-rotation into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.

4 Commits

Author SHA1 Message Date
Omar Emara b91ef72063 Realtime Compositor: Realize rotation for filter nodes
buildbot/vexp-code-patch-coordinator Build done. Details
This patch realizes the rotation for the domain input of filter nodes.
That's because most filter nodes are not rotation invariant, so an input
with identity rotation is required for its correct operation in global
space.

This is not a real patch, but it was created to package builds for
testing and get some feedback.
2023-08-17 12:16:51 +03:00
Omar Emara 9a25939c92 Merge branch 'main' into realize-transformations 2023-08-16 15:48:51 +03:00
Omar Emara 34353ba45d Realtime Compositor: Support realization of transformations
This patch adds support for the realization of transformations of
operation inputs in the Realtime Compositor. Input socket declarations
can now include a preference to what sort of realization needs to
happen.

All inputs specify realization on the operation domain by default
because that is needed for the correct operation of most operations.

Nodes may choose not to be realized on the operation domain, like the
MapUV, Plane Deform, and Bokeh Blur nodes; that's because their inputs
are treated as transform-less image objects.

Nodes may chose to realize their rotation or scale, like operations that
are not rotation or scale invariant and thus need images of identity
transformations. No nodes are declared as such so far, as this is still
being considered by developers and test builds be published for testing.

This patch coincidently also fixes #102252 by declaring the Bokeh input
of the Bokeh Blur node to need realization of rotation.

Depends on #111178.
Fixes #102252.
2023-08-16 14:21:27 +03:00
Omar Emara 61c42b2c74 BLI: Add 2D transformation matrix decomposition
buildbot/vexp-code-patch-coordinator Build done. Details
This patch adds support for 2D transformation matrix decomposition into
translation, rotation, and scale. This is needed by the realtime
compositor to implement automatic domain realization logic.
2023-08-16 14:05:20 +03:00