tornavis/source/blender/nodes
Omar Emara cc78fd4e93 Realtime Compositor: Allow limited compositing region
This patch allows the realtime compositor to be limited to a specific
compositing region that is a subset of the full render region. In the
context of the viewport compositor, when the viewport is in camera view
and has a completely opaque passepartout, the compositing region will be
limited to the visible camera region.

On the user-level, this gives the user the ability to make the result of
the compositor invariant of the aspect ratio, shift, and zoom of the
viewport, making the result in the viewport identical to the final
render compositor assuming size relative operations.

It should be noted that compositing region is the *visible* camera
region, that is, the result of the intersection of the camera region and
the render region. So the user should be careful not to shift or zoom
the view such that the camera border extends outside of the viewport to
have the aforementioned benefits. While we could implement logic to fill
the areas outside of the render region with zeros in some cases, there
are many other ambiguous cases where such a solution wouldn't work,
including the problematic case where the user zooms in very close,
making the camera region much bigger than that of the render region.

Differential Revision: https://developer.blender.org/D16899

Reviewed By: Clement Foucault
2023-01-06 14:43:37 +02:00
..
composite Realtime Compositor: Allow limited compositing region 2023-01-06 14:43:37 +02:00
function Nodes: Make more node and socket declaration fields public 2022-12-29 14:56:04 -05:00
geometry Geometry Nodes: deterministic anonymous attribute lifetimes 2023-01-05 14:05:30 +01:00
intern Cleanup: spelling in comments 2023-01-06 14:00:36 +11:00
shader Nodes: Make more node and socket declaration fields public 2022-12-29 14:56:04 -05:00
texture Cleanup: use function style casts for integer types in C++ 2023-01-03 11:12:51 +11:00
CMakeLists.txt Cleanup: sort cmake file lists 2022-12-17 16:00:40 +11:00
NOD_common.h Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00
NOD_composite.h Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00
NOD_derived_node_tree.hh Nodes: move NodeTreeRef functionality into node runtime data 2022-08-31 12:16:13 +02:00
NOD_geometry.h Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00
NOD_geometry_exec.hh Geometry Nodes: deterministic anonymous attribute lifetimes 2023-01-05 14:05:30 +01:00
NOD_geometry_nodes_lazy_function.hh Geometry Nodes: deterministic anonymous attribute lifetimes 2023-01-05 14:05:30 +01:00
NOD_geometry_nodes_log.hh Geometry Nodes: skip logging socket values for invisible trees 2022-12-29 19:36:36 +01:00
NOD_math_functions.hh Geometry Nodes: refactor array devirtualization 2022-04-26 17:12:34 +02:00
NOD_multi_function.hh Geometry Nodes: new evaluation system 2022-09-13 08:44:32 +02:00
NOD_node_declaration.hh Fix: implicit field socket ignored 2023-01-04 13:12:11 +01:00
NOD_register.hh Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00
NOD_shader.h Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00
NOD_socket.h Nodes: Rewrite group creation operator 2022-12-21 12:26:17 -06:00
NOD_socket_declarations.hh Nodes: Make more node and socket declaration fields public 2022-12-29 14:56:04 -05:00
NOD_socket_declarations_geometry.hh File headers: SPDX License migration 2022-02-11 09:14:36 +11:00
NOD_socket_search_link.hh Cleanup: malformed C-style comment blocks, spelling 2022-04-11 12:03:09 +10:00
NOD_static_types.h Geometry Node: Make collection info socket tooltips more consistent 2022-12-09 16:10:14 -06:00
NOD_texture.h Nodes: move node registration to nodes module 2022-11-26 13:20:18 +01:00