Can a Geometry Node Mesh Grid be visible?

I’d like to use a geo node mesh grid for instancing on points, but unlike a non-geometry node grid, I can’t figure out how to make it visible…

Can this be done?

thanks

it should be visible like any other mesh being from geo nodes or from blender.
Probably a mistake, you either haven’t joined the grid to the result, or joined it when it’s converted to point, and indeed points aren’t visible.
The last possible case that I can find is if your grid is like one edge, rather than a plane.

Make some tests with just one grid (with default settings) connected to the output, you should see it !

1 Like

Aha! Thanks!

Pulling it into Instances on Points must have done it, because when I link it directly to geometry out, it’s visible.

I am also rotating it vertically (is there a “vertical grid” ?) but I can still see it.

The question I have now is how to change its origin so that we can place it precisely - for example, snapping the 3D cursor to a corner or other point, or the center of one of its “faces”…

cheers!

Ok ! you can always merge the grid and the grid converted to point using a join geometry…

There is no vertical grid, you need to transform it like you do !

Hum, that’s the thing, if you add a grid (or other meshes) there is no proper origin … No 3D cursor either …
To do these kind of things you need to get a bit into vector maths.
Or at least you need to chain several operations to get to the result.

If you add a grid/plane in GN, it’s center will be at 0,0,0 (That’s the center of your object that has the geometry node modifier). If that object as a 0,0,0 Location, then the plane will be aligned with the world and things will be simpler . Make sure to apply loc , rot , scale on objects you use with GN at least at the beginning.

If you want to snap the grid to something, you must first find the location of where you want to snap it. How to do that ? that depends on the case , sometime it’s tricky…

Let’s say you add two emptys (A and B) with different locations like empty A : (1,1,1), empty B : (2,2,2) and you add these empty to your nodetree with the object info node. Then you’ve got access to the location of these emptys.

Let’s move the grid to the location of empty A : it’s easy, you just need to plug the location of the empty A to the offset of a set position node (on the grid) .
Now the grid is centered around empty A.

Now, how to move the grid from empty A to empty B ?
If we do the same thing, by plugging the location of empty B in another set position node, the final location of the grid center will be 3,3,3 because we have taken the first location (1,1,1) and offset-ed it by the second (2;2;2).
So to get the right result we need to substract location A from B to get the final location.
So plug Location of empty B into the first socket of a Vector Math node set to Substract, and the location of empty A to the second. : 2-1 = 1 , so that should give you 1,1,1 as a result , and that’s what you need to enter in the set position node ( offset socket) to move the grid from empty A to B.

To sum up : Originally , the plane was at 0,0,0 , we moved it to 1,1,1 (the position of the first empty).
Then we calculated the vector between empty A and B, by substracting their location which gave us 1,1,1 and offset-ed the grid by that vector. 1,1,1 + 1,1,1 gave 2,2,2 which is the position of empty B.

Actually , the plane is centered around the empty, how to snap a corner of the grid to the empty ?
There are different ways to do that. One that is simple is to start by offsetting it so it’s corner is at 0,0,0. If the grid is of size 1, then start by using a set position with an offset of (0.5, 0.5 ,0) or (-0.5, -0.5, 0) , then move it to the first empty.

Hope all that make a little sense, you can try to recreate this setup , with 2 emptys, one grid.
I’ve simplified things a bit… If you’ve followed along what I say, it’s like the plane has an origin. In fact, all that time we have offset each point of the plane/grid. There is no origin of the grid after-all.

All that said , if you use instances they got an origin, it’s a bit different…

At some point you probably need to learn how to do things similar to what I tried to explain.
If you’re new to all this, it probably sound like a nightmare… Maybe at some point it will make much more sense, and you’ll see how to get to a result that you want.
Really not easy at first, but practice makes perfect !
As you said earlier , you first need to get a feel of how this system works and with time you’ll take good advantage of it. It’s possible to do amazing things with GN, but the logic can be hard to get at first.

Really hope that helps, if not , hum , at least I’ve tried :smiley:
Maybe with a bit of time or better explanations eventually it will make sense !

1 Like

Thanks! I’m re-reading this a few times. I may try using math nodes to help put the grid where I need it.

Would obviously be a great help to have standard origin and cursor control…

I’m also having issues with what seems to be a bug in object dimensions. Will put up a new post about that.

Thanks again for the great help.

Hey !
Yes what I wrote is maybe a bit too much to chew, and that will probably make more sense once you’ll be a bit more advanced.

You should think of Geo Nodes as a nodal edit mode, in edit mode there isn’t the notion of origins, but it’s still manageable. GN works in the same way.
And for 3D cursor, if you want something to interact with in the 3D view, you can use an empty and gets it’s location / rotation in GN.

But for most of the things, having a “nodal 3D cursor” would just translate the problem.
The most difficult thing is to “put the cursor somewhere” , that is accessing a coordinate. ex : you add a cube and want to “put the cursor at one vertice of a cube” or said differently get the position of that vertice. That’s a bit difficult in GN.
Once you have that position it’s relatively easy to translate something to that location, or rotate something around it. Like you would do with the 3D cursor.

1 Like