How does Normal Texture Coordinate work?

To answer we need to go back to the root :

What is a normal of a face ?
it’s a vector that represent the orientation of that face, the normal vector is perpendicular to the surface of the face ( when that face is planar).

What is a vector ?
it can be summed up as a coordinate that indicate a direction. for instance, (0,0,1) in blender points up. (0,0,-1) points down and so on.

Finally the normal texture coordinate maps in RGB the face vector that is in XYZ.
If a face is completely pointing up, it’s color will be (0,0,1).

The bottom sphere show normal coordinate as little lines , the top one show the same coordinates but “translated” differently, this time as color.

It’s the same as doing that in geometry node :

Now to get a complete understanding, you must be sure you understand vectors, or all this might end up being a bit too abstract.

Since a vector represent an orientation, we aren’t far from converting that into a rotation.
Or at least it’s possible to know the angle between two vectors and do some magic with it…
And that’s maybe what @Hunkadoodle was referring to.

Unless I’m mistaken, what you are doing is extracting one component of the vector, and sometime that can work, but generally you want to use the 3 values at the same time and use vector math operation on them. Since a vector represent an orientation in 3D, you need XYZ component to get the real representation. But I agree that sometimes using only say the Z component is enough for what you want to do with it…

7 Likes