法线的空间变换的原理

一、法线的空间变换原理(源于Shader入门精要中介绍:)
法线的空间变换的原理_第1张图片法线的空间变换的原理_第2张图片

由此得到三个重要公式:

1、如果要对法线做空间转换,需要法线向量右乘矩阵的逆转置矩阵。

2、如果是正交矩阵,则直接右乘转换矩阵:NB=MA->BNA
(注:正交矩阵M定义是MTM=I,即M的各行向量为相互垂直的单位向量,各列向量也是互相垂直的单位向量)
3、如果不是正交矩阵,但是统一缩放矩阵,则可以直接右乘转换矩阵和缩放系数的倒数:NB=(MA->BNA)/k

二、关于利用切线空间TBN进行法线转换:

假设已知切线空间TBN,切线空间的法线Nt,计算世界空间下的法线Nw?

由于TBN是正交矩阵,所以Nw * TBN = Nt;

两边左乘TBN-1,Nw=TBN-1 * Nt=NtT * (TBN-1)T;

因为正交矩阵的逆转置矩阵等于自身,所以Nw=Ntt * TBN;

你可能感兴趣的:(Shader,Unity3D)