transformedNormalWorld
transformedNormalWorld
一个只读节点,代表在世界空间中最终的、可用于光照计算的表面法线。它已综合考虑了法线贴图、平直着色等所有因素。
核心优势
允许所有光照和反射计算统一在世界空间进行,简化了着色器逻辑,并为实现与世界坐标系对齐的特效(如三平面映射、积雪效果)提供了基础。
常见用途
在世界空间光照模型中提供法线。
为三平面纹理映射(Triplanar Mapping)提供方向依据。
创建与环境相关的程序化效果(如仅在朝上的表面积雪)。
如何调整
该节点为只读,其值由上游输入(如 `material.normalNode`)和物体的世界变换决定。旋转物体会改变其值,但移动相机不会,这证明了它与世界坐标系对齐。
代码示例
1// 将世界空间法线 [-1, 1] 映射到 RGB 颜色 [0, 1] 以进行可视化
2const worldNormalColor = transformedNormalWorld.mul( 0.5 ).add( 0.5 );
3
4// 将计算出的颜色作为模型的最终颜色输出
5material.colorNode = worldNormalColor;