AnvilKitAnvilKit

运动模糊

基于速度缓冲的逐像素运动模糊

运动模糊演示

运动模糊

基于屏幕空间速度缓冲的逐像素运动模糊。该效果从当前帧和上一帧的视图投影矩阵重建逐像素运动向量,然后沿这些向量对 HDR 图像进行模糊处理,在快速相机或物体运动时产生电影感效果。

管线:2 通道全屏处理:

  1. 速度通道 -- 读取深度缓冲,使用上一帧的视图投影矩阵和当前帧的逆视图投影矩阵重新投影每个像素。以全分辨率将逐像素屏幕空间速度输出到 Rg16Float 纹理。
  2. 模糊通道 -- 沿每个像素的速度向量采样 HDR 颜色缓冲,累积 samples 个采样点并按 intensity 缩放。将模糊结果写入 Rgba16Float 输出纹理。

配置 (MotionBlurSettings ECS 资源):

参数默认值说明
enabledfalse开关运动模糊(关闭时零 GPU 开销)
intensity0.5模糊强度乘数(越高拖影越长)
samples8每像素沿速度向量的采样数
use anvilkit_render::renderer::motion_blur::MotionBlurSettings;

// 启用更高采样数的运动模糊
app.insert_resource(MotionBlurSettings {
    enabled: true,
    intensity: 0.6,
    samples: 12,
});

文件motion_blur.rsmotion_blur.wgsl

目录