Geometry Nodes in Blender 3.0 - Status Update

Hi @dfelinto I posted this yesterday but I am not sure whether you saw it or not

Maybe my wording was not clear, but I was talking about the “chocolate donut” demo file I submitted now contains a legacy node after this commit, so it needs updating. Do you think I should do the Shift S and upload it here again or you can do it for me?

EDIT: Nevermind, I am taking this opportunity to tweak the SSS of the bread to make it look nicer:


Here is the updated file:

@dfelinto

Thanks, I uploaded the latest file.

1 Like

Does anyone know if there are plans to make the switch node to accept list of booleans? Please see the the image

1 Like

It does, but currently the geometry data type cannot be used as a field.

3 Likes

Hi, one thing I keep noticing (when working with nodes) is that for some reason, there is no support for using the inputs of the transform node with fields. Without that support, it is not straightforward to rotate and scale parts of a mesh like you can already do with translation (using the set position node).

We have rotation and scaling nodes for instances (that support fields), but we don’t have the same for general geometry (so there is an inconsistency). I thought I remember seeing patch tracker entries that add these, but they never went anywhere.

2 Likes

I made a nodegroup for that

There’s a lot of useful Vector nodes from shaders that could be useful in Geonode too
I think that a “Node Uniformity” dev curfew would be nice. It’s weird that some node are exclusive to some nodal editors (ex Compositor got some cool color nodes that could be used elsewhere)

5 Likes

So how will it be possible to have curves with multiple materials (where each strand can have a different material)? That is possible in Blender right now, the materials are stored in the curve data (per strand), not the object data.

Will the bevel / extrude nodes have a Material socket? How will you select which material should go onto which curve strand? What if you want to combine bevel + extrude?

These are not just hypothetical questions… there are a lot of use cases for having multiple materials on the same curve (this is used by Hair Tool, for example).

No worries, geonodes handles materials.
https://wiki.blender.org/wiki/Reference/Release_Notes/3.0/Nodes_Physics#Materials

Yes it handles materials for meshes… but we’re talking about curves. What if I want to create a curve in geometry nodes, assign materials to it, assign extrude / bevel to it, then apply it so the end result is a curve object (not a mesh object)?

There are a lot of use cases for generating curve objects instead of mesh objects, because curve objects are much easier to edit by hand, they’re non-destructive. And with the upcoming snapshot / freeze node, that will become even more important (I might want to generate some curves, snapshot them so they can be edited by hand, and then do more transformations on them).

I think geometry nodes should support every aspect of curves which are supported in native Blender. Otherwise it will limit the usefulness of curves, curve aren’t only raw points, they’re much more useful than just that.

Curves can’t have materials, they’re just curves they can’t be rendered. When you bevel your curve it becomes a mesh, and that’s what’s getting the materials

That’s incorrect, as I said, the materials are stored in the curve data itself, not the object. You can test this yourself by assigning multiple materials to the same curve object. So how will that be possible with geometry nodes?

If I want to generate meshes, then everything is fine, I use Curve to mesh and then Set material, but what if I want to generate a curve object that has multiple materials (which is possible outside of geometry nodes right now)?

2 Likes

I’m not sure what you are aiming for. All I am saying is curves don’t render, and linking materials to curve data in Blender only affects the resulting mesh. Of course this would be different if we had parametric surfaces made from curves, but right now Blender is really not good at this. Maybe tell us more about what you’re trying to do ?

As I said, I’m trying to create a curve object. The same sort of object that is created when you do AddCurveBezier (or similar).

This is not a mesh, it is a curve, so it can be edited as a curve, it has all the usual curve options (Resolution, Bevel, Extrude, Twist Method, etc.)

So using Curve to mesh does not work, since it generates a mesh object, not a curve object.

Do you mean when you apply the modifier?

Yes. Though it could also happen with the snapshot / freeze node as well.

When the snapshot gets here we’ll see how it behaves, but probably you will enter in the corresponding mode for the internal defined type.

For the apply modifier, I have to test what does it do when you apply it, naturally if the final result is a curve it should convert the data type to curve, however I think that’s under development yet, so it’s not that what you are asking is not reasonable, is that it’s more complicated than what it looks.

An example: what happens when you have a curve and a geometry in the output node together and the you apply the modifier

That’s completely fair, I don’t expect the MVP to have every feature. I’m just mentioning a use case which should be kept in mind for future versions of Blender.

I don’t think geometry nodes should be only for meshes, I think it should encompass all of Blender’s object types, like curve, nurbs, metaball, text, volume, lattice, armature, etc. But the impression I got is that those other types are now second-class citizens and that everything is now about meshes.

I think that’s the idea, but @jacqueslucke or @HooglyBoogly can help clarifying that.

But they can be considered “second class” since something has to come “first” hehehe it’s a matter of time IMHO :slight_smile:

I’ll try to clean up my current experimentation with GN + curves a bit to demonstrate what Pauan means, and post it here. Because Pauan is IMHO right. Currently GN in some cases ignores the materials that are attached to the curve data in a way which feels very counterintuitive.

I generate shapes based on input curves, and I’d really like my GN tree to use the material that was on the input curve for it’s result. That currently only works if you go to the hassle of

  • select curve object
  • create material (so far so good, I’d expect to be done here)
  • click link dropdown (isn’t it strange by the way that the link dropdown only appears once you have a material attached to the objectdata, but that aside).
  • link material to object as well.
1 Like

Apologies, I do understand the problem with the following clarifications. I tried to capture an attribute using material selection to re-use it on the resulting mesh, but it seems this node doesn’t work on splines, because the attribute appears empty on inspection.