AnvilKitAnvilKit

景深

基于弥散圆的景深后处理

景深效果演示

景深

景深 (DOF) 模拟相机镜头的散焦模糊效果,保持焦平面清晰,同时根据前景和背景物体与焦点的距离平滑地对其进行模糊处理。实现采用弥散圆 (CoC) 方法。

管线:3 通道全屏处理:

  1. CoC 通道 -- 读取深度缓冲并计算每像素弥散圆半径,以全分辨率写入 R16Float 纹理。位于 focus_distance 处的像素 CoC 为零;距离焦平面越远的像素获得越大的值。
  2. 散景模糊通道 -- 以 CoC 纹理为权重采样 HDR 颜色缓冲,写入半分辨率 Rgba16Float 模糊目标,产生特征性的散景光斑形状。
  3. 合成通道 -- 使用 CoC 作为插值遮罩,将清晰的 HDR 图像与模糊结果混合,生成最终的景深输出。

配置 (DofSettings ECS 资源):

参数默认值说明
enabledfalse开关景深(关闭时零 GPU 开销)
focus_distance10.0以世界单位表示的焦平面距离
focus_range5.0focus_distance 周围保持清晰对焦的范围
bokeh_radius4.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.rsdof.wgsl

目录