2025-02-14 Nodes compatibility for 5.0

We had a meeting with developers from different modules that rely on nodes: compositor, geometry nodes, rendering. The goal was to agree on the planing for both 4.5 and 5.0 as there is some overlap and possible dependencies in the tasks.

This is a terse meeting notes to share with the rest of the team.

Attendees

  • Brecht Van Lommel
  • Jacques Lucke
  • Hans Goudey
  • Omar Emara
  • Sergey Sharybin

Notes

  • Material reusability and fields: #112547 - Material reusability and fields - blender - Blender Projects
  • For moving node properties to sockets
  • 5.0 also writes the socket value to the place where the old property was stored
    • Python API compatibility can break in 5.0
    • Start with all the other properties besides enums since those are a bit more complicated.
    • Okay to do this in 4.5 for compositor nodes.
  • Disable indexing node sockets by integer index in 5.0, since this enables more flexibility in future changes without breaking compatibility
  • As nodes are changed to use dynamic declarations (i.e. not “_001” identifier suffix, disable lookup by socket name)
  • Rename “Fac” UI name to “Factor” (this is not a breaking change currently)
  • General agreement about a “Dimension” property for the vector socket type for 2D and 4D vectors
  • When should the compositor remove its own node types to use generic types?
    • Rough idea: implement the new nodes in 4.5, switch to them with versioning in 5.0.
5 Likes