中EN
概念页

运动模糊

Motion Blur

运动模糊可看作时间域的抗锯齿:快门打开期间物体或相机的相对运动在画面上拖出模糊,没有它快速运动的物体会在帧间"跳跃"。实时做法以速度缓冲为核心,用"边收集边散布"思路:按瓦片求最大速度、扩展到邻域,再沿速度方向对每个像素采样并处理遮挡。游戏中还需考虑玩家控制下的视角,常只对物体或平移做模糊(RTR4 12.5 节)。

为什么需要

  • 电影 24 FPS 却不显卡顿:影院暗、眼睛对暗光闪烁不敏感,放映机每帧重复显示 2–4 次,最重要的是每帧本身带运动模糊(快门在每帧 1/24 秒中打开 1/40 到 1/60 秒)。快门 1/500 秒以下会产生《角斗士》《拯救大兵瑞恩》那种"超动感"效果。
  • 没有模糊的快速物体在帧间跳过许多像素,是时间上的混叠。提高帧率不能消除对运动模糊的需要,就像提高分辨率不能消除锯齿。带运动模糊的 30 FPS 往往比没有的 60 FPS 好看。
  • 模糊取决于相对运动:相机静止时运动物体模糊;相机跟拍物体时物体清晰、背景模糊。

累积与艺术化方法

  • 在快门时段内多次渲染(重新摆放相机和物体)并混合;实时中会严重降低帧率,物体快时还能分辨出各个分离图像(频闪)。随机光栅化可把鬼影换成噪点。
  • 只想"暗示运动"时:在高精度缓冲中累加 8 帧,每新帧加入新渲染并减去最早一帧,得到滑动 8 帧和,代价是每帧渲染两次。

按运动来源分类(由易到难)

来源方法
相机朝向变化世界可视作包围观察者的天空盒;整图沿某方向以速度决定宽度的滤波采样,称线积分卷积 (LIC),也用于流体可视化;绕视轴旋转用圆形模糊
相机位置变化有视差,远处物体移动慢模糊少;前进时可忽略视差用径向模糊并夸张(《刺客信条》)
横移 (pan)深度缓冲决定模糊量,越近越模糊
前进等一般相机运动Rosado:把像素屏幕位置和深度反算到世界坐标,再用上一帧相机变换回屏幕,两者之差即速度向量;合成物体可四分之一分辨率渲染以省像素处理并滤除采样噪点
物体独立运动需要逐像素速度,见下文

注:电影术语里 pan 指相机原地左右转,侧移叫 truck,竖直移动叫 pedestal。

几何化方法

直接建模模糊本身:运动粒子画成线段;挥剑时在刀刃前后沿边加两片多边形,逐顶点 alpha 从刀刃处不透明渐变到外缘全透明,模拟刀在快门期间只覆盖这些像素一部分时间。只适用于简单模型,纹理和高光也该被模糊;早期按运动方向扩展几何的做法很昂贵。

速度缓冲与重建

  • 速度缓冲:顶点着色器对模型同时应用上一帧和当前帧的模型矩阵,求位置差并变换到屏幕空间,插值得每像素速度。Wronski 讨论了速度缓冲与时间抗锯齿的结合,《毁灭战士》(2016) 也这样做。
  • 理论上把每个样本沿它在本帧中的路径拉伸成半透明线段并排序绘制:快样本覆盖面积大、每处影响小;样本越多,前后缘呈现平滑透明渐变。
  • 与景深一样,单帧图像缺少所需全部数据,会产生伪影。

McGuire 等提出、Sousa 与 Jimenez 发展的流程:

flowchart LR
  A["颜色 + 深度 + 速度缓冲"] --> B["Pass 1: 每个 8×8 瓦片求最大速度"]
  B --> C["Pass 2: 每瓦片查看 3×3 邻域取最大<br/>让快速物体影响到相邻瓦片"]
  C --> D["Pass 3: 每像素沿主速度方向采样邻域<br/>深度判断可见性, 混合前景"]
  D --> E["估计内侧区域缺失的背景并合成"]

上图概括三遍处理:先按瓦片找出可能影响该区域的最快运动,再在最终 pass 中沿该方向采样重建。

  • 最大速度小于半个像素就不需模糊;否则沿最大速度方向采样。遮挡很重要:静止物体后面的快速物体不应把模糊渗到它上面;邻居样本深度与本像素足够接近才视为可见。
  • 被模糊物体有三个区域:不透明区(始终被覆盖);外侧模糊区(原图中有背景可供混合);内侧模糊区(原图只有前景,背景缺失),用邻域中非前景样本滤波估计背景——有估计总比没有好。
  • 改进:采样位置随机抖动半像素以避免鬼影;外侧区域的真实背景也稍加模糊,避免与内侧估计背景的突兀断层;像素运动方向与 3×3 瓦片主速度不同时换用其他滤波方式 (Guertin 等)。

