我正在做每个片段照明,并且在校正法线向量时,我得到了以下代码:vec3 f_normal = mat3(MVI) * normal;
其中 MVI 是:mat4 MVI = transpose(inverse(ModelViewMatrix));
。那么返回之后是什么mat3(MVI)
陈述?
mat3(MVI) * normal
返回 4x4 矩阵中上方的 3x3 矩阵,并将法线乘以该矩阵。该矩阵称为“正规矩阵”。您可以使用它将法线从世界空间带到眼睛空间。矩阵的上部 3x3 部分对于缩放和旋转很重要,而其余部分仅用于平移(并且法线永远不会平移)
要将法线从世界空间转移到眼睛空间,您只需要 3x3逆转置模型视图矩阵。除非你的矩阵是正常的(没有非均匀尺度),否则原始矩阵与其逆转置相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)