getViewPosition
getViewPosition
根据屏幕坐标和深度值,重建该点在摄像机视图空间中的三维位置,常用于后期处理特效。
核心优势
它将复杂的逆向坐标变换(包括自动处理 WebGL/WebGPU 深度差异)封装为单个函数,是实现 SSAO、SSR、体积光等高级后期处理特效的基础构建块。
常见用途
屏幕空间环境光遮蔽 (SSAO)
屏幕空间反射 (SSR)
高质量景深 (Depth of Field)
基于与摄像机距离的雾效 (Distance Fog)
如何调整
此节点通过改变其输入(特别是 `depth`)来调整效果。例如,在计算视图位置前,将从深度纹理中采样的深度值乘以一个小于 1 的系数,会让整个场景的重建位置更靠近摄像机,从而使依赖于距离的雾效整体后退。
代码示例
1// 在后期处理着色器中,从深度纹理重建视图位置
2const depth = depthTexture.sample( screenUV );
3const viewPosition = getViewPosition( screenUV, depth, cameraProjectionMatrixInverse );