其他组合

  • Andreev 用速度缓冲和运动模糊在 30 FPS 帧之间插值,得到等效 60 FPS。
  • 把速度向量与弥散圆结合成统一模糊核,同时处理运动模糊与景深。
  • Munkberg 等用随机与交错采样低采样率渲染景深和运动模糊,再快速重建。

游戏中的取舍

  • 玩家直接控制视角,纯相机式运动模糊可能不合适:第一人称射击中有人觉得旋转模糊分散注意力或致晕。《使命召唤:高级战争》起提供去除相机旋转模糊的选项,美术在游戏中关闭旋转模糊、过场开启,但保留平移模糊来表现奔跑速度。
  • 可用艺术指导做真实相机做不到的事:飞船进入视野而玩家没转头时,标准运动模糊会让飞船模糊;如果假设玩家眼睛会追踪它,就应该模糊背景、保持飞船清晰。
  • 眼动追踪和更高帧率可能改进或取代运动模糊,但它带来电影感,也可表现生病、眩晕,应用起来"既是科学也是艺术"。

GEA 的视角(卷 II 12.7.2、12.5.12.1)

GEA 把运动模糊列为全屏后期效果:渲染屏幕空间速度向量缓冲,用这个向量场有选择地模糊图像,模糊本身用卷积核实现(GEA 推荐 Dale A. Schumacher 在 Graphics Gems 中的离散卷积平滑与锐化一文)(卷 II 12.7.2)。《杀戮地带 2》的 G-buffer 就含有一张屏幕空间二维运动向量,专门用于运动模糊(卷 II 12.5.12.1)。这与本页「速度缓冲与重建」的思路一致,GEA 没有展开瓦片化最大速度、重建滤波等细节。

GPU Gems 的视角:深度重建速度场的后处理运动模糊(GPU Gems 3 第 27 章)

来源:Gilberto Rosado《Motion Blur as a Post-Processing Effect》;摘录 Chapter 27. Motion Blur as a Post-Processing Effect — Gilberto Rosado。与上文 RTR4 速度缓冲/瓦片最大速度对照:本章强调无需改全场景着色器的相机运动模糊。

传统做法要么多遍画速度,要么 MRT 让所有材质输出速度——侵入大、带宽高。Rosado 用深度纹理:把像素视口坐标(xy∈[-1,1],z=深度,w=1)乘当前 VP 逆矩阵再除 w,得到世界坐标;再乘上一帧 VP,与当前视口位置作差得到速度。沿速度方向对颜色缓冲多次采样平均即模糊。近处模糊强、远处弱,符合透视。静态场景只反映相机运动;动态刚体需另写速度图(当前/上一帧变换差)。赛车等可用遮罩保护车辆清晰。同一「深度→世界」技巧也可做景深与雾后处理。

  1. realtime_rendering_4ed.pdf 第 12 章 Image-Space Effects
  2. Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
  3. Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 12 章 12.5.12.1、12.7.2 节
  4. Chapter 27. Motion Blur as a Post-Processing Effect — Gilberto Rosado
  5. developer.nvidia.com/gpugems/gpugems3/part-iv-image-effects/chapter-27-motion-blur-post-processing-effect

相关页面

