对法向量进行变换应该注意什么?
- 问题提出
在图形学中我们难免会遇到要对法线进行空间转换,例如:从Local Space 变换到Word Space,在变换过程中有一点我们需要注意,就是我们在对法向量做非等比变换之后可能会出现法向量不再垂直于几何体切表面的情况,具体情况如下图所示:
说明:我们有对应的切线向量u和 对应的发线向量n,如图(a)所示。现在我们对切线u和和对应的法线向量做一个变换,对应的变换矩阵为A(已知该变换对x轴向和y轴向为一个非等比变换),经过该变换后,就有可能出现图(b)所示的情况,nA 向量就不在垂直于uA向量了。然而我们真正需要得到的结果是图(c)所示的结果,在经过A矩阵对应的变换后发线向量任然要垂直于切线向量。
- 解决问题
由上边方框里边的推导我们可知,如果我们想要对u向量做一个对应矩阵为A的变换,如果我们要保证在变换后法线向量任然要垂直于对应的切线向量的话,那么我们就需要对垂向量做一个逆转矩阵变换就好了,这样子我们就不用担心上图中图(b)所对应的情况发生了,而且做了逆转矩阵变换后就是如图(c)所示的结果,也是我们期待的正确结果。