法线变换矩阵

坐标空间A 变换到 坐标空间B

顶点的变换矩阵 M 

A空间一点的顶点的 切线T_{a} , 法线 N_{a}

变换后B空间后该点的 切线T_{b} , 法线 N_{b}

求法线的变换矩阵G

由于切线是由顶点的差值计算而来,所以切线的变化可以直接用顶点的变换矩阵,即 T_{b}  = MT_{a}

T_{b}  \bullet N_{b} = 0(切线与法线垂直)

(MT_{a} )\bullet (GN_{a} ) = 0 

(MTa)^T (GN_{a} ) = 0  (这一步是向量转成矩阵表示  由于要满足矩阵相乘 前面的向量要表示成列向量)

 Ta^T M^TGN_{a} = 0 

由于 T_{a} \bullet N_{a}  = 0 所以 Ta^TN_{a}  = 0 (也是 向量转成矩阵表示)

所以 M^TG = I (I 是单位矩阵)

G(M^T )^ {-1} = (M^{-1})^T

顶点的切线和法线。(图片来自《Unity Shader入门精要》随书彩色插图 )
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容