我凭直觉认为,如果您从两个正交向量线性内插到另外两个正交向量,则生成的两个向量也将彼此正交。我假设如果您有基轴X,Y,Z,并且它们是彼此正交的单位向量,则可以通过旋转进行插值,结果仍然是三个正交向量。显然是that's not case (question I asked on Mathematics Stack Exchange。
因此,我无法平均切线和法线以创建平滑外观的计划。但是我只是想,当顶点着色器将值发送到片段/像素着色器时,它们被赋予“线性插值”值,对吗?意思是如果我有正交的法线和切向量,那么当它们到达片段/像素着色器时,它们将不再彼此正交,对吗?这不是问题吗?
法线和切线在插值后可能不正交
这是因为插值是插值位置而不是角度。这意味着如果您线性插入位置,角度通常会非线性变化。因此,在大多数情况下,您插入的向量不再相互对应(起始值和结束值除外)。
平滑TBN
这是可能的,但是您需要再次对向量进行正交化,例如:
t = cross(b,n)
b = cross(n,t)
t=normalize(t);
b=normalize(b);
n=normalize(n);
然而,在大多数情况下,非正交性并不意味着坏,并且东西可以工作也没有此步骤。