viewportDepthTexture
viewportDepthTexture
在着色器中提供对当前视口深度图的直接采样,返回一个代表场景几何远近的浮点值(0.0为近,1.0为远)。
核心优势
极大地简化了获取场景深度数据的过程,将复杂的后台设置完全抽象化,从而解锁了如SSAO、景深(DoF)等多种高级渲染技术的实现。
常见用途
屏幕空间环境光遮蔽 (SSAO)
景深 (Depth of Field)
软粒子 (Soft Particles)
重建世界坐标
如何调整
通过调整其构造函数中的 `uvNode` 和 `levelNode` 参数来控制。`uvNode` 改变采样位置(如施加偏移以检测边缘),`levelNode` 改变采样精度(如使用高 Mipmap 等级获取模糊的深度值以优化性能)。
代码示例
1// 采样当前像素位置的深度值 (0.0 到 1.0)
2const depth = viewportDepthTexture();
3
4// 将深度值作为灰度颜色输出
5// (近处物体为黑色,远处物体为白色)
6return vec3( depth );