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