图形学图像处理与后处理Image Processing & Post-Processing后处理是在渲染出图像后再用 GPU 对其做图像处理:把离屏缓冲当纹理,用全屏 pass 让像素着色器(或计算着色器)对每个像素采样邻域并加权求和。核心技巧包括可分离滤波、利用双线性插值减少采样、降采样、以及借助深度/法线保持边缘的(联合)双边滤波(RTR4 12.1 节)。图形学景深Depth of Field相机在给定设置下只有一段深度范围清晰,范围外的物体越远离越模糊。实时渲染默认是完美对焦的针孔相机,所以"景深"指对近景和远景做模糊。实用算法从单张图像出发,按深度算出每像素的弥散圆半径,分离近景与其余部分分别模糊再合成;"边收集边散布"和对高亮像素单独溅射散景是游戏中的常见做法(RTR4 12.4 节)。图形学时间重投影Temporal Reprojection重投影是在新的视点和朝向下复用前几帧已计算的样本。目的一是利用时间相干把渲染开销摊到多帧(与时间抗锯齿相关),二是当前帧来不及完成时快速生成近似帧(对 VR 防止晕动尤其重要)。分为反向重投影(从上一帧收集)和正向重投影(把上一帧散布到当前帧)(RTR4 12.2 节)。图形学抗锯齿Antialiasing渲染本质上是采样,采样频率不足就会混叠(锯齿、闪烁的"萤火虫"、车轮倒转)。屏幕空间抗锯齿在每个像素取多个样本并加权求和:超采样最直接但最贵,MSAA 每像素只着色一次,时间抗锯齿 (TAA) 把样本分散到多帧,形态学方法 (FXAA/SMAA) 作为后处理重建边缘。没有一种方法在所有方面最好。图形学实时渲染Real-Time Rendering实时渲染是在计算机上快速生成图像、并让图像随用户输入即时变化的技术。RTR4 认为它由三个要素共同定义:交互性、三维空间感,以及图形加速硬件 (GPU)。图形学剔除技术Culling Techniques剔除 (culling) 是在渲染前尽快去掉对最终图像没有贡献的部分。本页讲几何类剔除:背面剔除(含成簇背面剔除与法线锥)、视锥剔除(层次化、平面掩码)、室内场景的入口剔除,以及牺牲质量换速度的细节剔除和小三角形剔除。更复杂的遮挡剔除见 遮挡剔除。图形学对象空间与纹理空间着色Object- & Texture-Space Shading对象空间/纹理空间着色把着色计算的频率与几何采样(光栅化)的频率解耦:在物体的参数化(纹理图表)上计算着色并存入纹理,最终光栅化时只查表。思想源自 Pixar 的 Reyes 离线渲染器的微多边形着色。它能消除 quad 过度着色、按屏幕覆盖率控制着色量、在帧间复用着色结果,甚至让着色以低于光栅化的帧率异步运行;代价是物体必须有唯一的 uv 图表、先着色后遮挡带来浪费等。图形学VR 渲染注意事项VR Rendering Considerations在单屏上效果良好的渲染技术,放到随头部移动的双目显示上可能失效甚至引起不适。本页汇总 RTR4 第 21.4 节列出的需要修改或避免的技术:HUD 深度、凹凸与视差贴图、公告板与天空盒、色调映射与屏幕空间效果、镜面高光视差、抗锯齿选择、色带、运动模糊与景深,以及混合现实中的光照匹配。核心原则:严格遵循厂商头部模型和投影矩阵,任何会让两眼图像难以融合或与前庭感觉冲突的效果都要谨慎。图形学时间扭曲与异步重投影Timewarp & Asynchronous ReprojectionVR 中即使追踪完美,生成一帧仍需时间;掉帧会造成抖动 (judder)。厂商提供基于图像的补偿:只修正头部旋转的二维时间扭曲 (timewarp)、利用深度做三维重投影的位置时间扭曲、外推缺失帧的空间扭曲 (spacewarp),并常以异步方式运行作为掉帧保险。配合晚期朝向扭曲、late latching 和 CPU/GPU 流水线(running start / adaptive queue ahead),在不掉帧的前提下进一步缩短动作到光子的延迟。游戏开发 · UE5TSR 与抗锯齿方案Temporal Super Resolution & Anti-AliasingUE5 提供四种抗锯齿:时间超分辨率 (Temporal Super Resolution, TSR,默认)、时间抗锯齿上采样 (TAAU)、快速近似抗锯齿 (FXAA) 和仅前向渲染可用的多重采样抗锯齿 (MSAA)。TSR 是与平台无关的时间性上采样器,用低内部分辨率渲染,借助历史帧累积细节输出接近原生的画面,把节省的 GPU 时间留给 Nanite 与 Lumen。游戏开发 · UE5后处理体积与效果Post Process Volumes & EffectsUE 的后处理效果(调色、色调映射、泛光、曝光、景深、运动模糊等)通过后处理体积 (Post Process Volume) 或相机设置来指定,即使关卡里没有体积,引擎也有默认的后处理设置。多个体积重叠时按优先级 (Priority) 覆盖,用混合半径 (Blend Radius) 和混合权重 (Blend Weight) 平滑过渡;Infinite Extent (Unbound) 让体积作用于整个场景。游戏美术曝光与相机模拟Exposure & Camera Simulation现以第 3 版 Ch6「Cameras and Exposure」为准。 覆盖光圈/景深、快门/运动模糊、感光度与颗粒、摄影曝光(互易律、Zone System、直方图、EV、包围曝光),以及镜头瑕疵匹配。物理灯光(IES)必须配合理曝光才可信。游戏美术镜头与相机瑕疵Lens & Camera ImperfectionsDinur Ch10(光学特征)+ Ch18(合成侧施加):散焦/景深与 Bokeh、畸变、色差、光晕与衍射尖刺、运动模糊、颗粒等——正是「像照片」而非「像眼睛」的关键。算法细节见图形学;本页列该有哪些瑕疵、何时克制。

输入关键词开始搜索

滚轮或双指缩放 · 拖动平移 · 双击放大 / 还原