Date/Time: 2023-10-23T14:00:00Z
Link: https://meet.google.com/xxo-tyin-rem
Attendees :
- Antonio Vazquez (Developer)
- Amélie Fondevilla (LFS, Developer)
- Casey Bianco Davis (developer)
- Dalai Felinto (Blender)
- Falk David (Blender developer)
- Matias Mendiola (Grease Pencil core team)
- Douglas Paul (developer)
Topics
- Grease Pencil 3 development updates
- Other news
Meeting Notes
Show all commits
- Commits:
- Fixes (20)
- Fix: GPv3 draw tool sometimes draws a cyclic curve by Falk David
- Fix: GPv3 sometimes crashes when drawing by Falk David
- Fix: GPv3: Crash when drawing new stroke by Falk David
- Fix: GPv3: Reorder layers missing update by Falk David
- GPv3: Fix problems related to insert/delete keys in edit mode by Pratik Borhade
- Fix: GPv3: Crash when storing deformed points by Falk David
- Fix: GPv3: Memory leak in
set_name
by Falk David - Fix: GPv3: Crash renaming a layer by Falk David
- Fix: GPv3: Remap materials by Falk David
- Fix: GPv3 depth buffer by Falk David
- GPv3: Fix rename layers not updating RNA by Dalai Felinto
- GPv3: Fix rename layer group not updating RNA by Dalai Felinto
- Fix: GPv3: Drawing tool didn’t initialize all attributes by Falk David
- Fix: GPv3: Radial brush size control broken by Falk David
- Fix: GPv3: Make sure to call
.save()
on attribute writer by Falk David
- Geometry Nodes
- GPv3: Initial Geometry Nodes support by Falk David
- GPv3: Separate Components node by Dalai Felinto
- GPv3: Set Curve Radius node by Dalai Felinto
- GPv3: Resample Curve node by Dalai Felinto
- GPv3: Subdivide Curve node by Dalai Felinto
- GPv3: Rename layer domain to just “Layer” by Falk David
- GPv3: Domain Size node by Falk David
- GPv3: Blur Attribute node by Dalai Felinto
- GPv3: Curve Length node by Dalai Felinto
- GPv3: Curve Trim node by Dalai Felinto
- GPv3: Transform Geometry node by Falk David
- GPv3: Implement expanding of Grease Pencil component in the spreadsheet by Falk David
- GPv3: Curve Fill node by Dalai Felinto
- GPv3: Fix Curve Fill node by Dalai Felinto
- GPv3: Curve to Points node by Dalai Felinto
- GPv3: Curve to Mesh node by Dalai Felinto
- GPv3: Fix Field inputs that had no inputs by Hans Goudey
- GPv3: Set Curve Tilt by Dalai Felinto
- GPv3: Set Spline Cyclic by Dalai Felinto
- GPv3: Set Spline Resolution by Dalai Felinto
- GPv3: Set Curve Normal by Dalai Felinto
- GPv3: Fix Normal Field by Dalai Felinto
- GPv3: Reverse Curve node by Dalai Felinto
- GPv3: Delete Geometry node by Dalai Felinto
- GPv3: Fix Curve to Mesh node replacing instances by Dalai Felinto
- GPv3: Convex Hull node by Dalai Felinto
- GPv3: Fillet Curve node by Dalai Felinto
- GPv3: Replace Material node by Dalai Felinto
- GPv3: Material Selection node by Dalai Felinto
- GPv3: Set Material Index node by Dalai Felinto
- GPv3: Set Material node by Dalai Felinto
- GPv3: Separate/Delete Geometry node by Falk David
- GPv3: Instance on Points by Dalai Felinto
- GPv3: Named Layer Selection field by Dalai Felinto
- GPv3: Layer Selection modifier input by Dalai Felinto
- GPv3: Named Layer Selection node by Dalai Felinto
- Changes
- GPv3: Assign correct GP material by Pratik Borhade
- Cleanup: GPv3: Use Drawing wrapper class by Falk David
- GPv3: Support crazyspace in selection code by Falk David
- GPv3: Expose insert keyframe in menu by Pratik Borhade
- GPv3: Add edit mode lines to overlay by casey bianco-davis
- GPv3: Hide points overlay in stroke selection mode by Falk David
- GPv3: Add API to copy and add a layer by Falk David
- GPv3: Convert radius to blender units by Falk David
- GPv3: Add wrapper class for DrawingReference by Falk David
- GPv3: Assign material by Pratik Borhade
- GPv3: Cyclical set operator by casey bianco-davis
- GPv3: Add
is_child_of
function by Falk David - GPv3: Replace find API with
find_node_by_name
by Falk David - GPv3: Change Toggle Cyclic menu text by Antonio Vazquez
- GPv3: Transform operators by casey bianco-davis
- GPv3: Reimplement how customdata is updated when layers are re-ordered by Douglas Paul
- GPv3: Only use Toggle Cyclic option in menu by Antonio Vazquez
- Fixes (20)
- Grease Pencil 3 development updates:
- Geometry Nodes support was added. The first stage of adding a layer domain and porting all the existing curve nodes is almost complete. See #113602: GPv3: Geometry Node support via the curve nodes for an overview of all the nodes that are working.
- The remaining nodes are:
- Join Geometry, Duplicate Elements, Realize Instance, Viewer Node
- Remaining tasks:
- Apply modifier is not working (Falk)
- Points and Curves attribute propagation on Instance on Points (Jacques)
- Named Layer (Group) Selection node and socket option are committed. This allows the user to use the name of a layer (group) to create a selection field and filter out the desired layer(s).
- They were part of the second milestone, but were done already.
- Still missing: Lookup for existing layers and warning about use of Named Layer.
- Antonio: Raised the issue of materials and how it currently shows all materials (for meshes and grease pencil) in the same search.
- Explore solutions to either filter the materials, or to tell them apart. One idea is that the “Set Material” node could filter the materials based on the geometry input. Gets trickier for the “Material Selection” node.
- The remaining nodes are:
- Geometry Nodes support was added. The first stage of adding a layer domain and porting all the existing curve nodes is almost complete. See #113602: GPv3: Geometry Node support via the curve nodes for an overview of all the nodes that are working.
- Naming:
- Falk: Wants to rename the default names from “GP_Layer” → “Layer” and “GP_Group” → “Group”.
- People agree
- Currently the primitive is still named “Suzanne” when it should be named “Monkey”.
- Discussion: Should we name curves in grease pencil always “strokes” → undecided/unclear.
- In the UI, e.g. geometry nodes, we should use
Curves
since we refere to both grease pencil and curves (object).
- In the UI, e.g. geometry nodes, we should use
- Falk: Wants to rename the default names from “GP_Layer” → “Layer” and “GP_Group” → “Group”.
- Antonio: For the material locking we need a way in
foreach_editable_drawing
to get the editable strokes.- Falk: Current idea was: add a parameter
const IndexMask editable_strokes
that would be populated if the material locking is used (and just be anIndexRange
otherwise). - Casey: It might be worth it to look into making this another API rather than a parameter.
- Falk: Agrees. This should be investigated. Maybe creating a PR that adds the parameter will make it more clear what a good API could be.
- Falk: Current idea was: add a parameter
- Manual & Documentation
- So far, we have not documented changes compared to GPv2.
- All agree that we need to start doing this.
- Maybe a simple task with a list of breaking changes (e.g. renames of operators, etc) as well as new features (layer groups, eraser, geo nodes) should be created.
- With this list it will also be easier to update the manual in the future.
- So far, we have not documented changes compared to GPv2.
- Antonio: Wants to maybe start porting the bucket fill (based on a pixel flood-fill algorithm)
- Falk: Might be good to check with Sietse he is already working on a different implementation
- Amelie: What is the plan for the boolean eraser?
- Falk: It’s not the highest prioity and would only be worked on after the porting to GPv2 is done. Of course if anyone wants to work on it they can.
- We should build or include a library for 2D curve boolean. There have been discussions about this in the past. See A general 2D boolean/polygon clipping lib in Blender - #13 by phil.stopford
- Something that we can already do right now is add geometry hole support for grease pencil fills. See #114071 - GPv3: Rendering compound shapes - blender - Blender Projects
- Falk: It’s not the highest prioity and would only be worked on after the porting to GPv2 is done. Of course if anyone wants to work on it they can.
- 18 open community tasks on the workboard column:
- The plan is to publish a blog post to call for help on these. There will be a “landing” task for new developers to get an overview of all the open tasks.
- Other news:
- Blender Conference 2023 is happening this week. There will be lots of Grease Pencil talks. Also livestreamed. Check out the schedule here.
Next Meeting
- Time/Date: 2023-11-06T15:00:00Z
- Link: 2023-11-06 Grease Pencil Module Meeting
- Agenda:
TODO