Compositing support

Problem to solve

The compositing node tree isn't synced across clients.

Proposal

Sync the scene compositing node_tree (lying in bpy.data.scenes['Scene_name'].node_tree) across clients by adding compositor graph dump/load/deps handling in the bl_scene.py implementation.

Further details

Existing functions that may help to achieve that:

Step by step

  1. Extend the tests to have an additionnal compositor graph within
  2. Extend the scene dump functions to handle compositor extraction
  3. Extend the scene load function to load the compositor
  4. Create separated files node_tree.py and bl_compositor for visibility
  5. Actually giving up bl_compositor, the compositor suppot will be written inside bl_scene
  6. Investigate on what is working and what is not in the compositor
  7. WIP : Solves the issues
  8. Clean up the code before resolving dependencies
  9. Extend the scene resolve_deps to handle compositor dependencies

Issues to solve when compositing :

  • Input
    • CompositorNodeImage | Can't rename image and use fake user
    • CompositorNodeImage | Image sequence/Sequence/Movie/UDIM Tiles don't work
    • CompositorNodeImage | Color Space Settings don't work
    • CompositorNodeMask| Node working but Mask not yet implemented
    • CompositorNodeMovieClip | Node working but Movie Clip not yet implemented
    • CompositorNodeRenderLayers | Can't add/duplicate scene, switch between scenes
    • CompositorNodeRenderRGB | Don't give the right RGB value (maybe dump_anything issue)
    • CompositorNodeRenderTime | Points not linked (go watch similartiy with RGB Curves, it works). It can come from D.scenes['Scene'].node_tree.nodes['Time'].curve or ... .nodes['Time'].frame_end or ... .nodes['Time'].frame_startwhich is not dump properly
    • CompositorNodeTrackPos | Can't see if the node is working, Movie Clip not yet implemented
  • Output
    • CompositorNodeSplitViewer | Node working but black screen
  • Color
    • CompositorNodeColorBalance | Dump/Load conflict -> Owning rights to resolve
    • CompositorNodeColorBalance | Don't give the right RGB value
    • CompositorNodeCurveRGB | CurveMapping.tone not register
    • CompositorNodeCurveRGB | Don't give the right RGB value for Black and White Level
  • Converter
    • ColorRamp | Don't give the right RGB value
  • Matte
    • Channel Key | Don't give the right RGB value
  • Distort
    • Corner Pin | not well sync
    • Movie Distortion | Movie Clip not yet implemented
    • Plane Track Deform | Movie Clip not yet implemented
    • Stabilize 2D | Movie Clip not yet implemented
  • Layout
    • Frame | When we add nodes inside the frame, the frame move by itself and go away

image

Optionals :

  • Share the View Layer between the users
  • Layer proreties don't work

Nodes to tests :

  • Cryptomatte
  • Groups

/cc @project-manager

Edited by Fabian ADAM