内容简介
本书着重讲解游戏引擎的基础知识和工作原理,并结合配套的游戏引擎示例和详尽的代码,介绍游戏引擎开发的技术细节。
本书是第1卷,主要涉及游戏引擎基础架构。全书共13章,分别介绍游戏引擎原理、引擎和引擎编辑器、底层基础架构、数据结构、数学库、引擎初始化、应用程序架构、对象系统、资源管理、引擎设计的哲学理念、场景管理、静态模型导入和LOD技术。本书未涵盖的游戏引擎话题将在卷2中讲解。
本书适合有一定的游戏开发基础和经验并且想要系统学习游戏引擎原理和引擎开发技术的读者阅读。
目录
- 第1章引擎的纷争1
- 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.63D流水线.15
- 2.7OpenGL和DirectX.16
- 2.8汇编指令17
- 2.9引擎工作流17
- 练习18
- 第3章基本系统.19
- 3.1熟悉开发环境.19
- 3.2VSSystem工程20
- 3.3内存管理25
- 3.3.1处理内存泄露25
- 3.3.2UnrealEngine3的内存分配.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.4C++代理/委托.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.2RTTI136
- 8.3VSObject140
- 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番外篇——UnrealEngine4中的
- 反射*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.2VSGeometry、VSMeshNode、
- VSMeshComponent359
- 12.2.3一个完整网格的创建过程361
- 12.3FBX模型导入与压缩366
- 12.4纹理.380
- 12.5给模型添加材质387
- 12.6番外篇——3D模型制作流程*388
- 示例391
- 第13章LOD393
- 13.1模型的DLOD393
- 13.2模型的CLOD401
- 13.3地形的DLOD409
- 13.4地形的CLOD414
- 13.5番外篇——地形编辑*417
- 13.5.1基于2D网格的地形系统.417
- 13.5.2基于块和悬崖的地形系统421
- 13.5.3基于体素的地形系统423
- 练习425
- 示例425
非常精彩,之前一直想要了解内存管理,对象的销毁这些别的书一般都不讲的东西,这下一次性都学习了。作者很有心,有的内容不仅给了自己的实现,而且还有参考书籍或者开源库推荐