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