首页 > 解决方案 > 如何使用 mat3.normalFromMat4

问题描述

我正在尝试在 webGL 中实现移动光源。

我知道 normalMatrix 是在片段着色器中管理照明方程的关键,但并没有赢得正确设置它的战斗。我能找到的唯一教程是优秀的“计算机图形学概论”,他说:

事实证明,您需要删除第四行和第四列,然后对生成的 3×3 矩阵进行所谓的“逆转置”。你不需要知道这意味着什么或它为什么起作用。

我想我确实需要了解这一点才能真正掌握这个婴儿。

所以我正在寻找有关如何以及为什么使用 mat3.normalFromMat4 的指导。

(PS。我已经使用 3Js 实现了移动光源,但是它对纹理贴图的处理对我的应用程序而言在很大程度上降低了图像的质量。在 webGL 中,我可以达到所需的分辨率。)

标签: webgllighting

解决方案


对我来说,通过阅读这个讨论,答案似乎很简单。mat3.normalFromMat4 仅在计算法线后非均匀缩放对象(即在一个维度上比其他维度更多)时才需要。

因为我不这样做,所以这是一个空问题。


推荐阅读