materialNormal
materialNormal
提供最终计算出的表面法线向量,该向量已内置了对法线贴图(Normal Map)和凹凸贴图(Bump Map)的处理逻辑。
核心优势
其核心优势是极度简化与封装:它将法线贴图解码、凹凸贴图转换、TBN 矩阵计算等所有复杂逻辑完全自动化,让开发者能以统一、可靠的方式获取最终的表面法线。
常见用途
作为 PBR 光照模型的基础输入,为低多边形模型添加丰富表面细节。
通过使用波纹法线贴图,创造扭曲的反射或折射效果(如水面)。
在 MatCap 材质中,作为采样坐标来查找材质颜色。
在卡通渲染中,作为判断明暗分界线的依据。
如何调整
通过在 JavaScript 中修改材质属性来配置。设置 `material.normalMap` 和 `material.normalScale` 来控制法线贴图效果;或设置 `material.bumpMap` 和 `material.bumpScale` 来控制凹凸贴图效果。法线贴图的优先级高于凹凸贴图。
代码示例
1// 在物理光照模型中,materialNormal 是光照计算的核心输入之一
2const lighting = PBR( {
3 normal: materialNormal, // <-- 此处使用
4 // ... 其他 PBR 输入
5} );