中EN
概念页

实时渲染

Real-Time Rendering

更新于 2026-10-12 约 3 分钟基础帧率延迟

实时渲染是在计算机上快速生成图像、并让图像随用户输入即时变化的技术。RTR4 认为它由三个要素共同定义:交互性、三维空间感,以及图形加速硬件 (GPU)。

三个要素

  1. 交互性:画面出现、用户做出反应、反应又影响下一帧画面,这个循环快到用户感觉不到单张图像,而是沉浸在连续的过程里。
  2. 三维:实时渲染通常指生成三维图像,仅仅"响应快"不足以称为实时渲染。
  3. 图形加速硬件:很多人把 1996 年的 3Dfx Voodoo 1 显卡视为消费级三维图形的真正起点;如今电脑、平板和手机都内置了图形处理器。

帧率 (FPS) 和刷新率 (Hz)

  • 帧率:每秒显示多少张新图像,单位是 FPS。1 FPS 几乎没有交互感;大约 6 FPS 开始有交互感;游戏通常以 30、60、72 FPS 或更高为目标,这时玩家关注的是操作与反馈本身。
  • 刷新率:显示设备每秒刷新多少次,单位是 Hz,它和帧率是两回事。例如电影是 24 FPS,但放映机用快门把每帧显示 2 到 4 次以避免闪烁,快门照亮三次就是 72 Hz。LCD 显示器同样把刷新率和显示帧率分开。

为什么要更高的帧率:延迟

24 FPS 的画面看着也许能接受,但更高的帧率对降低响应时间很重要。书中提到,只要 15 毫秒的延迟就可能拖慢并干扰交互。所以 VR 头显通常要求 90 FPS,以尽量减少延迟。

在游戏开发中的意义

  • 帧率目标直接决定每帧的时间预算:30 FPS 约 33.3 ms,60 FPS 约 16.7 ms,90 FPS 约 11.1 ms(由 1000 ms ÷ 帧率算出)。渲染、逻辑、物理等所有工作都要挤在这个预算里。
  • 选择帧率目标是一种取舍:更高的帧率带来更好的手感和更低的延迟,但每帧能用来提升画质的时间更少。动作类、竞技类和 VR 游戏通常更看重帧率。
  • RTR4 全书的主线就是两件事:提高速度和提升画质,同时说明加速算法和图形 API 的能力与限制。

GEA 的视角:16 毫秒里的渲染(卷 II 第 11 章引言)

  • GEA 把实时三维渲染定义为在交互帧率下按所需的质量和真实感生成图像、制造运动的错觉:至少 30 FPS,游戏行业更常见的是 60 FPS 或更高。60 FPS 时一帧只有 16 毫秒多一点(卷 II 第 11 章引言)。
  • 而且引擎每帧不只渲染,还要更新游戏逻辑、动画、碰撞检测和物理、合成音频等,所以渲染引擎要同时满足两个同样重要的要求:画面高度细致、照片级真实,以及非常非常快。对比之下,影视渲染器渲染一帧往往要几分钟到几小时。这与本页「在游戏开发中的意义」中按帧率算时间预算的说法一致(帧预算的引擎侧见 游戏循环与更新方法)。
  • GEA 还指出,实时三维图形可能是游戏引擎各项技术中资料最完善的一项,所以它的两章只求建立整体理解、作为进一步学习的跳板。渲染问题本身的几种建模方式见 图形栈与渲染引擎架构。
  1. realtime_rendering_4ed.pdf 第 1 章 Introduction(第 1–2 页)
  2. Game_Engine_Architecture_4th_Edtion_Volume_2_-_Jason_Gregory.pdf
  3. Jason Gregory《Game Engine Architecture》第 4 版(2026)卷 II 第 11 章引言

相关页面

