webgl - 如何使用 mat3.normalFromMat4
问题描述
我正在尝试在 webGL 中实现移动光源。
我知道 normalMatrix 是在片段着色器中管理照明方程的关键,但并没有赢得正确设置它的战斗。我能找到的唯一教程是优秀的“计算机图形学概论”,他说:
事实证明,您需要删除第四行和第四列,然后对生成的 3×3 矩阵进行所谓的“逆转置”。你不需要知道这意味着什么或它为什么起作用。
我想我确实需要了解这一点才能真正掌握这个婴儿。
所以我正在寻找有关如何以及为什么使用 mat3.normalFromMat4 的指导。
(PS。我已经使用 3Js 实现了移动光源,但是它对纹理贴图的处理对我的应用程序而言在很大程度上降低了图像的质量。在 webGL 中,我可以达到所需的分辨率。)
解决方案
对我来说,通过阅读这个讨论,答案似乎很简单。mat3.normalFromMat4 仅在计算法线后非均匀缩放对象(即在一个维度上比其他维度更多)时才需要。
因为我不这样做,所以这是一个空问题。
推荐阅读
- c# - 读取多行并在空间 c# 控制台应用程序上拆分
- android - xml-Icons 显示为白色,带有 apilvl 24&25
- c# - 试图在 C# 中检索 Mysql 数据库中的图像,但 mysql 显示错误“参数无效”
- javascript - 为什么 electron 2.0 不支持 TypeScript (ES6) 导入?
- reactjs - 带有水平道具的平面列表样式
- javascript - 鼠标悬停时如何打开菜单折叠?
- asp.net - 在页面加载事件 asp.net 上未获取数据
- python - RecursionError:在 Karatsuba 乘法中超出了最大递归深度
- ms-access - MS Access 从条目复制单个项目,粘贴到下一个条目 - 库存货架位置
- java - Java gson fromJson 一半时间显示 SignatureParser.class source not found 错误