景深
基于弥散圆的景深后处理
景深
景深 (DOF) 模拟相机镜头的散焦模糊效果,保持焦平面清晰,同时根据前景和背景物体与焦点的距离平滑地对其进行模糊处理。实现采用弥散圆 (CoC) 方法。
管线:3 通道全屏处理:
- CoC 通道 -- 读取深度缓冲并计算每像素弥散圆半径,以全分辨率写入
R16Float纹理。位于focus_distance处的像素 CoC 为零;距离焦平面越远的像素获得越大的值。 - 散景模糊通道 -- 以 CoC 纹理为权重采样 HDR 颜色缓冲,写入半分辨率
Rgba16Float模糊目标,产生特征性的散景光斑形状。 - 合成通道 -- 使用 CoC 作为插值遮罩,将清晰的 HDR 图像与模糊结果混合,生成最终的景深输出。
配置 (DofSettings ECS 资源):
| 参数 | 默认值 | 说明 |
|---|---|---|
enabled | false | 开关景深(关闭时零 GPU 开销) |
focus_distance | 10.0 | 以世界单位表示的焦平面距离 |
focus_range | 5.0 | focus_distance 周围保持清晰对焦的范围 |
bokeh_radius | 4.0 | 以像素为单位的最大模糊半径 |
use anvilkit_render::renderer::dof::DofSettings;
// 启用自定义对焦的景深
app.insert_resource(DofSettings {
enabled: true,
focus_distance: 8.0,
focus_range: 3.0,
bokeh_radius: 6.0,
});文件:dof.rs、dof.wgsl