Home › Forums › GAMES在线课程(现代计算机图形学入门)讨论区 › 作业3 bump mapping中TBN的t 公式怎么推导的 › Reply To: 作业3 bump mapping中TBN的t 公式怎么推导的
LunaJohn
Participant
把切线从模型空间转换到世界空间是不能直接用model矩阵转换的,只要model矩阵是各个分量不等拉伸的矩阵,变换之后原来的法线和原来的面就不会垂直了,这个你可以在2维空间画一下x*1,y*2的变换,还是很明显的。
要得到正确的变换,就是要保证前后顶点切线和法线点乘为零,即TA cross NA = 0,TB(变换后的切线)=M1*TA,M1就是变换矩阵。那么可以得到 (M1*TA)^ * G*NA = 0(前面取转置默认3*1转为1*3),G就是法线变换矩阵,那么可以得到TA^(MA^ * G)N=0,那么我们可以知道当G为MA的逆转置矩阵时等式成立。
ps:因为有些库帮我们处理了一些细节,3*1 * 3*3的计算是可以被当作1*3 * 3*3的,所以把矩阵 * 向量(m * v) 转化成 向量 * 矩阵(v * m) 相当于对矩阵transpose(v^ * m^)。