游戏引擎原理与实践 卷1 基础框架
书籍作者:程东哲 |
ISBN:9787115518071 |
书籍语言:简体中文 |
连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 |
下载次数:9579 |
创建日期:2021-02-14 |
发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
内容简介
本书着重讲解游戏引擎的基础知识和工作原理,并结合配套的游戏引擎示例和详尽的代码,介绍游戏
引擎开发的技术细节。
本书是第1 卷,主要涉及游戏引擎基础架构。全书共13 章,分别介绍游戏引擎原理、引擎和引擎编
辑器、底层基础架构、数据结构、数学库、引擎初始化、应用程序架构、对象系统、资源管理、引擎设计
的哲学理念、场景管理、静态模型导入和LOD 技术。本书未涵盖的游戏引擎话题将在卷2 中讲解。
本书适合有一定的游戏开发基础和经验并且想要系统学习游戏引擎原理和引擎开发技术的读者阅读。
作者简介
程东哲,游戏引擎开发工程师,吉林大学计算机硕士,现就职于腾讯公司,曾先后参与了《逆战》《斗战神》《众神争霸》《无尽之剑——命运XBOXONE》《云游戏》《Lucky Night VR》等项目开发。主要负责游戏引擎工作,包括腾讯内部自研May引擎和AGE引擎、修改和移植Unreal商业引擎。
编辑推荐
腾讯游戏引擎设计师基于多年经验和积累的力作
详尽示例,诠释游戏引擎制作与开发技术
Milo等游戏业内资-深专家鼎力推荐
阿哲为了分享自己的知识和经验,多年来利用业余时间,以一个完整的自研游戏引擎例子作为主轴,完成了这本厚重的著作。本书还附有大量的示例,循序渐进地展示一些功能如何有机地加入到一个庞大的系统中。建议读者在阅读每章前,也可先运行一下这些 demo,知道这章要实现的目标,思考一下如何做,再看看阿哲给出他的答案,也许能学得更深入。
叶劲峰(Milo Yip) 腾讯魔方工作室群引擎中心技术总监
中国游戏20年,是商业化发展的20年。在过去的20年里,我们在运营手段、产品营销、商业化设计,甚至玩法模式上都有了长足的进步。但在核心的游戏研发技术上,我们依然落后于国际**水准太多。在全球移动设备一统化的趋势下,掌握直至引领游戏技术的发展,才是每个游戏从业者的目标所在,本书从引擎的基本原理着手,详细地分解和分析了商业化游戏引擎的内核以及工具化思路,相信可以帮助每一个愿意在技术上有所突破的开发者。
王琛 深圳风月科技CEO
知识和能力是两回事,即便明白了道理仍然可能写不好代码。在知识和能力中间,经常隔着千山万水,需要大量的实践才能铺设一条从知识通往能力的道路。本书中,作者以自己的实践为基石,以此书做媒介,引领读者重温了一次思考与实践之旅,相信读者们定会有所收获 。
付强 腾讯新体验与技术部总监
市面上关于引擎开发的理论书籍很多,本书却很独特,它结合代码示例,一步步剖析现代引擎技术的具体实现,很多设计和实现思路与*新商业引擎类似,可以很好地帮助读者理解现代引擎的原理和实现。
王杨军 腾讯研发效能部前沿技术中心总监
目录
第 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.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
短评
非常精彩,之前一直想要了解内存管理,对象的销毁这些别的书一般都不讲的东西,这下一次性都学习了。作者很有心,有的内容不仅给了自己的实现,而且还有参考书籍或者开源库推荐
2020-03-02