Geometry Nodes

The billboarding system is more flexible with the new GN approach.

4 Likes

My $600 gaming laptop from a few years ago runs circles around my 2014 MacBook Pro (that has double the ram). However a few weeks ago a relatively simple geonodes tutorial scene was chugging on both machines equally and now runs fine in todayā€™s builds on both.

Hi, Thank you for your response. Iā€™m running a MacPro, quad core, 24 gb of ram. Then, more ram will
not help the performance of the computer while processing a complicated Geometry Node
project.

Well thereā€™s ColoRamp and mixRGB that sound super messy and out of date. Were they kept because of compatibility or iconic purposes? I find it interesting that they were named the same in geometry nodes.

If it ainā€™t broke, donā€™t fix it

3 Likes

More ram always helps somewhere but I suspect the geometry nodes system has a lot of performance improvement work that will need to be done over the next months and years. Perhaps someone else knows more about it?

Hi, Thanks, again for taking the time to respond. You maybe right about Geometry Node performance?

Itā€™s not a memory issue,
thereā€™s limit on how many triangle you can show in a rasterized viewport
iā€™d suggest using bounding boxes

I will definitely try ā€œbounding boxes.ā€

Thank you so much for taking the time to respond.

I actually wanted to make the individual instances to have a single changing color, but this will do it for now. Maybe someone can tell me how to do that with the fields.

1 Like

Good to know, thanks!

RAM wonā€™t help here. RAM is very useful for baking simulations, video editingā€¦

You can do 3 things to improve the performance:

  1. Get a better CPU
  2. Wait for the devs to improve the GN performance
  3. Optimize your scene

With ā€œoptimizeā€ I mean using either way less objects in your viewport (or bounding boxes as @BD3D sugested, or LODs using the Switch node etc).

Or using a Camera culling system like the one on this video (note: this is from July 2021 so you need to figure out how to do it now with the new field nodes).

The main idea is that you donā€™t need to see everything all the time. The first ā€œToy Storyā€ still looks good today and the animators probably worked on crappy Pentiums with 16 mg of Ram.

Note that if he is using ray casting itā€™s a bad practice
it would result in slow downs because the ray cast node is slow and scale badly with high particle count

And it looks like it wonā€™t be ā€¦ :cold_face:

I think it will be better to do something like this with shader nodes

I do not know if the devs. just want to encourage you to make more and better use of the UI features for the modifier or not (ie. preventing you from black-boxing everything), but it would be nice to keep the ability to at least define a custom attribute via a node rather than via a text box in the modifier itself.

Though we also have to keep in mind that this is still early, and the devs. have explained their reasoning of getting fields in early, so with the help of cooperation with other devs. as well as user testing, they can realistically have all of the nodes and their functionality restored by the time version 3 is released.

3 Likes

I just hope they focus on doing good work and not meeting a release date deadline.

According to this link posted some minutes ago, ā€œstore named attributeā€ is not dead, or maybe Iā€™m getting this wrong somehow. Letā€™s all just keep calm (and the fingers crossed).

1 Like

The latest Geometry Nodes meeting has just wrapped up.

Info

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

