2021-11-22 - 2021-11-26 Geometry Nodes Sub-Module Meetings

Info

Developers or artists interested in contributing are welcome to join at the links below.

Week of 2021-11-22

  • Unity builds (compiling files together to reduce build times by 2-3x, which can make development much more enjoyable)
    • Rename legacy node files to prepare for unity builds. (Hans)
      • node_geo_legacy_*
    • Node file namespaces (Jacques)
      • Use file name.
      • E.g. blender::nodes::geo_node_set_position
  • Field inputs for derived data
    • Working document from Johnny: New/Updated Input and Info Nodes - HackMD
    • Index:
      • Add “Domain Size” field output.
      • Add “Factor” field output that is between 0 and 1.
    • Attribute Domain Size
      • Outputs a single value, not a field.
      • Point, Edge, Face, Face Corner, Spline, Instance
      • Benefits:
        • No need to have a separate node for all geometry types
        • Teaches about attribute domains
        • The name is much less generic than the alternative nodes
      • Instead of “Mesh Info”, “Curve Info”, “Point cloud Info”
    • Vertex Neighbors
      • Vertex Count(tooltip says that it’s the same as the neighboring edge count)
      • Face Count
    • Face Info (temporary name, “Face Neighbors” doesn’t work so well)
      • Vertex Count
      • Neighboring Face Count
    • Edge Vertices
      • Looks good
    • Edge Direction
      • Probably not worth the separate node when there is the “Edge Vertices” node
      • That way the user can understand that there are two possible directions themselves
    • Edge Length
      • Also not necessary at this point with the more general “Edge Vertices” node.
      • Could be added in the future for convenience, but that could wait.
    • Edge Angle
      • Looks good
      • Eventually we could add another output, but it’s not clear what that should be yet.
    • Face Area
      • Looks good
    • Curve Curvature
      • Angle
        • The angle between consecutive control points, in radians (0 for straight)
        • Pro: Simple
        • Con: Changes when the curve becomes more dense
      • Radius
        • The radius of an arc described by a control point and its neighbors
        • Pro: Does not depend on density of curve
        • Con: Depends on the size of the curve
      • In the future we can add a toggle or separate inputs to consider the curvature according to Bezier handles
    • Curve Length
      • The node can stay as it is, since the new outputs in the document are handled by the domain size node
    • Curve Parameter
      • Index in Spline looks good
      • The node name makes more sense as “Spline Parameter”, a toggle could be added to consider the entire curve, or the node could be renamed.
        • Rename the node to “Spline Parameter”
        • The index output can be named simple “Index” then
    • Spline Length
      • “Point Count” output sounds good
    • Curve Segment Length (Don’t use “Spline” because that often refers to the domain, and just “Segment” is too vague)
      • The node sounds reasonable
      • Refers to the length of the following segment (the segment of the same index as the point)
      • On non-cyclic splines, the last point value is zero
    • Point cloud info is handled by Attribute domain size node
  • How to tell which domain fields are evaluated on?
    • Could change the label “Face Selection”, etc. but that is too long, and has other issues
    • Simply show the domain icon in front of “Selection”, great solution!
    • Sadly that doesn’t work so well with node groups, and the domain might depend on another input.
    • We should at least make a best effort to display that info in socket descriptions.
  • Field node to retrieve an attribute from an index on the same geometry
    • Design task should be added
    • The transfer node is still the go-to way to get a single value from an index, that’s okay for now.
  • Hans was away for the second half of the week, Jacques focused on performance improvements.
6 Likes