MAKE · WRITE · SHARE

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
3
4
5
6
7
8
9
10
11
12
13
1996  Quake lightmap
2002 SH / PRT 论文
2004 Source radiosity lightmap / Halo 2 SH
2009 LPV(CryEngine 3)—— 实时 GI 首次工程化
2013 PBR + split-sum
2014 UE4 正式版
2015 Unity 5(Enlighten)
2016 LPPV
2018 DXR / RTX;SSGI 实验;DDGI 论文
2020 UE4.25 RTGI
2022 UE5 Lumen
2023 Unity 弃用 Enlighten;APV 预览
2024 Unity 6:APV 正式

2.4 怎么判断一个新 GI 方案(对 TA 的启示)

判断程序三步:

  1. 先问属于哪条主线:烘焙的(换存储)→ 探针优化;实时的(换计算)→ 硬件 / 算法优化。主线决定它为什么存在、何时被替换。
  2. 再问静态还是动态:场景不动,烘焙探针又快又稳;光照要动,才轮到实时 GI 出场。
  3. 最后看成本:烘焙方案用”烘焙时间 + 探针内存”换”运行时开销低”;实时方案用”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-阴影ShadowMapUE4-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. 演进的一般规律

拉远看,这些链有几个共同规律:

  1. 硬件先解锁,算法再跟上:光追硬件(2018 RTX)解锁了 RTGI/RT 反射;算力增长让 SSAO、PBR 实时化成为可能。
  2. 从”美术手工”到”物理标准”:假 AO → 真 AO;经验高光 → PBR。标准化(PBR、ACES、split-sum)让”每个引擎各搞一套”成为过去。
  3. 从”空间”到”时间”:单帧算不动的,用历史帧换——TAA、超分、光追降噪都是这个思路。
  4. 屏幕空间是”性价比区”:SSAO/HBAO、SSR、SSGI 便宜好用,但只认屏幕内信息——它们的极限就是光追 / 场景空间方案的入口。
  5. 两条腿的格局会长期存在:烘焙(静态、稳、便宜)和实时(动态、贵、灵活)不是替代关系,是按场景选择。

11. 全部演进链总表

1
2
3
4
5
6
7
8
9
光照     Lambert → Phong(1975) → Blinn-Phong(1977) → Cook-Torrance(1982) → PBR+IBL(2013)
GI lightmap(1996) → SH(2002) → 烘焙探针(2015) → VLM/APV → 实时GI(LPV→VXGI/SSGI→RTGI→Lumen)
反射 cubemap(1976) → 反射探针(2014) → SSR(2015) → RT反射(2020) / Lumen反射(2021)
AO 烘焙 → SSAO(2007) → HBAO(2008) → GTAO(2016) → 光追/SDF AO
阴影 ShadowMap(1978) → PCF → PCSS(2005) → CSM(2006) → VSM/MSM → SDF阴影 → 光追阴影
抗锯齿 SSAA → MSAA → FXAA(2009)/SMAA(2011) → TAA(2014) → DLSS/FSR/TSR/XeSS(2018-2022)
色调 直接映射 → Reinhard(2002) → Filmic(2010) → ACES(2015+)
体积 高度雾 → GodRay(2009) → 体积雾(2015) → 大气散射(2020)
架构 前向 → 延迟 → Clustered → GPU Driven

12. 总结

所有演进链可以收进一句话:渲染从”美术手工凑效果”走向”物理约束 + 标准化”,从”单帧算满”走向”时间 + 硬件换空间”

判断任何新方案,先问三条:

  1. 它属于哪条线(光照 / GI / 反射 / AO / 阴影 / AA / 后处理)?
  2. 它是”换存储”(烘焙)还是”换计算”(实时)?
  3. 它解决了旧方案哪个具体的痛(精度?成本?屏幕外?美术流程)?

这三问答完,你就知道它为什么存在、会不会被替代。要补某一维度的细节,正文里每一节都链到了对应文章。


年份以公开论文 / 引擎发布为准,个别小版本可能存在出入,请以原始资料核对。相关原理细节见 Base-PBRBase-引擎梳理Unity-APV体积探针Base-TAABase-阴影ShadowMap