cameraFar
cameraFar
提供一个自动更新的着色器变量,其值等于当前渲染摄像机的远裁剪平面距离(camera.far)。
核心优势
自动化与解耦。开发者无需在渲染循环中手动创建和更新 uniform,只需声明式地使用该节点,它便会自动将最新的 camera.far 值同步到 GPU,使材质逻辑更独立、更易维护。
常见用途
自定义雾效:作为雾效计算的终点距离。
深度归一化:将世界空间距离转换为 [0, 1] 范围的值,用于颜色混合或特效。
效果范围控制:动态调整基于深度的效果(如软粒子、LOD)的作用范围。
调试与可视化:标记出接近或超出远裁剪平面的片元。
如何调整
该节点的值直接关联 JavaScript 中的 `camera.far` 属性。调整 `camera.far` 会动态地压缩或拉伸所有依赖此节点的视觉效果的作用范围。例如,减小 `camera.far` 的值(如从 1000 降至 200),会使自定义雾效变得更浓、出现得更早,显著缩短场景的可视距离。
代码示例
1
2// 将到摄像机的距离用 cameraFar 归一化,计算雾效因子
3const fogFactor = saturate( distanceToCamera.div( cameraFar ) );
4
5// 根据雾效因子混合物体颜色与雾颜色
6output.color = mix( objectColor, fogColor, fogFactor );
7