我试图理解法线贴图的概念,但是我对一些事情感到困惑。简而言之,我不确定法线贴图是否依赖于视点(即,围绕同一对象旋转时是否会得到同一对象的不同法线贴图)。其次,我不明白为什么蓝色是法线贴图中的主要颜色。
我如何看待法线及其与RGB颜色的关系,如下所示。单位球体表示任何可能的单位法线-换句话说,单位法向向量的X,Y和Z分量的范围是-1至1。RGB颜色的分量的范围都是0至255。因此,这很有意义将-1(标准分量)映射到0(颜色分量),0到127或128以及1到255。介于两者之间的任何值都只是线性插值。
将此映射应用于任意3D对象的法线会产生非常彩色的图像,而根本不是蓝色。例如,当取一个立方体时,所有六个面将具有不同但均匀的颜色。例如,法线为(1,0,0)的脸将为(255,128,128),法线为(0,0,-1)的脸将为(128,128,0),依此类推。
但是,由于某种原因,我找到的多维数据集的法线贴图完全是蓝色的,即(128,128,255)。但很明显,法线并非全部在正z方向上,即(0,0,1)。这是如何运作的?
[编辑]
好的,因此上述方法似乎被称为对象空间法线贴图或世界空间法线贴图。另一个称为切线法线贴图。我了解如何使用这种切线空间法线贴图来修改几何体的法线,但是我仍然不确定完全如何计算它(请参阅我在Nicol Bolas的回答中的评论)。
[编辑2]
我可能应该提到我正在处理分段参数化曲面。这些表面由一组表面补丁组成,其中每个补丁都与其自己的参数空间(u,v)= [0,1] x [0,1]相关联。可以在表面的任何一点上精确计算法线。显然,跨越切线空间所需的向量T(切线)和B(双切线)不仅仅是在u和v方向上表面补丁的偏导数。