《大象无形 虚幻引擎程序设计浅析》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:罗丁力,张三著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2017
  • ISBN:7121313493
  • 页数:300 页
图书介绍:

第一部分 虚幻引擎C++编程 1

第1章 开发之前——五个最常见基类 2

1.1 简述 2

1.2 本立道生:虚幻引擎的UObject和Actor 2

1.2.1 UObject类 2

1.2.2 Actor类 5

1.3 灵魂与肉体:Pawn、Character和Controller 6

1.3.1 Pawn 6

1.3.2 Character 7

1.3.3 Controller 7

第2章 需求到实现 9

2.1 分析需求 9

2.2 转化需求为设计 10

第3章 创建自己的C++类 12

3.1 使用Unreal Editor创建C++类 12

3.2 手工创建C++类 14

3.3 虚幻引擎类命名规则 15

第4章 对象 16

4.1 类对象的产生 16

4.2 类对象的获取 18

4.3 类对象的销毁 18

第5章 从C++到蓝图 20

5.1 UPROPERTY宏 20

5.2 UFUNCTION宏 20

第6章 游戏性框架概述 22

6.1 行为树:概念与原理 22

6.1.1 为什么选择行为树 22

6.1.2 行为树原理 22

6.2 虚幻引擎网络架构 26

6.2.1 同步 26

6.2.2 广义的客户端-服务端模型 27

第7章 引擎系统相关类 30

7.1 在虚幻引擎4中使用正则表达式 30

7.2 FPaths类的使用 31

7.3 XML与JSON 32

7.4 文件读写与访问 33

7.5 GConfig类的使用 35

7.5.1 写配置 36

7.5.2 读配置 36

7.6 UE_LOG 37

7.6.1 简介 37

7.6.2 查看Log 37

7.6.3 使用Log 37

7.6.4 自定义Category 38

7.7 字符串处理 38

7.8 编译器相关技巧 39

7.8.1 “废弃”函数的标记 39

7.8.2 编译器指令实现跨平台 39

7.9 Images 40

第二部分 虚幻引擎浅析 45

第8章 模块机制 46

8.1 模块简介 46

8.2 创建自己的模块 47

8.2.1 快速完成模块创建 47

8.2.2 创建模块文件夹结构 48

8.2.3 创建模块构建文件 49

8.2.4 创建模块头文件与定义文件 49

8.2.5 创建模块预编译头文件 50

8.2.6 引入模块 51

8.3 虚幻引擎初始化模块加载顺序 52

8.4 道常无名:UBT和UHT简介 55

8.4.1 UBT 55

8.4.2 UHT 57

第9章 重要核心系统简介 62

9.1 内存分配 62

9.1.1 Windows操作系统下的内存分配方案 62

9.1.2 IntelTBB内存分配器 63

9.2 引擎初始化过程 65

9.3 并行与并发 67

9.3.1 从实验开始 68

9.3.2 线程 71

9.3.3 Task Graph系统 73

9.3.4 Std::Thread 77

9.3.5 线程同步 78

9.3.6 多进程 80

第10章 对象模型 81

10.1 UObject对象 81

10.1.1 来源 82

10.1.2 重生:序列化 83

10.1.3 释放与消亡 92

10.1.4 拉圾回收 94

10.2 Actor对象 99

10.2.1 来源 101

10.2.2 加载 104

10.2.3 释放与消亡 105

第11章 虚幻引擎的渲染系统 107

11.1 渲染线程 107

11.1.1 渲染线程的启动 108

11.1.2 渲染线程的运行 108

11.2 渲染架构 109

11.2.1 延迟渲染 109

11.2.2 延迟渲染在Post Process中的运用 110

11.3 渲染过程 111

11.3.1 延迟渲染到最终结果 112

11.3.2 渲染着色器数据提供 123

11.4 场景代理SceneProxy 126

11.4.1 逻辑的世界与渲染的世界 126

11.4.2 渲染代理的创建 127

11.4.3 渲染代理的更新 128

11.4.4 实战:创建新的渲染代理 128

11.4.5 进阶:创建静态渲染代理 132

11.4.6 静态网格物体渲染代理排序 148

11.5 Shader 150

11.5.1 测试工程 150

11.5.2 定义Shader 152

11.5.3 定义Shader对应的C++类 153

11.5.4 我们做了什么 162

11.6 材质 163

11.6.1 概述 164

11.6.2 材质相关C++类关系 166

11.6.3 编译 167

11.6.4 ShaderMap产生 168

第12章 Slate界面系统 170

12.1 Slate的两次排布 170

12.2 Slate的更新 170

12.3 Slate的渲染 171

第13章 蓝图 173

13.1 蓝图架构简述 173

13.2 前端:蓝图存储与编辑 174

13.2.1 Schema 174

13.2.2 编辑器 175

13.3 后端:蓝图的编译 176

13.4 蓝图虚拟机 187

13.4.1 便笺纸与白领的故事 187

13.4.2 虚幻引擎的实现 189

13.4.3 C++函数注册到蓝图 193

13.5 蓝图系统小结 194

第三部分 扩展虚幻引擎 197

第14章 引擎独立应用程序 198

14.1 简介 198

14.2 如何开始 198

14.3 BlankProgram 199

14.4 走得更远 202

14.4.1 预先准备 203

14.4.2 增加模块引用 203

14.4.3 添加头文件引用 203

14.4.4 修改Main函数为WinMain 204

14.4.5 添加LOCTEXT_NAMESPACE定义 204

14.4.6 添加SlateStandaloneApplication 204

14.4.7 链接CoreUObject 205

14.4.8 添加一个Window 205

14.4.9 最终代码 205

14.5 剥离引擎独立应用程序 207

第15章 插件开发 208

15.1 简介 208

15.2 开始之前 208

15.3 创建插件 210

15.3.1 引擎插件与项目插件 210

15.3.2 插件结构 210

15.3.3 模块入口 213

15.4 基于Slate的界面 213

15.4.1 Slate简介 213

15.4.2 Slate基础概念 214

15.4.3 最基础的界面 214

15.4.4 SNew与SAssignNew 219

15.4.5 Slate控件的三种类型 220

15.4.6 创建自定义控件 222

15.4.7 布局控件 225

15.4.8 控件参数与属性 227

15.4.9 Delegate 228

15.4.10 自定义皮肤 234

15.4.11 图标字体 239

15.4.12 组件继承 241

15.4.13 动态控制Slot 244

15.4.14 自定义容器布局 248

15.5 UMG扩展 255

15.6 蓝图扩展 261

15.6.1 蓝图函数库扩展 261

15.6.2 异步节点 264

15.7 第三方库引用 270

15.7.1 lib静态链接库的使用 270

15.7.2 dll动态链接库的使用 273

第16章 自定义资源和编辑器 276

16.1 简易版自定义资源类型 276

16.2 自定义资源类型 278

16.2.1 切分两个模块 278

16.2.2 创建资源类 281

16.2.3 在Editor模块中创建工厂类 281

16.2.4 引入Editor模块 284

16.3 自定义资源编辑器 286

16.3.1 资源操作类 287

16.3.2 资源编辑器类 290

16.3.3 增加3D预览窗口 295