normalViewGeometry
normalViewGeometry
提供视图空间下的原始几何法线,它会根据材质的 flatShading 属性自动适应平直或平滑着色,且不受法线贴图影响。
核心优势
它将宏观的几何轮廓与微观的表面细节(如法线贴图)清晰分离,是实现依赖于物体真实剪影(如轮廓光、卡通渲染)的稳定效果的基石。
常见用途
实现菲涅尔效应或轮廓光
卡通渲染(Toon Shading)
几何法线可视化与调试
如何调整
该节点本身无参数,其行为由材质的 `flatShading` 属性控制。将 `flatShading` 设为 `true` 会输出棱角分明的面法线,设为 `false` 则输出平滑的顶点法线。
代码示例
1// 计算法线和视图方向的点积
2const fresnelDot = dot( normalViewGeometry, positionViewDirection.normalize() );
3
4// 使用 smoothstep 创建一个从边缘开始的平滑过渡
5const fresnelFactor = smoothstep( 0.25, 0.1, fresnelDot );