2024-01-09 Nodes & Physics Module Meeting

Check the overview thread for more information about the meeting.

Present

  • Jacques Lucke
  • Hans Goudey
  • Dalai Felinto
  • Simon Thommes
  • Lukas Tönne
  • Mattias Fredriksson

Since the Last Meeting

Meeting Topics

  • Panels in modifier
    • When to hide the output attributes and internal dependencies panel.
    • The hair node groups can have panels supported.
  • Color for menu switch socket
    • Add as a topic to the UI module
    • A lighter gray might work better
  • Module activity during Q1
    • While new geometry nodes projects are on hold, the module will follow the Blender wide mantra of finishing projects with the time we have.
    • High priority bugs
    • Finishing baking
      • Materials
      • Outliner overview
      • Python API
    • Finishing usability tasks
    • New curves object
      • Curves rendering is still blocking for the new curve object tasks.
    • Other targets will depend on the Brush Assets project (how huch time would be left).
    • Grease Pencil Geometry Nodes Tools
      • See its own section for the design proposal - “For Each Drawing” zone.
      • It would help the discussion to see examples of where a simpler solution would fail.

Grease Pencil - Geometry Nodes Tools

While trying to create node tools for grease pencil, Falk and Hans came up with a proposal to how to handle multi-frame access and editing.

For Each Drawing Zone proposal

Adding support for another geometry type to node tools is relatively easy, but grease pencil is different in that original data stores the geometry for all frames in one data-block. We need a design for how to interact with that before proceeding.

It’s important to design in multi-frame access and editing from the beginning so that it’s not an afterthought later, and so that node tools don’t end up with arbitrary limitations in the future. But an implementation doesn’t necessarily need to be part of an MVP.

Use Cases

  • Process only the current frame.
  • Process selected keyframes (can be all frames, or frames around current frame, depending on dope sheet selection).

Design

All nodes act on the drawings used at the current frame, just like how it works in the modifier. Multi-frame editing is the “special case”. This means existing nodes can support the node tools behavior without changes, and makes conversion nodes tractable.

Add a “For Each Drawing Zone” that processes data from specific layers at the selected keyframes.

  • Zone Inputs
    • Grease Pencil Geometry
    • Layer Selection
    • Dynamic inputs for captured layer attributes
  • Zone Outputs
    • Grease Pencil Geometry
  • Inside the zone the inputs are
    • Drawing as curves geometry
    • Drawing’s frame
    • Single-values for captured layer attributes from the inside
  • Inside the zone the outputs are
    • Drawing as curves geometry

Importantly, this design handles skipping duplicate work of processing the same drawing multiple times on different frames. We only want to process every drawing once. More basic solutions like “get/set drawing at frame” nodes force the user to implement this themselves, which would require exposing low-level data like the frame-drawing map with nodes.

  • Active Layer Node
14 Likes