图形学渲染管线Rendering Pipeline渲染管线是实时图形的核心:给定虚拟相机、三维物体、光源等,把场景转换成一张二维图像。RTR4 把它粗分为四个功能阶段:应用、几何处理、光栅化、像素处理,各阶段并行执行,整体速度由最慢的阶段决定。图形学GPU 并行架构GPU Parallel ArchitectureGPU 为吞吐量而设计:芯片大部分面积是成千上万个着色器核心,而不是缓存和控制逻辑。它靠在大量线程组 (warp/wavefront) 之间快速切换来隐藏访存延迟,用 SIMD 让一组线程锁步执行同一条指令。理解占用率和线程分歧,是写出高效着色器的关键。游戏数学齐次坐标与矩阵约定Homogeneous Coordinates & Matrix Conventions实时渲染用 4×4 矩阵和四元素齐次坐标统一表示点和方向:方向向量 w=0,点 w=1。这样线性变换与平移可以合成为仿射变换并连乘。RTR4 采用列向量记法、右手观察坐标系;DirectX 采用行向量记法,书中强调这只是记法差异。图形学渲染瓶颈定位与性能度量Bottleneck Location & Performance Measurement渲染管线中最慢的阶段(瓶颈)决定整体吞吐量。优化就是"找到瓶颈 → 优化到瓶颈转移 → 重复",并让非瓶颈阶段做到与瓶颈同样多的工作以换取画质。定位靠逐阶段增减负载的实验和性能工具;度量要用毫秒帧时间而不是 FPS。两条箴言:了解你的架构 (KNOW YOUR ARCHITECTURE);测量、测量、再测量。图形学细节层次Level of Detail细节层次 (LOD) 在物体对图像贡献变小时改用更简单的表示。LOD 系统由三部分组成:生成(简化或手工制作多个版本)、选择(按距离、投影面积等收益函数挑选)、切换(尽量减少跳变 popping)。LOD 主要减少顶点处理,也通过减少 quad 过度着色降低像素开销;进一步还可在预算约束下全局选择 LOD,实现时间关键(恒定帧率)渲染。图形学VR 与 AR 显示基础VR & AR Display Fundamentals虚拟现实 (VR) 完全替换用户所见的世界,增强现实 (AR) 把合成物体融入真实世界,二者常合称 XR。本页介绍与渲染相关的硬件与物理要素:追踪与显示设备、"动作到光子"延迟及其导致的模拟器晕动症、姿态预测、镜头光学畸变与色差的软件补偿、滚动与全局显示,以及立体视觉中的辐辏-调节冲突与瞳距。这些约束决定了 VR 渲染为何必须高帧率、低延迟并严格依赖厂商 SDK。图形学时间扭曲与异步重投影Timewarp & Asynchronous ReprojectionVR 中即使追踪完美,生成一帧仍需时间;掉帧会造成抖动 (judder)。厂商提供基于图像的补偿:只修正头部旋转的二维时间扭曲 (timewarp)、利用深度做三维重投影的位置时间扭曲、外推缺失帧的空间扭曲 (spacewarp),并常以异步方式运行作为掉帧保险。配合晚期朝向扭曲、late latching 和 CPU/GPU 流水线(running start / adaptive queue ahead),在不掉帧的前提下进一步缩短动作到光子的延迟。图形学运动模糊Motion Blur运动模糊可看作时间域的抗锯齿:快门打开期间物体或相机的相对运动在画面上拖出模糊,没有它快速运动的物体会在帧间"跳跃"。实时做法以速度缓冲为核心,用"边收集边散布"思路:按瓦片求最大速度、扩展到邻域,再沿速度方向对每个像素采样并处理遮挡。游戏中还需考虑玩家控制下的视角,常只对物体或平移做模糊(RTR4 12.5 节)。游戏开发多线程渲染与任务系统Multithreaded Rendering & Task SystemsCPU 时钟频率约在 2003 年停在 3.4 GHz 附近后,性能来自多核。应用阶段的优化一是让代码与内存访问更缓存友好,二是利用多核:多处理器流水线(时间并行,提高吞吐但增加延迟)、并行处理(空间并行,延迟更低)以及两者结合的任务系统;图形 API 用命令缓冲让多个线程并行录制绘制命令,新一代 API(DirectX 12、Vulkan、Metal)把更多责任交给应用以降低驱动开销。图形学图形栈与渲染引擎架构Graphics Stack & Rendering Engine Architecture渲染引擎要解决的"渲染问题"是:给定由场景元素、虚拟光源和虚拟相机组成的虚拟世界,生成相机看到的二维彩色图像。GEA 把它拆成可见性问题和光照问题,按解法把引擎分为光线追踪、深度缓冲光栅化、辐射度和混合四类;光栅化引擎通常采用立即模式的两层结构:下层是图形管线,上层是负责剔除、提交几何和设置着色器参数的应用层。本页讲这套整体架构,管线内部见 渲染管线。游戏开发游戏循环与更新方法Game Loop & Update Method游戏循环 (Game Loop) 让游戏时间的推进与玩家输入和处理器速度脱钩:每一轮非阻塞地处理输入、更新状态、渲染,并跟踪真实时间来控制节奏;最常推荐的做法是“固定更新步长、可变渲染”。更新方法 (Update Method) 是它的搭档:世界维护一组对象,每个对象实现一个模拟“一帧”行为的 update(),每帧依次调用。两者和组件模式一起常被视为游戏引擎的核心。

输入关键词开始搜索

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