2023-02-09 Grease Pencil Developer Meeting

Grease Pencil Developer Meeting

We went through an example process of creating a PR with the new gitea plattform (#104521 - WIP: GPencil: Improve simplify modifier - blender - Blender Projects).
Note that this process is also described here: https://wiki.blender.org/wiki/Tools/Pull_Requests/.

Grease Pencil Frames as IDs (Grease Pencil Drawing Datablock)

  • We began a discussion on Grease Pencil Frames and that they maybe should be IDs.
  • Why? There are multiple reason why this would be benefitial. A single grease pencil frame can be thought of as a single drawing. It’s just a set of strokes. This means that:
    1. When changing a drawing (adding a stroke, editing strokes, any changes to the topology) you can tag that single frame for a geometry update in the depsgraph. This solves a big performance bottle neck that we have atm.
    2. Drawings can be instanced. They can have multiple users.
    3. A drawing can be an asset that can be easily used with the asset browser.
    4. Grease pencil drawings could be a way to interface with geometry nodes. E.g. you could have a node that outputs a drawing based on a grease pencil data block and a layer. Then this drawing could be converted to curves, meshes etc.
  • We discussed how these drawings would be referenced in the grease pencil data block
    • The current idea is to have them stored as a “frame number/drawing index” pair array in the layers.
    • E.g. in layer 1 you would have something like [frame 0: drawing 1, frame 25: drawing 2, etc.]
    • The drawing index would be into the array of frames on the data-block level
  • We thought about how we might want to store custom data on the drawings (like selection in the dopesheet), but it might be better to think about this when we actually have code that needs it.
  • We thought about layer transforms
    • We can always implement this as a procedural step through a modifier.
      • Pro: Is very flexible implementation wise.
      • Con: How do we make this accesible without having the user diving into nodes and modifier shenanigans.

Grease Pencil Fills

We talked about the way fills are currently handled by grease pencil and that it might be better to always do the trinagulation on the fly on the GPU in the rendering process.

  • Unclear if this is possible or if there are some fundamental things that would prevent us from doing it.
  • Needs a follow up with Clément.