normalWorld
normalWorld
提供在全局世界空间(World Space)中的表面法线,已正确应用物体的旋转和缩放,是进行标准光照和环境反射计算的基础。
核心优势
核心优势在于它提供了一个所有场景元素(如光照、环境探针)共享的通用坐标系中的法线,使得光照和反射计算直观且准确。其值独立于相机视角,对环境反射等效果至关重要。
常见用途
作为标准光照模型(如 PBR)的核心输入,用于计算漫反射和高光。
计算环境贴图的反射向量,以实现物体表面的环境反射效果。
创建依赖于世界方向的程序化效果,如在物体顶部模拟积雪。
如何调整
该节点是只读输出,但可将其结果用于调试(如 `normalWorld.mul(0.5).add(0.5)` 可将其可视化为颜色),或在着色逻辑中被替换(如用视线方向替换)以创造平坦的卡通剪影效果。
代码示例
1// 根据表面与世界向上方向的夹角,模拟积雪效果
2const upFactor = dot( normalWorld, vec3( 0, 1, 0 ) );
3const snowAmount = smoothstep( 0.6, 0.85, upFactor );
4output.color.rgb = mix( rockColor, snowColor, snowAmount );