# Dotting Tangent and binormal vectors?

## Recommended Posts

mlt    138
I am currently reading: http://http.developer.nvidia.com/GPUGems/gpugems_ch01.html and trying to implement/test/debug the first part in a shader. From the text the normal is: N = cross(B,T) where B is the binormal and T is the tangent computed as described in the article. My question is now: Is it always true that: dot(B,T) = 0 ? from the definition of N it must hold that: dot(N,B) = dot(N,T) = 0 but what about dot(B,T) ?

##### Share on other sites
alvaro    21266
B and T are not normal in general:

dot(B,T) = d/dx(H(x,y,t)) * d/dy(H(x,y,t))

If you want to have a basis of the tangent space whose elements are orthogonal, you can use one step of Gram-Schmidt orthogonalization to replace either B or T.

##### Share on other sites
mlt    138
ok but this would of course hold right:

dot(N,B) = dot(N,T) = 0

##### Share on other sites
alvaro    21266
Quote:
 Original post by mltok but this would of course hold right:dot(N,B) = dot(N,T) = 0

Yes.