I'm pretty sure this is what DOT3 does:
T1rgb = Texture 1 color
T2rgb = Texture 2 color
For each pixel:
DP# = (T1r# * T2r#) + (T1g# * T2g#) + (T1b# * T2b#)
In other words, the RGB of your texture contains the XYZ of a normal, with each component scaled from -1 to 1, to a range of 0 to 255.
Now when you do the above function, if these normals point in the same direction, you'll get a value of 1.
However, if these normals point in opposite directions, you'll get a value of -1.
And if the normals point 90 degrees away from one another, then you'll get a vlaue of 0.
This value is then converted to a greyscale pixel color, where any value below 0 is clamped to 0,0,0, and a value of 1 becomes 255,255,255.
So when you do this dot3 between one texture and another or the texture and the model color, you can blend the resulting shade with a texture to darken or lighten it.
Of course I have never actually used Dot3 and this is all speculation based on what I have read so far, but it seems to fit the data.
As for what you can use this for besides "bumpmapping"? I dunno. It is really mainly intended for bumpmapping. But who knows what other effects you can achieve using that equation. The dot product is used for a lot of things in 3D graphics.
It may be possible to use this for cel shading. Perhaps you can use it to create outlines on characters. Or maybe you could use it to blend your character in a way similar to a spherical map to create an x-ray like effect. I'm not sure.
T1rgb = Texture 1 color
T2rgb = Texture 2 color
For each pixel:
DP# = (T1r# * T2r#) + (T1g# * T2g#) + (T1b# * T2b#)
In other words, the RGB of your texture contains the XYZ of a normal, with each component scaled from -1 to 1, to a range of 0 to 255.
Now when you do the above function, if these normals point in the same direction, you'll get a value of 1.
However, if these normals point in opposite directions, you'll get a value of -1.
And if the normals point 90 degrees away from one another, then you'll get a vlaue of 0.
This value is then converted to a greyscale pixel color, where any value below 0 is clamped to 0,0,0, and a value of 1 becomes 255,255,255.
So when you do this dot3 between one texture and another or the texture and the model color, you can blend the resulting shade with a texture to darken or lighten it.
Of course I have never actually used Dot3 and this is all speculation based on what I have read so far, but it seems to fit the data.
As for what you can use this for besides "bumpmapping"? I dunno. It is really mainly intended for bumpmapping. But who knows what other effects you can achieve using that equation. The dot product is used for a lot of things in 3D graphics.
It may be possible to use this for cel shading. Perhaps you can use it to create outlines on characters. Or maybe you could use it to blend your character in a way similar to a spherical map to create an x-ray like effect. I'm not sure.