Bumpmapping places a texture in a model where each texel brightness determines the height of that texel.
The height of each texel is then used to disturb surface illumination.
A normal display places a texture in a model, where each texel color represents three values ββthat determine the direction in which surface points are located.
For example, the color (255, 0, 0) may mean that the surface at this point indicates the positive X axis.
In other words, each texel is normal.
The name Dot3 comes from what you actually do with these normals.
Say you have a vector that indicates the direction of your light source. And letβs say that you have a vector that is normal in a particular texel on your model that tells you which direction the texel is pointing in.
If you are performing a simple mathematical equation called the "point product" on these two normal vectors, for example:
Dot = N1xN2x + N1yN2y + N1z * N2z
Then the resulting value is a number that tells you how many of these two vectors point in the same direction.
If the value is -1, they indicate in opposite directions, which actually means that the texel indicates a light source and the light source indicates a texel, so the texel should be illuminated.
If the value is 1, they point in the same direction, which means that the texel is pointing from a light source.
And if the value is 0, then one of the vectors indicates 90 degrees relative to the other. That is: If you are standing on the earth with impatience, then your gaze vector is 90 degrees relative to the normal to the earth, which points up.