
CHAPTER 5 ■ GETTING THE MOST OUT OF VERTICES
493
In this special case of three perpendicular normalized vectors, you can transform a vector
by the inverse of a matrix by swapping their order in the multiply operation:
float3 vectorT = mul(tangentToWorld, vectorW);
■Note This is because the inverse of a matrix constructed from three normalized and perpendicular vec-
tors equals the transpose of the matrix.
This is exactly what you want to do for your light direction: you want to transform it from
world space to tangent space:
Output.LightDirT = mul(tangentToWorld, xLightDirection);
Youcalculatethelightdirection,expressedintangentspace,andsendittoyourpixel ...