运动模糊 (Motion Blur)
运动模糊效果可模拟现实世界摄像机在拍摄运动速度比摄像机曝光时间更快的对象时出现在图像中的模糊情况。这种情况通常是由快速移动对象或长曝光时间引起的。
使用运动模糊
运动模糊效果使用 HDRP 速度缓冲区中的速度。这意味着要使运动模糊生效,必须在 Unity 项目中启用运动矢量。如需了解如何启用运动矢量,请参阅“运动矢量”文档。
运动模糊使用体积 (Volume) 框架,因此若要启用和修改运动模糊属性,必须将运动模糊覆盖添加到场景中的体积。要向体积添加运动模糊,请执行以下操作:
- 在 Scene 视图或 Hierarchy 视图中,选择一个包含 Volume 组件的游戏对象以在 Inspector 中查看该游戏对象。
- 在 Inspector 中,导航到 Add Override > Post-processing,然后单击 Motion Blur。HDRP 现在会将运动模糊应用于此体积所影响的任何摄像机。
运动模糊包含必须手动显示的更多选项。
API
要在运行时访问和控制此覆盖,请使用体积脚本 API。由于体积系统的工作原理,可以使用与标准 Unity 组件不同的方式来编辑属性。也需要注意其他细微差别,例如每个属性都有一个 overrideState。这个参数向体积系统指示是使用你设置的属性值,还是使用存储在体积配置文件中的默认值。有关如何正确使用 API 的信息,请参阅体积脚本 API。
属性
属性 | 描述 |
---|---|
Intensity | 设置运动模糊效果的强度。这可以缩放速度缓冲区中存在的速度的大小。将此值设置为 0 将禁用运动模糊。 |
Quality | 指定用于此效果的质量级别。每个质量级别应用不同的预设值。Unity 还会阻止你编辑预设覆盖的属性。如果你希望为每个属性设置自己的值,请选择 Custom。 |
Sample Count | 设置 HDRP 用于计算运动模糊效果的最大采样点数。较高的值可提高质量并产生更平滑的模糊。较高的值也会增加该效果的资源消耗量。 |
Maximum Velocity | 使用滑动条设置 HDRP 允许除摄像机旋转以外的所有运动模糊源的最大速度(以像素为单位)。这会将超出此阈值的任何值限制为阈值。较高的值会产生更强烈的模糊,并增加资源消耗量。 |
Minimum Velocity | 使用滑动条设置触发运动模糊的最小速度(以像素为单位)。较高的值意味着 HDRP 不会为移动缓慢的游戏对象计算运动模糊。这样可以降低消耗的资源量。 |
Camera Motion Blur | 指示摄像机的移动是否会导致运动模糊。禁用此属性可阻止摄像机移动导致运动模糊。 |
Camera Clamp Mode | 指定 HDRP 用来钳制从摄像机移动/旋转产生的运动矢量的方法。请注意,尽管这会特别钳制来自摄像机的运动矢量,但这也可能会改变相对于摄像机的运动矢量速度。例如,以摄像机为父对象的游戏对象(因此会随摄像机移动和旋转)在摄像机移动时可能不具有零运动矢量。选项包括: • None:从摄像机产生的运动矢量分量不会被区别对待。 •Rotation:从摄像机旋转产生的运动矢量分量被单独钳制。 •Translation:从摄像机移动产生的运动矢量分量被单独钳制。 •Separate Translation And Rotation:从摄像机旋转和移动产生的运动矢量分量通过钳制选项被单独钳制。 •Full Camera Motion Vector:从摄像机完整移动(旋转和平移)产生的完整运动矢量分量与对象运动分开钳制,但具有单个阈值。 |
- Rotation Clamp | 使用滑动条设置 HDRP 允许摄像机旋转对游戏对象速度产生影响的最大速度。该值以屏幕占比表示。较高的值会使摄像机旋转,使模糊范围更广。 仅当 Camera Clamp Mode 设置为 Rotation 或 Separate Translation And Rotation 时,此属性才有意义。 |
- Translation Clamp | 使用滑动条设置 HDRP 允许摄像机移动对游戏对象速度产生影响的最大速度。该值以屏幕占比表示。较高的值会使摄像机旋转,使模糊范围更广。 仅当 Camera Clamp Mode 设置为 Translation 或 Separate Translation And Rotation 时,此属性才有意义。 |
- Motion Vector Clamp | 使用滑动条设置 HDRP 允许摄像机移动变化对游戏对象速度产生影响的最大速度。该值以屏幕占比表示。较高的值会使摄像机旋转,使模糊范围更广。 仅当 Camera Clamp Mode 设置为 Full Camera Motion Vector 时,此属性才有意义。 |
详细信息
有多种选项可用来降低运动模糊对性能的影响。您可以选择(根据有效性列出):
- 减小 Sample Count。更少的样本数量可以直接转化为更高的性能。但必须注意,该算法会限制最大样本数量,使两个样本之间的距离都不小于一个像素,因此高样本数不会对缓慢移动的游戏对象产生太大影响。
- 增大 Minimum Velocity。增大此阈值可以使 HDRP 减少屏幕模糊。如果许多游戏对象的速度低于此阈值,则 HDRP 不会为这些游戏对象计算运动模糊,并且效果的资源消耗量会降低。
- 减小 Maximum Velocity 和 Camera Clamp 参数。这样会产生不太强烈的模糊,从而带来对 GPU 更友好的访问模式。
如果选择的是 None 以外的 Camera Clamp Mode,则通常与摄像机运动有关的运动矢量将不再存在。例如,如果一个对象将摄像机作为父对象,并因此完美跟随摄像机,则通常该对象的运动矢量的长度接近于零。但是,如果摄像机使用不同的对象钳制方法,则在达到钳制点时,最终速度长度可能不会为零。