《游戏引擎实现原理》卷二《渲染引擎》全 55 篇,是接在卷一《引擎内核》之上的一套书:从第 1 章「一帧都发生了什么」起,到第 18 章把前 17 章的零件装配成一个能跑的渲染器,
helio会一路长出画面——一条从设备抽象到绘制命令的 RHI、一套命令编码与队列提交的帧同步机制、一组缓冲纹理与 GPU 内存池、一套 WebGPU 与 WebGL2 双后端加一个记录式 NullRHI、一套顶点纹理与采样器资源、一层场景图与变换相机、一条视锥剔除与 BVH 加速的可见性流水线、一套排序键与实例化合批、一层材质与着色器变体管理、一套光照与级联阴影、一张把 Pass 编排成图的帧图、一条色调映射与抗锯齿的后处理链、一套精灵与 SDF 的 2D / UI 渲染,以及一层多线程命令录制。每一节都写代码,每一节的代码都在本机真跑过,跑出来的是真实像素与真实计时。
本页是《渲染引擎》的全书目录:按章节顺序列出全部 55 篇,点击标题直达正文。也可以从各节末尾的「阅读导航」按顺序通读,或先看目录篇 里的阅读路径与周计划。
全书概览
| 项目 | 内容 |
|---|---|
| 书稿 | 《游戏引擎实现原理》卷二《渲染引擎》 |
| 篇数 | 55 篇(正文 18 章 54 节 + 目录篇) |
| 领域 | 3D 渲染引擎从零实现 |
| 贯穿项目 | 《微光岛》——一款低多边形 3D 收集冒险小游戏 |
| 从零引擎 | helio——纯 TypeScript,在卷一内核之上接出 render/ |
| 阅读方式 | 从目录篇 进入按顺序通读,或按查漏场景跳读 |
| 实测环境 | Node 26 与 headless Chromium(WebGPU / WebGL2 后端) |
| 可运行性 | L1 逻辑本机实跑;L2 渲染代码用 headless Chromium 验证,附真实像素与计时 |
| 前置 | 卷一《引擎内核》,或了解句柄、ECS 与 Job System 的基本概念 |
全书目录
前置
| 篇目 | 核心内容 |
|---|---|
| 目录 | 本卷定位、与卷一的关系、阅读路径、周计划与可运行性口径 |
第一部分:架构与 RHI(第 1–5 章)
先看一帧的全貌,再花四章把 GPU 抽象层从零建起来。
| 节 | 文章 | 核心内容 |
|---|---|---|
| 1.1 | 1.1 一帧都发生了什么(CPU / GPU 时间线) | 一帧的 CPU 提交与 GPU 执行时间线 |
| 1.2 | 1.2 渲染器的分层:RHI / 渲染器 / 场景 | RHI、渲染器与场景三层职责划分 |
| 1.3 | 1.3 与 graphics 专题的分工表 | 本卷讲实现、专题讲原理的分工表 |
| 2.1 | 2.1 为什么要 RHI:多后端与平台差异 | 多后端统一与平台差异的动机 |
| 2.2 | 2.2 资源对象:缓冲、纹理、采样器 | 缓冲、纹理、采样器三类资源对象 |
| 2.3 | 2.3 管线状态对象与着色器模块 | 管线状态对象与着色器模块抽象 |
| 3.1 | 3.1 命令编码器与渲染通道 | 命令编码器与渲染通道的录制 |
| 3.2 | 3.2 队列提交、帧同步与 fence | 队列提交、帧同步与 fence 机制 |
| 3.3 | 3.3 三缓冲与资源生命周期 | 三缓冲与资源生命周期管理 |
| 4.1 | 4.1 资源绑定与 bind group | 资源绑定与 bind group 组织 |
| 4.2 | 4.2 上传、暂存与 mipmap 生成 | 上传、暂存缓冲与 mipmap 生成 |
| 4.3 | 4.3 GPU 内存池与预算 | GPU 内存池与预算控制 |
| 5.1 | 5.1 WebGPU 后端实现 | WebGPU 后端的完整实现 |
| 5.2 | 5.2 WebGL2 后端实现与能力降级 | WebGL2 后端与能力降级策略 |
| 5.3 | 5.3 NullRHI:记录式假后端与测试 | 记录式假后端与自动化测试 |
第二部分:资源与场景(第 6–9 章)
把几何、纹理、场景、相机接上,再解决「画哪些、按什么顺序画」。
| 节 | 文章 | 核心内容 |
|---|---|---|
| 6.1 | 6.1 顶点格式、属性布局与程序化网格 | 顶点格式、属性布局与程序化网格 |
| 6.2 | 6.2 纹理格式、压缩与 mipmap | 纹理格式、压缩与 mipmap 链 |
| 6.3 | 6.3 采样器、寻址与各向异性 | 采样器寻址与各向异性过滤 |
| 7.1 | 7.1 场景图与变换层级(ECS 之上的一层视图) | 场景图与变换层级 |
| 7.2 | 7.2 脏标记传播与 world matrix 缓存 | 脏标记传播与 world matrix 缓存 |
| 7.3 | 7.3 相机、裁剪面与拾取射线 | 相机、裁剪面与拾取射线 |
| 8.1 | 8.1 视锥剔除与包围体 | 视锥剔除与包围体测试 |
| 8.2 | 8.2 空间划分与 BVH | 空间划分与 BVH 加速结构 |
| 8.3 | 8.3 GPU 驱动剔除与 LOD 协同(compute + indirect) | GPU 驱动剔除与 LOD 协同 |
| 9.1 | 9.1 排序键与前后绘制 | 排序键设计与前后绘制 |
| 9.2 | 9.2 状态缓存与冗余剔除 | 状态缓存与冗余剔除 |
| 9.3 | 9.3 实例化与合批 | 实例化与合批 |
第三部分:材质、着色与光照(第 10–13 章)
让画面「有材质、有光、有影」。
| 节 | 文章 | 核心内容 |
|---|---|---|
| 10.1 | 10.1 材质模型与参数 | 材质模型与参数组织 |
| 10.2 | 10.2 着色器变体与宏 | 着色器变体与宏管理 |
| 10.3 | 10.3 变体爆炸与编译缓存 | 变体爆炸治理与编译缓存 |
| 11.1 | 11.1 WGSL 组织与 include | WGSL 代码组织与 include |
| 11.2 | 11.2 反射驱动的参数绑定 | 反射驱动的参数绑定 |
| 11.3 | 11.3 着色器调试与错误定位(getCompilationInfo) | 着色器调试与错误定位 |
| 12.1 | 12.1 光照模型与着色路径 | 光照模型与着色路径 |
| 12.2 | 12.2 光源类型与衰减 | 光源类型与衰减 |
| 12.3 | 12.3 集群光照的引擎侧装配 | 集群光照的引擎侧装配 |
| 13.1 | 13.1 阴影贴图的引擎侧实现 | 阴影贴图的引擎侧实现 |
| 13.2 | 13.2 级联阴影与投影矩阵拟合 | 级联阴影与投影矩阵拟合 |
| 13.3 | 13.3 阴影性能与质量权衡 | 阴影性能与质量权衡 |
第四部分:帧图、后处理与 2D(第 14–16 章)
把一帧的 Pass 编排成图,加上全屏特效,再接上 UI。
| 节 | 文章 | 核心内容 |
|---|---|---|
| 14.1 | 14.1 Pass 依赖与资源生命周期 | Pass 依赖与资源生命周期 |
| 14.2 | 14.2 WebGPU 约束下的帧图 | WebGPU 约束下的帧图设计 |
| 14.3 | 14.3 帧图的编译与执行 | 帧图的编译与执行 |
| 15.1 | 15.1 全屏 Pass 链 | 全屏 Pass 链的搭建 |
| 15.2 | 15.2 色调映射与抗锯齿接入 | 色调映射与抗锯齿接入 |
| 15.3 | 15.3 后处理链的性能预算 | 后处理链的性能预算 |
| 16.1 | 16.1 精灵批次与图集 | 精灵批次与图集 |
| 16.2 | 16.2 SDF 文本与矢量 UI | SDF 文本与矢量 UI |
| 16.3 | 16.3 UI 与 3D 的合成顺序 | UI 与 3D 的合成顺序 |
第五部分:多线程与综合(第 17–18 章)
让它跑满多核,最后把全部零件装成一个能画的渲染器。
| 节 | 文章 | 核心内容 |
|---|---|---|
| 17.1 | 17.1 渲染线程模型与命令缓冲 | 渲染线程模型与命令缓冲 |
| 17.2 | 17.2 OffscreenCanvas 与并行命令录制 | OffscreenCanvas 与并行命令录制 |
| 17.3 | 17.3 与 Job System 的对接 | 与内核 Job System 的对接 |
| 18.1 | 18.1 渲染器装配与场景接入 | 渲染器装配与场景接入 |
| 18.2 | 18.2 昼夜循环与光照表现 | 昼夜循环与光照表现 |
| 18.3 | 18.3 渲染性能剖析与收口 | 渲染性能剖析与收口 |
说明:本卷没有序、前言与附录(与卷一《引擎内核》不同),全部内容就是上表的 18 章 54 节,外加一篇目录 。
怎么用这份索引
- 系统学习:从目录篇 进入,按路径 A 顺序通读 18 章。
- 抓重点:直接跳到第一部分(架构与 RHI)和第四部分(帧图、后处理与 2D),这两块是渲染引擎最核心的部分。
- 查问题:用目录篇 末尾的「常见问题速查」表,或按上表标题跳读。
- 配代码:每篇正文的代码块都标了层级与来源文件,L1 的可以直接复制出来在 Node 26 上跑,L2 的按正文给的 headless Chromium 跑法复现。
- 先看地基:还没读卷一的话,先去《引擎内核》索引 把内核过一遍,再回来看本卷会轻松很多。
相关阅读
- 卷一《引擎内核》索引 :本卷的地基,从零写引擎内核
- 卷一《引擎内核》目录篇 :内核卷的学习路径与可运行性口径
- 游戏引擎专题导航 :Unity、Unreal 与 Defold 的选型与入门
- 图形学专题 :渲染管线、着色器与 GPU 的深度文章
- 书稿书架 :全部电子书与创作手记