失效链接处理 |
大象无形 虚幻引擎程序设计浅析 PDF 下载
转载自:https://download.csdn.net/download/wwl588/10194126
本站整理下载:
版权归出版社和原作者所有,链接已删除,请购买正版
用户下载说明:
电子版仅供预览,下载后24小时内务必删除,支持正版,喜欢的请购买正版书籍:
http://product.dangdang.com/25075415.html
相关截图:
图书简介: 本书以两位作者本人在使用虚幻引擎过程中的实际经历为参考,包括三大部分:使用C 语言进行游戏性编程、了解虚幻引擎本身底层结构与渲染结构、编写插件扩展虚幻引擎。提供了不同于官方文档内容的虚幻引擎相关细节和有效实践。有助于读者一窥虚幻引擎本身设计的精妙之处,并能学习到定制虚幻引擎所需的基础知识,实现对其的按需定制。 图书目录: 目录 第一部分 虚幻引擎 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 Intel TBB 内存分配器 . . . . . . . . . . . . . . . . . . . . . . . . . . 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::read . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 渲染代理的 |