中EN
概念页

时间重投影

Temporal Reprojection

更新于 2026-10-11 约 3 分钟后处理重投影时间相干帧插值速度缓冲

重投影是在新的视点和朝向下复用前几帧已计算的样本。目的一是利用时间相干把渲染开销摊到多帧(与时间抗锯齿相关),二是当前帧来不及完成时快速生成近似帧(对 VR 防止晕动尤其重要)。分为反向重投影(从上一帧收集)和正向重投影(把上一帧散布到当前帧)(RTR4 12.2 节)。

反向重投影

  • 渲染三角形时同时计算当前帧 tt 和上一帧 t−1t-1 的顶点位置;像素着色器插值出两帧的 z/wz/w,若足够接近,就在上一帧颜色缓冲中对应位置做双线性查找,复用着色结果而不重新计算。
  • 之前被遮挡、现在可见的区域没有可用结果,称缓存未命中,此时重新着色填洞。
  • 复用假设着色与物体、相机、光源运动无关,所以不应复用太多帧。Nehab 等建议复用几帧后自动刷新:把屏幕分成 nn 组(每组为伪随机选取的 2×2 像素块),每帧更新一组。
  • 变体:存速度缓冲,全部测试在屏幕空间完成,避免对顶点做两次变换。

滑动平均

质量更好的做法是逐渐淘汰旧值:

cf(pt)=α c(pt)+(1−α) c(pt−1)c_f(\mathbf{p}_t)=\alpha\,c(\mathbf{p}_t)+(1-\alpha)\,c(\mathbf{p}_{t-1})

c(pt)c(\mathbf{p}_t) 为新着色值,c(pt−1)c(\mathbf{p}_{t-1}) 为反向重投影得到的上一帧颜色,cfc_f 为滤波后的最终颜色。Nehab 等在某些场合用 α=3/5\alpha=3/5,但建议按渲染内容尝试不同值。特别推荐用于空间抗锯齿、软阴影和全局光照。

正向重投影

  • 从 t−1t-1 的像素出发投影到 tt(散布 scatter),不需要双重顶点着色;反向方法则是收集 (gather)。
  • 同样要处理新暴露区域,通常用启发式补洞(从周围像素推断)。Yu 等用它廉价地计算景深。
  • Didyk 等不补洞,而是按运动向量在 t−1t-1 上自适应生成网格,带深度测试光栅化投影到 tt,遮挡和折叠自然被处理;用于由左眼图像重投影生成右眼图像(两眼相干性高)以得到 VR 立体图像对。之后又提出感知驱动的时间上采样,例如把 40 Hz 提高到 120 Hz。

双帧插值

Yang 与 Bowles 从 tt 和 t+1t+1 两帧投影到中间时刻 t+δtt+\delta t(δt∈[0,1]\delta t\in[0,1]),两帧信息使遮挡处理更好;耗时不到 1 ms,游戏中用于把 30 FPS 提升到 60 FPS。《杀戮地带:暗影坠落》(Valient) 也用重投影加速渲染。

取舍

方式方向优点难点
反向重投影收集符合 GPU 收集模式,可用深度判断有效性需两帧顶点变换或速度缓冲;需定期刷新
正向重投影散布无需双重顶点着色洞需启发式填补或自适应网格
双帧插值两帧 → 中间帧遮挡处理更好需要两帧数据
  1. realtime_rendering_4ed.pdf 第 12 章 Image-Space Effects

相关页面

图形学抗锯齿Antialiasing渲染本质上是采样,采样频率不足就会混叠(锯齿、闪烁的"萤火虫"、车轮倒转)。屏幕空间抗锯齿在每个像素取多个样本并加权求和:超采样最直接但最贵,MSAA 每像素只着色一次,时间抗锯齿 (TAA) 把样本分散到多帧,形态学方法 (FXAA/SMAA) 作为后处理重建边缘。没有一种方法在所有方面最好。图形学图像处理与后处理Image Processing & Post-Processing后处理是在渲染出图像后再用 GPU 对其做图像处理:把离屏缓冲当纹理,用全屏 pass 让像素着色器(或计算着色器)对每个像素采样邻域并加权求和。核心技巧包括可分离滤波、利用双线性插值减少采样、降采样、以及借助深度/法线保持边缘的(联合)双边滤波(RTR4 12.1 节)。图形学运动模糊Motion Blur运动模糊可看作时间域的抗锯齿:快门打开期间物体或相机的相对运动在画面上拖出模糊,没有它快速运动的物体会在帧间"跳跃"。实时做法以速度缓冲为核心,用"边收集边散布"思路:按瓦片求最大速度、扩展到邻域,再沿速度方向对每个像素采样并处理遮挡。游戏中还需考虑玩家控制下的视角,常只对物体或平移做模糊(RTR4 12.5 节)。图形学环境光遮蔽Ambient Occlusion环境光遮蔽 (AO) 是余弦加权后半球上未被遮挡的比例,用来在光照缺乏方向变化时仍给出形状线索(缝隙变暗)。它由 Landis 在 ILM 为《珍珠港》开发,可离线烘焙,也可在物体空间或屏幕空间动态计算(SSAO、HBAO、GTAO 等)。AO 适合漫反射和平滑环境光,不适合点光源或小面光源的可见性(RTR4 11.3 节)。图形学屏幕空间反射Screen-Space Reflections屏幕空间反射 (SSR) 沿反射方向在深度缓冲中步进求交,命中后从颜色缓冲读取入射辐射亮度。由于镜面瓣窄、只需反射方向附近的光,屏幕数据比漫反射情况更可能包含所需信息。它最早由 Sousa 等提出,常作为镜面 GI 的第一层,失败时退回反射探针和全局探针(RTR4 11.6.5 节)。图形学参与介质与体积散射Participating Media & Volumetric Scattering参与介质是充满粒子、通过吸收和散射参与光传输的体积,如空气、水、雾、烟、云;皮肤、蜡等致密材质也有强烈散射——"一切都是散射"。实时渲染主要考虑单次散射:沿视线积分透射率衰减后的内散射光,内散射由相位函数和对光源的可见性(不透明阴影 × 体积阴影)决定。通用实时方案把介质材质和散射结果体素化到相机视锥体素 (froxel) 中逐片累积(RTR4 14.1、14.3、14.8 节)。图形学天空与云渲染Sky & Cloud Rendering天空颜色和空气透视来自空气分子的瑞利散射,太阳周围的光晕来自近地大颗粒的米氏散射。实时方案有解析拟合模型和基于预计算透射率/散射查找表的物理模型;云则从全景贴图、粒子发展到用程序化噪声构建、光线步进的参与介质层,并以倍频程近似多次散射(RTR4 14.4 节)。图形学时间扭曲与异步重投影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。图形学实时次表面散射Real-Time Subsurface Scattering蜡、皮肤、牛奶等高散射固体中,光在离入射点不远处重新射出;当偏移大于一个像素时就不能再用 BRDF 表示。实时方法从便宜的包裹光照、法线模糊、预积分皮肤,到纹理空间/屏幕空间扩散,再到针对大尺度散射的深度图技术(RTR4 14.6 节)。

输入关键词开始搜索

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