That's what Valve calls it, probably because it sounds high-tech:
http://www2.ati.com/developer/gdc/D3DTutorial10_Half-Life2_Shading.pdf
I have been using this technique for months, and the lightmapper works perfectly.
However I am storing the light vectors in world space because I found that easier. I don't know how to convert that to tangent space. I guess if I created a matrix, set the X row to the binormal and the Y row to the tangent, and the z row to the normal, then transformed the vector with that, it should work.
I first tried that approach, but I was writing the shader at the same time, so I was double-blind to whether the results were correct or not. So I switched to global space because then I knew the vectors were right.
http://www2.ati.com/developer/gdc/D3DTutorial10_Half-Life2_Shading.pdf
I have been using this technique for months, and the lightmapper works perfectly.
However I am storing the light vectors in world space because I found that easier. I don't know how to convert that to tangent space. I guess if I created a matrix, set the X row to the binormal and the Y row to the tangent, and the z row to the normal, then transformed the vector with that, it should work.
I first tried that approach, but I was writing the shader at the same time, so I was double-blind to whether the results were correct or not. So I switched to global space because then I knew the vectors were right.