OpenGL着色器中的凹凸贴图通常在tangent space其中进行,其具有法线,切线和副法线作为基矢量.
根据我的书OpenGL着色语言,要求基本向量consistently oriented across the surface of the object用于照明方程以正确插值.它还定义了一致,它意味着与法线贴图纹理坐标一致.
因此,给定任意网格的顶点位置,法线和法线贴图纹理坐标,如何计算一致的切线矢量?
计算切线和切线矢量,使它们正确定位纹理坐标,并正确匹配法线实际上相当复杂.
我过去使用的一个很好的代码示例是:http: //www.terathon.com/code/tangent.html
Crytek也有关于这个主题的演讲.它们的实现也解决了切线空间计算的许多常见问题:http: //crytek.com/cryengine/presentations/triangle-mesh-tangent-space-calculation