Geometry Nodes

I wanted to distribute my points accurately based on a custom texture without the necessity of subdividing the mesh.

So I created an identical object with the subdivision and copied it’s attribute texture sample result to my object with no subdivision. Object A actually has eight vertices and not four.

File attached.Point_Position Copied to Object_02.blend (1.2 MB)

1 Like

Here is a screenshot from a setup I created today in 2.93, though I am pretty sure it will also work in 2.92. It is actually a very easy geonodes setup, with the secret sauce being the list of remesh and displace modifiers in the stack that come after the intial scattering (which functions as the base mesh).

There is no right or wrong with these, just a matter of playing around till you get something you like. Just be careful with the multiple remeshers as they can be slow! I have also used a second geonodes scattering setup for the rocks. I am feeding the output of the first geonodes mesh into this second one and using the compare node to make sure the rocks are only on the +z axis, then remeshing again. This creates one single watertight mesh that you can decimate/remesh for a low poly version and derive a normal/ao map for gamedev.

26 Likes

I think you can bake the coordinates of the first mesh into an image and sample that in the second mesh? (given that the two meshes have similar UV maps)

Edit: Tried it, works about fine except you have to add some value to the coordinates to get rid of the negatives

still in the end I have to feed it to something and that’s what’s missing. the only work around right now is to do it in one node. although now that I think about it I never tried node groups so that might be the better answer. (it’s same as doing it in one node but node group will stay the same on every node it uses it?!)

Yes, but that is not what I am looking for, that is just a work around trick and a static method. I would like to make it like a regular morph modifier. Back then I made a patch for an actual morph modifier that can be placed anywhere in the modifier stack but it was never accepted into the trunk. Basically trying to see if I can do it purely in the geonodes. This can be achieved with Sverchok or AN but the performance is not good with heavy meshes, so geonodes could have been a great performer for a morph modifier replacement.

1 Like

Could you go into a little more detail on how you achieved this? It seems simple enough, but I’m missing something in the geonode stage that prevents me from going any farther.

In short, I create two meshes. One instance, and one that I use as a volume for scattering the instances. I set up the appropriate nodes, get my results, but when I try to apply it to make it solid, my entire object disappears.

I’ve had a lot of bad luck today following what initially seems like simple instructions, so please, bear with me, and help me out.

My current hack to get around the “make instances real” workflow is to just feed what you already have into a boolean node before you go into the output node. No need to have anything in the second input. If you then apply the geonodes modifier it will give you one single mesh. You don’t need to apply any modifiers though until you have a final result, otherwise it would not be procedural! I would only start apply modifiers when I am happy with the result and want to create the high poly mesh, and derive a low poly to map onto.

Then after the geonodes modfifier start adding a remesh modifier at about 0.01 in voxel mode. Then various displace modifiers followed by another remesh modifier.
I took this a step further and created a second geonodes scattering setup to scatter rocks onto the resulting mesh from the first setup output mesh.

I still haven’t tried this on 2.92, as I use current master 2.93 but I think it should work.

2 Likes

Geo Node “IN” (in-clude the modifier stack).
I hope this really clarifies everything. Great to have you on board @SteffenD.
I’ve been a Softimage ICE pilot for 10+ years. Imagine my joy on the evolution of (animation nodes) Geometry Nodes. :slight_smile:

2 Likes

Nope, it doesn’t, hence my initial confusion. The resulting geometry from the geonodes won’t respond to any of the modifiers you stack on top of it in 2.92. If anyone wants to follow along with your tutorials, they’ll have to do so in 2.93.

1 Like

Is there any way do distribute the objects evenly, while keeping the surface normals? When I use the distribute node, everything is placed randomly… Even with vertex groups… I have no control over how many objects appear in each place.
I wanted to create some branch / tree generator, but I just cant distribute the leaves evenly on both sides of the branch… I wish the distribute node had something like “1 point per face” option …

That’s coming with point array, but right now I’m not sure. What’s your setup like ? what are the branches made of, just points ?

I use curves, then convert them to mesh. I just wanted to select some faces, add them to vertex group, and use this group to place leaves on each side of the branch.
Generally, It would be nice to have something like “X points / face” option in the distribute node…to have a better control over the object placement

If you have a vertex group already you don’t need to distribute points, these can already act as points to distribute on. You can use a point separate node with your vertex group as mask, and instance the leaves on the resulting geometry

Yes this can be done like this but you lose the face normals and every object points in the same direction.
edit: or is there a way to somehow take the vertex normal and position/rotate the object according it’s normal?

Oh you’re right, sorry

Will this be possible in Geometry nodes ?

  • Generate bezier path from polygon edges, so path can be used to create geometry or place objects along it for example

  • Make quick blockout, geometry nodes will replaced those with contextual geometry
    https://www.youtube.com/watch?v=ohUEXxIKAWI
    Another example
    https://www.youtube.com/watch?v=MoGSdEbF3To

  • Will that expand to meshes like sort of terrain ? nodes for textuting, erosion, LODs, chuncks borders aligning, vegetation spawn and rules, biomes roads and anything related like what is possible in Houdini related to terrain work.

Just curious where it is going.

1 Like

I think they are working on it

Hi,

can someone explain to me why something as trivial as this doesn’t work?

The position attribute is correct, as it works in the “Attribute Randomize” node.

What I am seeing on the screenshot can not possibly be interpreted in any other way than that I want to add a value of 10 to an X component of the position vector of each of the mesh vertices, yet it has no effect.

What am I doing wrong.?

Also, attributes seem to have inputs, (bright blue) yet I can not see any nodes which would output attributes… ?

You need to put the name of the attribute you want to set (position) into the result box at the bottom.

edit: you can connect new outputs from the group input node into attribute inputs to make them available in the modifier list.

1 Like

So I’ve done the simplest geo nodes setup there is and I’m getting this result on 2.92. My understanding was that distribute points generates lots of identical points which then get randomised, for instance, by another node.

On this example however half the points are 180 degree’s out of phase around X. Which is the correct behaviour?

Cheers

Pete