
作者:程东哲
页数:428页
出版社:人民邮电出版社
出版日期:2020
ISBN:9787115518071
电子书格式:pdf/epub/txt
内容简介
本书主要涉及游戏引擎基础架构。全书共13章, 分别介绍游戏引擎原理、引擎和引擎编辑器、底层基础架构、数据结构、数学库、引擎初始化、应用程序架构、对象系统、资源管理、引擎设计的哲学理念、场景管理、静态模型导入和LOD技术。其他未涵盖的话题将在第2卷中讲解。
作者简介
程东哲,游戏引擎开发工程师,吉林大学计算机硕士,现就职于腾讯公司,曾先后参与了《逆战》《斗战神》《众神争霸》《无尽之剑——命运XBOXONE》《云游戏》《Lucky Night VR》等项目开发。主要负责游戏引擎工作,包括腾讯内部自研May引擎和AGE引擎、修改和移植Unreal商业引擎。
本书特色
本书着重讲解游戏引擎的基础知识和工作原理,并结合配套的游戏引擎示例和详尽的代码,介绍游戏 引擎开发的技术细节。 本书是第1 卷,主要涉及游戏引擎基础架构。全书共13 章,分别介绍游戏引擎原理、引擎和引擎编 辑器、底层基础架构、数据结构、数学库、引擎初始化、应用程序架构、对象系统、资源管理、引擎设计 的哲学理念、场景管理、静态模型导入和LOD 技术。本书未涵盖的游戏引擎话题将在卷2 中讲解。 本书适合有一定的游戏开发基础和经验并且想要系统学习游戏引擎原理和引擎开发技术的读者阅读。
目录
1.1 什么是游戏引擎1
1.2 那些年我们认识的引擎3
1.3 引擎和游戏.4
第 2 章 起航6
2.1 游戏编程6
2.2 游戏引擎的组成7
2.3 游戏引擎编辑器的组成8
2.4 数学10
2.5 空间变换12
2.5.1 坐标系12
2.5.2 不同空间的转换12
2.6 3D 流水线.15
2.7 OpenGL 和DirectX .16
2.8 汇编指令17
2.9 引擎工作流17
练习18
第3 章 基本系统.19
3.1 熟悉开发环境.19
3.2 VSSystem 工程20
3.3 内存管理25
3.3.1 处理内存泄露25
3.3.2 Unreal Engine 3 的内存分配.33
3.3.3 栈内存管理.51
3.3.4 整合.57
3.4 静态类型信息判断59
练习62
示例62
第4 章 基本数据结构64
4.1 基类VSContainer .65
4.2 常用数据结构.66
4.3 其他数据结构.71
4.4 C 代理/委托.72
练习85
示例86
第5 章 数学库88
5.1 基本数学88
5.2 基本数学单元.91
5.3 基本图形单元.98
第6 章 初始化与销毁103
6.1 传统初始化和销毁104
6.2 全局内存管理器的初始化和销毁107
6.3 非单件类的初始化和销毁108
示例115
第7 章 应用程序框架116
7.1 程序框架接口117
7.2 输入/输出映射.124
练习128
示例129
第8 章 对象系统130
8.1 智能指针.130
8.2 RTTI136
8.3 VSObject140
8.4 属性反射.146
8.5 序列化存储159
8.5.1 传统序列化方式159
8.5.2 使用属性表进行序列化存储.162
8.6 克隆186
8.7 属性与UI 绑定最 .191
8.7.1 基本控件192
8.7.2 组合控件与属性196
8.7.3 属性绑定208
8.8 函数反射.214
8.9 复制属性与函数.222
8.9.1 对象复制225
8.9.2 属性复制225
8.9.3 函数复制227
8.9.4 小结228
8.10 番外篇——Unreal Engine 4 中的
反射最 231
练习238
示例239
第9 章 资源管理241
9.1 资源类型.241
9.2 资源代理.247
9.3 对象系统——资源251
9.3.1 资源的组织形式251
9.3.2 外部资源管理.256
9.3.3 字符串管理258
9.3.4 内部资源管理.260
练习264
第 10 章 引擎的设计哲学265
10.1 世界抽象265
10.2 万物的关系.267
10.3 引擎层267
10.4 世界与引擎.270
10.5 垃圾回收275
10.5.1 智能指针与垃圾回收276
10.5.2 基于对象系统276
10.5.3 创建可回收的对象277
10.5.4 根对象选择278
10.5.5 联系查找.279
10.5.6 垃圾回收的时机.287
10.5.7 资源的垃圾回收.290
练习295
第 11 章 场景管理297
11.1 根节点与场景298
11.2 空间位置的父子关系299
11.2.1 变换301
11.2.2 包围盒304
11.2.3 空间管理结构与更新309
11.3 相机与相机裁剪315
11.3.1 相机的定义316
11.3.2 根据相机裁剪物体321
11.4 静态物体与动态物体328
11.4.1 采用四叉树管理静态物体.329
11.4.2 入口算法简介和潜在的
可见集合最 334
11.5 光源337
11.5.1 间接光338
11.5.2 局部光340
11.6 相机和光源的更新管理342
11.7 番外篇——浅谈Prez、软硬件
遮挡剔除最 345
练习346
示例347
第 12 章 模型与贴图349
12.1 法线与切线空间349
12.2 引擎中的网格结构.354
12.2.1 数据缓冲区、顶点、网格354
12.2.2 VSGeometry、VSMeshNode、
VSMeshComponent359
12.2.3 一个完整网格的创建过程361
12.3 FBX 模型导入与压缩366
12.4 纹理.380
12.5 给模型添加材质387
12.6 番外篇——3D 模型制作流程最 388
示例391
第 13 章 LOD393
13.1 模型的DLOD 393
13.2 模型的CLOD 401
13.3 地形的DLOD 409
13.4 地形的CLOD 414
13.5 番外篇——地形编辑最417
13.5.1 基于2D 网格的地形系统.417
13.5.2 基于块和悬崖的地形系统421
13.5.3 基于体素的地形系统423
练习425
示例425















