本文简述了一种法向量变换矩阵的推导过程
使用矩阵对点进行空间变换是图形学中的常见操作,假设变换矩阵为
M ,我们需要变换切向量
T(由 点
P2 - 点
P1 定义) 以及与其垂直的法向量
N .(
T 和
N 皆为列向量)
假设 点
P2 经过
M 变换后为
P2′, 点
P1 经过
M 变换后为
P1′,
T′ 为经过变换后的切向量:
M∗P2=P2′M∗P1=P1′T′=P2′−P1′
对于原切向量
T,我们希望找到一个矩阵
M′, 使得:
M′∗T=T′
我们直接令
M′=M 来试一下:
M′∗T=M∗T=M∗(P2−P1)=M∗P2−M∗P1=P2′−P1′=T′
可见对于切向量
T ,我们可以直接使用
M 对其进行变换.
对于法向量
N ,我们有(注意,第一个公式中的点号表示点积):
T⋅N=0⟹TT∗N=0
假设变换后的法向量为
N′, 我们希望仍然保持其与
T′(
T的变换后向量) 的垂直(注意,第一个公式中的点号表示点积):
T′⋅N′=0⟹T′T∗N′=0
假设用于变换法向量的矩阵为
G, 则应有:
T′=M∗TN′=G∗NT′T∗N′=0(M∗T)T∗(G∗N)=0TT∗MT∗G∗N=0TT∗(MT∗G)∗N=0
由于我们知道:
TT∗N=0
所以我们只要令(注意,这只是一种可能的取值,并不是唯一取值,我们的目的也仅是需要获得一种可能的取值):
MT∗G=I
便可以满足上面的等式 :
TT∗(MT∗G)∗N=TT∗I∗N=TT∗N=0
所以变换法向量,我们需要使用普通变化矩阵逆的转置(或者说转置的逆,对于可逆矩阵,其转置矩阵的逆矩阵等于其逆矩阵的转置矩阵)
G=(MT)−1=(M−1)T
如果变换矩阵
M 是正交矩阵,则有(根据正交矩阵定义)
M−1=MT
于是法向量的变换矩阵变为:
G=(MT)−1=(M−1)−1=M
此时我们就可以直接使用
M 来变换法向量了.
更多资料