Normal Matrix推导

Normal Matrix 推导

在网上看了好多normal matrix的推导一共也就大概两个版本,还全是复制粘贴,真行啊。而且感觉推导也有些许冗长,就自己在演草纸上推一遍吧
Normal Matrix推导_第1张图片
其中画框的部分就是主要步骤了,其实我感觉主要就是那个将点乘化为矩阵相乘比较难想了

这也是为什么我们经常会看到这样的代码

OpenGL

Normal = mat3(transpose(inverse(model))) * normal;

Unity

worldNormal = mul(normal, (float3×3) _World2Object );

这里将两个矩阵的相乘顺序交换就是 省去了转置那一步 (我们都知道矩阵乘法有先后之分)

你可能感兴趣的:(线性代数,opengl,图形学)