运动模糊
基于速度缓冲的逐像素运动模糊
运动模糊
基于屏幕空间速度缓冲的逐像素运动模糊。该效果从当前帧和上一帧的视图投影矩阵重建逐像素运动向量,然后沿这些向量对 HDR 图像进行模糊处理,在快速相机或物体运动时产生电影感效果。
管线:2 通道全屏处理:
- 速度通道 -- 读取深度缓冲,使用上一帧的视图投影矩阵和当前帧的逆视图投影矩阵重新投影每个像素。以全分辨率将逐像素屏幕空间速度输出到
Rg16Float纹理。 - 模糊通道 -- 沿每个像素的速度向量采样 HDR 颜色缓冲,累积
samples个采样点并按intensity缩放。将模糊结果写入Rgba16Float输出纹理。
配置 (MotionBlurSettings ECS 资源):
| 参数 | 默认值 | 说明 |
|---|---|---|
enabled | false | 开关运动模糊(关闭时零 GPU 开销) |
intensity | 0.5 | 模糊强度乘数(越高拖影越长) |
samples | 8 | 每像素沿速度向量的采样数 |
use anvilkit_render::renderer::motion_blur::MotionBlurSettings;
// 启用更高采样数的运动模糊
app.insert_resource(MotionBlurSettings {
enabled: true,
intensity: 0.6,
samples: 12,
});文件:motion_blur.rs、motion_blur.wgsl