How to get normals of generated geometry in geometry nodes?

I'm using Blender 3.6.2 and I'm experimenting with geometry nodes. I would like to apply a transformation to the points of a mesh primitive I added through nodes, but I want to use the normals of the neighboring faces of the generated mesh, and I can't find any way to access that data, since the Normal Node has no input.

I feel like my approach might be wrong, but it seems like accessing the normals should be such a basic thing to do? Is there a way to do what I'm looking to do?

• The normal node has an output. This output gives you the normal of the points(I think it's face corners) You can use a evaluate on domain and get the normal for each face. Why would the nrmal node have an input? Currently you cannot do something like set the normal of a point/edge/whatever. But you can output the value and use it in the shader nodes and even bake it if you want to. But your actual question,"use the normals of the neighbring faces of the generated mesh" is something that I cannot help with. Please wait for a proper answer for that. But I hope the info I have provided is helpful Commented Aug 26, 2023 at 10:30
• @TheKalaakaar I don't get it, if I have multiple mesh sources in the geometry nodes editor, which one is used to calculate the normals? How do I specify this? Commented Aug 26, 2023 at 10:46
• Say you are using the set position node. And you add 1 to each axis of the existing position by using a vector math: add after the position node. Then the position node will be evaluated in the context of the geometry which you used the set position on. It seems you are not too familiar with the concept of fields and how they are evaluated. It's not that simple, or else I would have explained it myself. I would first suggest you to watch the video by Erindale on this topic. Hopefully that willl clear some of the doubts. Best of luck Commented Aug 26, 2023 at 10:59
• although i answered, i recommend watching some basic beginner geometry nodes tutorials e.g. of Erindale who explains it very well Commented Aug 26, 2023 at 11:09

let's say you have a cube:

if you add this node tree:

you will get points on all faces:

if you now instantiate a cone (with pivot point on the bottom) on the points, you will get:

To get the value of a normal of any face, you can use this:

where index is the face index. Of course you can also use fix "index" numbers like so:

if you put that all together:

you can rotate the instances according to the face normal of the mesh:

result:

• thanks, I think I'm starting to get it. will this work with verteces as well? Commented Aug 26, 2023 at 12:00
• Hi Sortai, ...comments are for "comments" - not for additional questions. Please be aware that the sense of this site is that others can learn from your questions as well. But comments aren't searchable and won't be found by others. You can ask as many questions as you want - if you have additional questions - pls open a new questions. thx. and yes...if you change that to vertices it will work as well. But best is still - try it on your own - by this you will learn much more than by asking. ;) Commented Aug 26, 2023 at 13:36
• and if my answer helped you, pls click on the checkmark left of my answer - thx. Commented Aug 26, 2023 at 13:36
• just use a capture attribute Commented Aug 27, 2023 at 14:35