positionView
positionView
提供顶点或像素相对于摄像机的坐标(视图空间),是实现深度和视角相关特效的基础。
核心优势
核心优势在于它将摄像机置于坐标系原点,极大地简化了深度计算(如 `length(positionView)`)和视线向量计算,是实现雾效、边缘光等效果的最高效方式。
常见用途
计算深度以实现雾效,使物体随距离增加而融入雾色。
计算视线向量以实现菲涅尔效应(边缘光),突出物体轮廓。
在后期处理(如SSAO)中作为重建世界坐标的起点。
如何调整
该节点为只读数据。通过对其分量进行不同运算可创造特效:使用 `.z` 分量可实现深度雾效;使用 `length(.xy)` 可创建屏幕中心径向效果(如暗角);与 `normalView` 结合可计算菲涅尔边缘光。
代码示例
1// 基于视图空间的Z深度计算雾效
2const cameraDistance = positionView.z.negate();
3const fogFactor = cameraDistance.remap( fogNear, fogFar ).saturate();
4output.color.rgb = mix( objectColor, fogColor, fogFactor );