Base-渲染方案演进总览
渲染技术不是一条线,而是多条线并行演进:光照、GI、反射、AO、阴影、抗锯齿……每一条都被”硬件能力、美术流程、标准化需求”推着走,最终收敛成今天各引擎里那套熟悉的组合。
这篇把游戏行业常用的渲染技术按维度整理成演进链——每条链给出”从哪来 → 到哪去”,每一站一句话原理、代表引擎或论文,末尾汇总成总表。引擎不限于 Unity/UE:id Tech、CryEngine、Frostbite、Source、Decima、RE 引擎都在谱系里。
它和另外几篇是互补关系:Base-引擎梳理 是”知识地图”(按技术分类 + 链接),Base-PBR 是”光照原理”,Unity-APV体积探针 是”GI 终点方案深挖”。这篇是所有维度合起来的总演进图——GI 的全时间线也并在这里,不再单独成文。
年份以各方案的公开论文 / 引擎发布为准,个别存在出入,请以原始资料核对。
0. 总览:一张表看完全部
| 维度 | 演进链 | 当前主流 / 终点 |
|---|---|---|
| 光照 | Lambert → Phong → Blinn-Phong → Cook-Torrance 微表面 → PBR + IBL | PBR(D×F×G)+ split-sum |
| 间接光 GI | 烘焙 lightmap → 探针(SH) → 体积探针(APV/VLM) → 实时 GI(Lumen/RTGI) | 烘焙守静态,Lumen/RTGI 管动态 |
| 反射 | 静态 cubemap → 反射探针 → SSR → 光追反射 / Lumen 反射 | RT / 软件光追反射 |
| AO | 烘焙 AO → SSAO → HBAO/HBAO+ → GTAO → 光追 AO / SDF AO | GTAO + 光追 AO 兜底 |
| 阴影 | ShadowMap → PCF → PCSS → CSM → VSM/MSM → SDF 阴影 → 光追阴影 | CSM 为主 + 光追补精度 |
| 抗锯齿 | MSAA → FXAA/SMAA → TAA → 超分(DLSS/FSR/TSR/XeSS) | TAA + 超分 |
| 色调映射 | 直接映射 → Reinhard → Filmic → ACES | ACES / Filmic |
| 体积/大气 | 高度雾 → 体积雾 → 参与介质 | 体积雾 + 大气散射 |
下面按维度展开。
1. 光照与着色:Phong → Blinn-Phong → PBR
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| 1975 | Phong | Bui Tuong Phong | 环境 + 漫反射 + 逐分量高光,光照第一次可计算 |
| 1977 | Blinn-Phong | Jim Blinn | 用半程向量算高光,比 Phong 快,成为经典近似 |
| 1982 | Cook-Torrance | Cook & Torrance | 微表面理论 + D×F×G,把”物理”引入反射模型 |
| 2012 | Disney Principled | Burley | 一套面向美术的参数化 PBR 基底(metallic/roughness 雏形) |
| 2013 | split-sum IBL | UE4 Real Shading(Karis) | 镜面环境光拆成预过滤 cubemap + BRDF LUT |
| 2014 | PBR 主流化 | UE4 正式版 / Unity 5 | 金属度工作流 + IBL 成为引擎默认 |
- 驱动力:从”每个引擎自己调一套高光公式”到”一套物理约束 + 统一参数”。PBR 不是某个 Shader,而是一套让材质在任意光照环境里行为一致的约束——细节见 Base-PBR。
- 扩展:Clear Coat、Sheen、Anisotropy、次表面、透射,都是在基础 BRDF 上叠光学层次。
2. 间接光 GI:烘焙 → 探针 → 实时(详版)
GI 是变化最多、也最能拉开画面上限的一条线。它内部其实是四条独立的子线在走,先建立坐标系,再按时代看。
2.1 四条主线(先建立坐标系)
| 主线 | 内容 | 终点 |
|---|---|---|
| A. 漫反射间接光 | 烘焙 lightmap → 全局 IBL → 探针(SH)→ 体积探针(APV / VLM)→ 实时 GI | Lumen / RTGI |
| B. 镜面间接光 | 静态 cubemap → 反射探针 → prefiltered env + BRDF LUT → SSR → RTGI 反射 | RTGI 反射 |
| C. 球谐(SH) | 论文 → 游戏落地(环境光 / 探针存储)→ 被体积探针与实时方案吸收 | 仍活在探针数据里 |
| D. 实时 GI 尝试 | LPV → VXGI / SSGI → RTGI → Lumen | Lumen 成主流 |
A 和 B 目标不同:A 决定”暗部有没有环境色”,B 决定”高光反射是什么”;C 不是方案而是存储手段,A/B 都借它存数据;D 是从概念走向工程的独立尝试线,成败取决于硬件跟没跟上。
2.2 五个时代
时代一:无 GI / 纯直接光(1990s 初 – 1996)
画面 = 直接光 + 美术手工摆的假环境光、假 AO(把暗角画进贴图)。没有间接光照概念,硬件也没有计算能力,靠手艺硬扛。
时代二:烘焙 GI 奠基(1996–2007)
| 年份 | 事件 | 意义 |
|---|---|---|
| 1996 | Quake lightmap | 静态光照预烘焙到纹理,第一代”烘焙 GI” |
| 2002 | SH / PRT 论文(Sloan) | 球谐表达光照的数学基础,后来成为探针存储格式 |
| 2004 | Source radiosity lightmap;Halo 2 用 SH | 烘焙漫反射 GI 进主流;SH 首次大规模进游戏 |
| 2005–07 | 主流游戏 = lightmap(静态)+ SH 环境光(动态) | 确立”静态烘焙、动态近似”的分工 |
时代三:IBL 成型 + PBR 标准(2008–2015)
| 年份 | 事件 | 意义 |
|---|---|---|
| 2008–12 | Cubemap 环境反射(IBL)进主流 | 镜面反射从”摆反射面”变成”采样环境贴图” |
| 2009 | LPV(CryEngine 3) | 实时 GI 首次工程化,概念超前但未普及 |
| 2013 | PBR + split-sum(UE4) | 镜面 IBL 标准化:prefiltered env + BRDF LUT |
| 2014 | UE4 正式版:Reflection Captures + Lightmass | IBL 镜面 + 烘焙同引擎定型 |
| 2015 | Unity 5:Enlighten + Reflection Probes | Unity 首次”实时 GI”卖点 |
时代四:探针体系成熟 + 实时 GI 的第一次尝试(2015–2020)
| 年份 | 事件 | 意义 |
|---|---|---|
| 2015–16 | Light Probes + LPPV | 动态物体从”假环境色”升级为”空间探针” |
| 2016–17 | UE4 VLM + ILC 持续完善 | UE 侧动态物体 = 烘焙体积探针 |
| 2014–17 | VXGI(NVIDIA,实验性质) | 体素圆锥追踪,实时 GI 又一次尝试 |
| 2018 | DXR / RTX 发布 | 硬件终于能算光线求交,转折点 |
| 2018 | SSGI 实验;DDGI 论文 | 屏幕空间 GI 试探;动态探针实时 GI 的理论基础 |
| 2019–20 | Enlighten 开始被 Unity 边缘化 | 预计算实时 GI 的维护成本 > 收益 |
| 2020 | UE4.25 RTGI(DXR)正式 | 真正的实时 GI 第一次进主流引擎 |
时代五:实时 GI 主推 + 烘焙方案重新定义(2020–今)
| 年份 | 事件 | 意义 |
|---|---|---|
| 2021–22 | UE5 Lumen 发布并成为默认 GI | 实时 GI 首次”开箱即用” |
| 2023–24 | Unity 弃用并移除 Enlighten | Unity 明确不做引擎级实时 GI |
| 2023 | Unity APV 预览(HDRP) | 烘焙体积探针的最终形态 |
| 2024 | Unity 6:APV 正式 | 烘焙路线在 Unity 内收敛到 APV 一个方案 |
| 2024–今 | RTGI 成为高端 PC / 主机选项 | 实时 GI 两条腿:Lumen(软件)与 RTGI(硬件) |
2.3 关键时间线(GI)
1 | |
2.4 怎么判断一个新 GI 方案(对 TA 的启示)
判断程序三步:
- 先问属于哪条主线:烘焙的(换存储)→ 探针优化;实时的(换计算)→ 硬件 / 算法优化。主线决定它为什么存在、何时被替换。
- 再问静态还是动态:场景不动,烘焙探针又快又稳;光照要动,才轮到实时 GI 出场。
- 最后看成本:烘焙方案用”烘焙时间 + 探针内存”换”运行时开销低”;实时方案用”GPU 开销 + 降噪”换”不用等烘焙、光源随便动”。
| 场景类型 | 推荐方案 | 理由 |
|---|---|---|
| 静态室内 | APV / Lightmap | 烘焙快、稳、便宜 |
| 动态物体多 | APV(接动态)或 VLM | 探针插值就是为动态物体设计的 |
| 光照要动 / 昼夜循环 | Lumen / RTGI | 只有实时 GI 能不用重新烘焙 |
| 高端 PC / 主机画质上限 | Lumen + 硬件光追 | 软件 + 硬件的组合拳 |
三个常被问错的点:
- APV 不是新发明,是”烘焙漫反射 IBL”主线(2002 年 SH + 2015 年探针思路)收敛后的终点形态。
- Lumen 没淘汰 APV:静态场景烘焙仍然更快更稳,Lumen 只在”光照要动”时才值得。
- IBL 的镜面路线不会消失:反射探针 + prefiltered env 是 PBR 的地基,Lumen 和 RTGI 也绕不开它。
驱动整条线的力量:硬件算力(lightmap 算不起实时 → RTX 够求交)→ 美术流程(画假 AO → 烘焙等半天 → “光源可调、别等烘焙”)→ 引擎路线分歧(UE 押注实时 Lumen,Unity 押注烘焙 APV)。
3. 反射 / 环境光:cubemap → 反射探针 → SSR → 光追
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| 1976 | 环境贴图 | Blinn & Newell | 用一张贴图假装环境反射,IBL 的起点 |
| 2000s | 全场景 cubemap | 各引擎 | 采样一张环境图当反射,不分区域 |
| 2014 | Reflection Probe | UE4 / Unity | 场景分区域放探针,运行时混合 |
| — | Parallax Corrected | 反射探针增强 | 按场景盒子修正反射位置,消除”贴图感” |
| 2010s | SSR | 主流引擎(2015 Frostbite Stochastic 定型) | 屏幕空间步进深度,反射屏幕内可见的东西 |
| 2020 | RT 反射 | UE4.25(DXR) | 光追求交,精确反射屏幕外物体 |
| 2021 | Lumen 反射 | UE5 | 软件光追(SDF + 屏幕),无硬件光追也能跑 |
| — | 平面反射 | 各引擎 | 针对水面/地面等平面的特化方案 |
- 驱动力:从”静态贴图”到”能反映场景变化的探针”,再到”真正算出来”的 SSR / 光追。SSR 便宜但只能看屏幕内,RT 精确但有硬件门槛,Lumen 用软件追踪折中。
- 这条线的终点仍是 IBL 分工:反射探针 + prefiltered env 是 PBR 的地基,实时 GI 也绕不开。SSR 细节见 Unity-URP延迟渲染SSR。
4. AO:烘焙 → SSAO → HBAO → GTAO → 光追
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| 2000s | 烘焙 AO | 各引擎 | 离线算环境遮蔽,烘焙进贴图 |
| 2007 | SSAO | Crytek(孤岛危机) | 屏幕空间随机半球采样,比较深度估遮蔽 |
| 2008 | HBAO | NVIDIA | 逐方向找地平线角,比 SSAO 稳定 |
| 2016 | HBAO+ / GTAO | NVIDIA / Activision | HBAO 工程化升级;GTAO 多方向解析积分 + 时间滤波 |
| 2018+ | VXAO / RT AO | NVIDIA / DXR | 体素 AO、光追 AO,摆脱屏幕空间限制 |
| — | SDF AO | UE 等 | 距离场步进,稳定、不依赖屏幕内容 |
- 驱动力:从”贴图”到”屏幕空间便宜算”再到”场景空间精确算”。SSAO 全屏随机有噪声,HBAO 换成分方向扫描更稳定,GTAO 再加时间滤波逼近真实——但三者都只认屏幕内信息,光追 / SDF AO 才彻底解决”屏幕外”。
- 常见误区:AO 主要削弱间接光,不该粗暴乘到所有直接光上。HBAO 原理见 Unity-URP延迟渲染HBAO。
5. 阴影:ShadowMap → PCF → CSM → VSM/MSM → 光追
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| 1978 | Shadow Mapping | Lance Williams | 从光源渲深度图,比较判断遮挡,一切阴影的地基 |
| 1987 | PCF | Reeves 等 | 多纹素比较做软阴影 |
| 2005 | PCSS | Fernando(GPU Gems 2) | 按遮挡距离动态扩大滤波,接触阴影 |
| 2006 | CSM | Parallel-Split 论文 | 视锥分级多张 ShadowMap,近密远疏 |
| 2006 | VSM | Donnelly & Lauritzen | 存均值 + 方差,可滤波软阴影(会漏光) |
| 2015 | MSM | Peters & Klein | 4 阶矩重建遮挡,质量远超 VSM |
| — | SDF 阴影 | UE 距离场 | 距离场步进,柔和精确、带接触感 |
| 2018+ | 光追阴影 | DXR | 打 Shadow Ray,精确软硬阴影 |
| — | 接触阴影 | 各引擎 | 屏幕空间短步进,补 ShadowMap 精度够不到的地方 |
- 驱动力:从”有阴影”到”软阴影”到”精确阴影”。CSM 是方向光的事实标准,VSM/MSM 解决”滤波软阴影”,光追阴影代表终点精度。
- 细节见 Base-阴影ShadowMap 与 UE4-DistanceFieldShadow。
6. 抗锯齿与超分:MSAA → FXAA/SMAA → TAA → DLSS/FSR
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| — | SSAA | 全局超采样 | 每像素采样 N 次,效果最好也最贵 |
| — | MSAA | 硬件 | 只在三角形边缘加采样,对 Shading 噪声无效 |
| 2009 | FXAA | Lottes(NVIDIA) | 后处理找边缘模糊,便宜但糊 |
| 2011 | SMAA | Jimenez | 边缘形态识别,比 FXAA 聪明 |
| 2014 | TAA | Karis(UE4) | 跨帧重投影累积样本,时间换采样 |
| 2018/20/22 | DLSS | NVIDIA | 超分 → 时域重建 → + 帧生成(Tensor Core) |
| 2021/22/23 | FSR | AMD | 空间 → 时域 → + 帧生成(开放源码) |
| 2021 | TSR | UE5 | 不依赖硬件的时间超分 |
| 2022 | XeSS | Intel | 类似 DLSS 的硬件 + 开放模式 |
- 驱动力:空间方法到顶,转向时间维度复用。TAA 是转折点——之后所有超分都是”低分辨率 + 运动矢量 + 历史累积”。代价是 Ghosting / Smearing,核心难点是历史拒绝(见 Base-TAA)。
- 这条路代表近十年画质跃升的最大杠杆:超分让引擎用 1/2 甚至 1/4 分辨率渲染,再重建到目标分辨率。
7. 色调映射:Reinhard → Filmic → ACES
| 年份 | 方案 | 出处 | 一句话原理 |
|---|---|---|---|
| 2002 | Reinhard | Reinhard 论文 | 全局压缩 HDR → LDR,简单稳定 |
| 2010 | Filmic | John Hable(神海2) | 模拟胶片响应曲线,暗部亮部都保留 |
| 2015+ | ACES | 电影工业标准 | 电影级色彩空间 + 定标,引擎默认事实标准 |
- 驱动力:HDR 管线(孤岛危机 2007 起标配)出现后,Tone Mapping 从”压缩”变成”风格”——ACES 提供了跨平台一致的色彩基准。
- 注意:相同材质在不同引擎看起来不同,往往不是 PBR 参数错,而是曝光、Tone Mapping、颜色管理不同。
8. 体积 / 大气:高度雾 → 体积雾 → 参与介质
| 年份 | 方案 | 出处 / 引擎 | 一句话原理 |
|---|---|---|---|
| — | 高度雾 | 各引擎 | 按高度 + 距离指数衰减叠雾色 |
| 2009 | God Ray | Killzone 2 | 后处理径向模糊做光柱,便宜 |
| 2015 | 体积雾 | Frostbite | 光照写进 3D 体积纹理,逐帧 Ray March |
| 2020 | 大气散射 | Hillaire(SIGGRAPH) | 物理模拟天空大气散射 |
- 驱动力:从”叠一层颜色”到”参与介质物理模拟”。体积雾(参与介质)统一了雾、烟、光束的理论框架。
9. 其他演进链(简表)
| 维度 | 演进链 |
|---|---|
| 渲染架构 | 前向 → 延迟 → Tiled/Clustered(Forward+)→ GPU Driven |
| 纹理 | 标准贴图 → Mipmap → 虚拟纹理(id Tech 5)→ 程序化流送 |
| 几何 | 静态 LOD → 网格着色器 → Nanite 逐像素虚拟几何 |
| 光追 | 软件光追(实验)→ DXR/RTX 硬件 → 混合光追(Lumen/RTGI) |
| 时域复用 | 单帧 → 时间累积(TAA/降噪/超分)→ 帧生成 |
10. 演进的一般规律
拉远看,这些链有几个共同规律:
- 硬件先解锁,算法再跟上:光追硬件(2018 RTX)解锁了 RTGI/RT 反射;算力增长让 SSAO、PBR 实时化成为可能。
- 从”美术手工”到”物理标准”:假 AO → 真 AO;经验高光 → PBR。标准化(PBR、ACES、split-sum)让”每个引擎各搞一套”成为过去。
- 从”空间”到”时间”:单帧算不动的,用历史帧换——TAA、超分、光追降噪都是这个思路。
- 屏幕空间是”性价比区”:SSAO/HBAO、SSR、SSGI 便宜好用,但只认屏幕内信息——它们的极限就是光追 / 场景空间方案的入口。
- 两条腿的格局会长期存在:烘焙(静态、稳、便宜)和实时(动态、贵、灵活)不是替代关系,是按场景选择。
11. 全部演进链总表
1 | |
12. 总结
所有演进链可以收进一句话:渲染从”美术手工凑效果”走向”物理约束 + 标准化”,从”单帧算满”走向”时间 + 硬件换空间”。
判断任何新方案,先问三条:
- 它属于哪条线(光照 / GI / 反射 / AO / 阴影 / AA / 后处理)?
- 它是”换存储”(烘焙)还是”换计算”(实时)?
- 它解决了旧方案哪个具体的痛(精度?成本?屏幕外?美术流程)?
这三问答完,你就知道它为什么存在、会不会被替代。要补某一维度的细节,正文里每一节都链到了对应文章。
年份以公开论文 / 引擎发布为准,个别小版本可能存在出入,请以原始资料核对。相关原理细节见 Base-PBR、Base-引擎梳理、Unity-APV体积探针、Base-TAA、Base-阴影ShadowMap。