最近在看法线贴图相关的内容,一直没怎么搞懂切线空间是个什么玩意,关于切线空间的Z轴我们都知道是模型顶点本身的法线方向,但是另外两个轴切线(Tangent)和副切线(Bitangent)向量却很难让人理解,网上最多的说法就是切线(Tangent)与UV坐标的U方向对齐,副切线(Bitangent)与UV坐标的V方向对齐。这就很抽象!!!,UV坐标变化本身就是一个二维空间的向量,而切线方向是一个三维空间的向量,这两者是如何对齐的呢 ,
首先我们考虑一个三角形,要为这个三角形内的每一个像素都给定一个法线矢量 ,这个三角形是一个平面,有一个平面法矢量,我们可以修改这个矢量去定义每个像素的法矢量,例如每个像素上向某个轴偏移一个值,向另一个轴偏移一个值。这两个轴最好都垂直于该平面法线 但问题是, 那另外两个轴如何确定呢,这是一个常见的三维问题,给定一个轴,另外两个轴有无限种可能,就像下图一样

针对上述情况,比较简单的一种方式就是利用纹理坐标来确定另外两个轴的方向 一个简单的思考方式 :
我有一个向量,该向量指向(uv坐标的)U值在三角形上增加的方向,那么它在模型空间坐标系中的坐标将是多少
另一个思考方式
模型空间X,Y,Z轴坐标相对于UV坐标的变化率。也就是说 切线(Tangent)向量实际上是模型空间坐标相对于U值分量的变化率,而副切线(Bitangent)向量则是模型空间坐标相对于V值分量的变化率
上面两句话其实已经将切线与UV坐标的关系描述的很清楚了,接下来我们讲述一个详细的 例子
假设有这样一个三角形 ,它的顶点坐标以及UV坐标如图所示,我们来计算它的切线和 副切线

本文探讨了切线空间中的切线和副切线向量如何与UV坐标相关联。切线向量对应于模型空间中U值的变化率,而副切线向量对应于V值的变化率。通过举例说明,解释了如何根据UV坐标变化计算出切线和副切线,以帮助理解这一三维图形学中的概念。
最低0.47元/天 解锁文章
7279