Meeting Notes

  • Instancing, continued.
    • Use foreach-instance behavior? (D12630 ).
    • Raycast node.
      • This node should only use realized geometry.
      • All nodes that take in geometry but donā€™t output a modified version of that geometry.
  • Order of input sockets in raycast node (D12638).
    • Geometry should be first because itā€™s the most important and all other inputs are fields.
  • Go over all non-deprecated nodes one by one to see if there is anything that still needs to be done before bcon2.
  • Node menu cleanup
  • T91668: How to deal with multiple volume grids in a geometry
  • Set Handle Position:
    • Change handle type automatically like in edit mode.
      • Vector ā†’ Free
      • Auto ā†’ Align
      • Align handles stay aligned
  • Show spline type in socket inspection/spreadsheet.
    • Yup.
    • Also show spline index for control points
  • Delete Geometry node:
    • We may want to add a different Instances option in the dropdown.
    • Then the node could also operate on all instances separately like other nodes.
    • This needs some more thought and to make versioning easier later, the instance handling should just be removed entirely again for now.
  • T91646: Selection input socket position in nodes
    • Put it right after the geometry.
      • Works when there are multiple geometry inputs.
      • For procedural modelling nodes (like Extrude) the selection is the most important input after the geometry. For other nodes the selection may be less important (e.g. Distribute Points on Faces), we expect the selection to be mostly used for procedural modelling in the future.
      • The consistency keeping the nodes that describe ā€œa part of the geometryā€ together is nice.
  • T91649: Built-in selection nodes
    • The idea is to provide a few basic selection nodes that cover some common use cases, it isnā€™t to give a complete set of useful selection nodes, since they can be easily built and shared by users.
    • Normal Selection
      • An implicit normal input, direction, and a threshold angle value (with subtype PROP_ANGLE)
    • Plane Selection
      • Implicit position input, a Origin (plane center) and plane normal input
    • Cube Selection
      • An implicit position input
      • Two modes: center and size inputs, and min and max inputs
    • These nodes should be replaced by group nodes when it is possible to ship builtin node groups with Blender.
    • These nodes have a boolean output called Selection.
  • T91648: Selection outputs in primitive nodes
    • Cone/Cylinder: Top, Bottom, Side
    • Star: Inner Points, Outer Points
  • Default behavior for merge by distance node
    • Because the difference in behavior when changing the distance input from 0 to a very small number is understandable and small, a 0 distance by default can make sense.
    • For other nodes where 0 means something special, that wouldnā€™t be the case.
  • Feedback about ā€œStable IDā€ and instance on points
    • People do not understand the difference between ā€œIDā€ and index.
    • Using the stable ID properly is not intuitive enough. People expect it to ā€œjust workā€, but currently it must be used manually.
    • Implicit index input for ā€œStable IDā€.
    • Change implicit field input in Random Value node from ā€œIndexā€ to ā€œStable IDā€ (or ā€œRandom IDā€ or similar).
    • We will make this a built-in attribute.
  • D12715: Show hint in empty output attributes panel.
    • Make the label into an operator button
  • Modifier: ā€œView Deprecated Geometry Nodesā€ operator
    • Suggestion to replace the INFO label with the operator button (using the info icon).
    • Message: ā€œLegacy node(s) found in the node groupā€
  • T91851: Remove reference to ā€œAnonymous Attributeā€ in socket inspection
    • Design approved, new task created.
    • Sorting criteria:
      • Geometry
      • Nodes
      • Attributes inside node
    • Then per group we sort by length (smaller to larger)

Float field based on:

  • ā€œGroupā€ attribute from geometry
  • ā€œpositionā€ attribute from geometry
  • Index node
  • Material Selection node
  • ā€œtop facesā€ from Cube node
  • ā€œattributeā€ from Attribute Capture node
  • ā€œnormalā€ from Distribute Points on Faces node

By the looks of things, we can anticipate the soon inclusion of many new output types, the raycast node, an expansion in the ability to define selections, the first few nodes for actual procedural modeling, ectā€¦


Yes and no, to focus too much on dotting every i and crossing every t might mean a lot of broken setups in 3.0 that canā€™t be ported (so the devs. would get an earful from angry users that would last for quite some time). The good thing however is that it is just Hans or Jaques porting nodes, you have other devs. like Fabian and Charlie pitching in as well.

8 Likes

These are all over blender and should display something like ā€œAutomatic Modeā€ instead of zero when the value is zero.

2 Likes

No, I donā€™t think they should, nor would this be feasible (most probably not even possible).
If itā€™s an input-field which expects a number, it must display a number in the UI, not somtimes a number and (in some obscure special case) a string.
Furthermore, itā€™s quite sure simply impossible to have the UI do such a thing.

And even if it were possible, itā€™d be completely disconnected from what the same operator/function would do if accessed via the python-api (here, youā€™d have to stick to ā€˜zeroā€™ as whatever special value, being also the reason why artificially displaying sth else on the UI-level is almost definitly stricktly impossible anyway).

The next thing is, if it defaults to that special value and if it did thus display ā€˜Automatic Modeā€™, it would then, for the user be unclear the value in question can be changed to some number.
This would be no less obvious than the fact ā€˜zeroā€™ means something special (non-quantitative) is obvious now.
In other words, even if your suggestion was possible, it would not solve the problem at all, just shift it elsewhere.

greetings, Kologe