我正在做一个每片段照明,当纠正正常的时候,我得到了这个代码:vec3 f_normal = mat3(MVI) * normal;MVI在哪里:mat4 MVI = transpose(inverse(ModelViewMatrix));.那么什么是mat3(MVI)声明后的回报?
Ste*_*vel 14
mat3(MVI) * normal
Run Code Online (Sandbox Code Playgroud)
从4x4矩阵返回上3x3矩阵并将法线乘以该矩阵.该矩阵称为"正常矩阵".您可以使用它将法线从世界空间带到眼睛空间.矩阵的上3x3部分对于缩放和旋转很重要,而其余部分仅用于平移(并且法线永远不会被翻译)
要从世界空间到眼睛空间采取法线,您只需要模型视图矩阵的3x3 逆转置.除非你的矩阵在正常情况下(没有非均匀尺度),否则原始矩阵与其反转置相同.
| 归档时间: |
|
| 查看次数: |
18531 次 |
| 最近记录: |