赞
踩
导读:
Unity 3D在世界范围的使用非常广泛,是所有商业引擎中使用人数最高的一个。华章妹这里给大家介绍一本新书《Unity3D高级编程:主程手记》
内容简介
本书是上市公司资深程序员呕心沥血之作,全面介绍了Unity3D游戏客户端架构,并深入剖析了游戏中的各个模块。全书共10章,每章都是一个独立的知识领域,由浅入深地讲解了游戏开发的各项技术,包括基础知识、游戏整体架构、模块,以及图形学和渲染等。
在讲解模块知识时,对其原理和技术要点进行了深入剖析,包括界面、模型动画、网络、AI、场景编辑、地图寻路等。在讲解过程中,不仅从表象到原理进行了层层拆解,还基于作者的实践经验阐述了从0到1进行游戏开发时可能会遇到的问题和相应的解决方案。
在对图形学、渲染进行介绍时,则给出了图形数学、图形学常用算法、渲染管线、渲染原理等相关知识,并为开发高性能游戏提供了案例。
本书几乎覆盖了 Unity3D游戏开发的所有技术要点,为的是让读者看到 Unity3D 游戏开发项目的技术全貌,进而对各项技术与知识点有更深层次的理解。
本书特色
专家推荐
作者介绍
陆泽西 游戏业从业十多年的老兵,曾就职于盛大游戏、动视暴雪等公司,现在是某上市公司的高级工程师。研究方向为高性能游戏开发,长期专注于游戏客户端架构和引擎技术,负责过多个大型游戏的架构工作,擅长极限性能优化,拥有丰富的实战经验。乐于分享,撰写了大量关于Unity3D和游戏技术的文章。
读者对象
从行业用户角度来看,本书适合以下读者阅读:
Unity3D程序员和爱好者
游戏开发者和游戏前端主程
虚拟现实项目的开发者
技术美术工程师和爱好者
致力于图形图像和引擎架构的程序员
开设相关课程的院校
视频解读
目录
前 言
第1章软件架构 1
1.1 架构的意义 1
1.2 软件架构的思维方式 5
1.3 如何构建Unity3D项目 9
第2章C#技术要点 14
2.1Unity3D中C#的底层原理 14
2.2List底层源码剖析 17
2.3Dictionary底层源码剖析 27
2.4浮点数的精度问题 39
2.5委托、事件、装箱、拆箱 44
2.5.1委托与事件 44
2.5.2装箱和拆箱 45
2.6排序算法 48
2.6.1快速排序算法 48
2.6.2最大最小堆 50
2.6.3其他排序算法概述 51
2.7各类搜索算法 51
2.7.1搜索算法概述 52
2.7.2二分查找算法 52
2.7.3二叉树、二叉查找树、平衡二叉树、红黑树和B树 52
2.7.4四叉树搜索算法 53
2.7.5八叉树搜索算法 54
2.8业务逻辑优化技巧 54
2.8.1使用List和Dictionary时提高效率 55
2.8.2巧用struct 55
2.8.3尽可能地使用对象池 57
2.8.4字符串导致的性能问题 61
2.8.5字符串的隐藏问题 64
2.8.6程序运行原理 65
第3章数据表与程序 68
3.1数据表的种类 68
3.1.1大部分数据都是在Excel里生成的 68
3.1.2最原始的数据方式—代码数据 69
3.1.3文本数据 69
3.1.4比特流数据 70
3.2数据表的制作方式 71
3.2.1制作方式简介 71
3.2.2让数据使用起来更加方便 72
3.3多语言的实现 75
第4章用户界面 78
4.1用户界面系统的比较 78
4.2UGUI系统的原理及其组件使用 79
4.2.1UGUI系统的运行原理 79
4.2.2UGUI系统的组件 80
4.3UGUI事件模块剖析 82
4.3.1UGUI事件系统源码剖析 82
4.3.2输入事件源码 82
4.3.3事件数据模块 83
4.3.4输入事件捕获模块源码 84
4.3.5射线碰撞检测模块源码 89
4.3.6事件逻辑处理模块 91
4.4UGUI核心源码剖析 91
4.4.1UGUI核心源码结构 91
4.4.2Culling模块 91
4.4.3Layout模块 93
4.4.4MaterialModif?iers、Specialized-Collections和Utility 94
4.4.5VertexModif?iers 95
4.4.6核心渲染类 96
4.5快速构建一个简单易用的UI框架 101
4.6UI优化 107
4.6.1UI动静分离 108
4.6.2拆分过重的UI 108
4.6.3UI预加载 109
4.6.4UI图集Alpha分离 110
4.6.5UI字体拆分 111
4.6.6Scroll View优化 112
4.6.7网格重构的优化 113
4.6.8UI展示与关闭的优化 114
4.6.9对象池的运用 114
4.6.10UI贴图设置的优化 115
4.6.11内存泄漏 117
4.6.12针对高低端机型的优化 123
4.6.13UI图集拼接的优化 126
4.6.14GC的优化 127
第5章3D模型与动画 134
5.1美术资源规范 134
5.2合并3D模型 141
5.2.1网格模型的基础知识 141
5.2.2动态批处理 143
5.2.3静态批处理 144
5.2.4自己编写合并3D模型的程序 145
5.3状态机 147
5.3.1如何用状态机模拟人物行为动作 147
5.3.2在游戏的人物行为动作中使用状态机 148
5.3.3在游戏项目中使用状态机的地方 148
5.43D模型的变与换 152
5.4.1切割模型 154
5.4.2扭曲模型 156
5.4.3简化模型 157
5.4.4蒙皮骨骼动画 159
5.4.5人物3D模型动画换皮换装 165
5.4.6捏脸 167
5.4.7动画优化 169
5.5资源的加载与释放 176
第6章网络通信 183
6.1TCP与UDP 183
6.1.1TCP和UDP简介 183
6.1.2UDP的特点 185
6.1.3是用TCP还是用UDP 186
6.2C#实现TCP 187
6.2.1程序实现TCP长连接 187
6.2.2TCP的API库 187
6.2.3线程锁 188
6.2.4缓冲队列 188
6.2.5双队列结构 190
6.2.6发送数据 191
6.2.7协议数据定义标准 192
6.2.8断线检测 195
6.3C#实现UDP 196
6.3.1实现UDP 196
6.3.2连接确认机制 196
6.3.3数据包校验与重发机制 199
6.3.4丢包问题分析 201
6.4封装HTTP 202
6.4.1HTTP协议原理 202
6.4.2HTTP1.0、HTTP1.1、HTTP2.0简述 204
6.4.3在Unity3D中的HTTP封装 206
6.4.4多次请求时连续发送HTTP请求引起的问题 209
6.5网络数据协议原理 222
6.5.1协议包的格式 222
6.5.2JSON 223
6.5.3自定义二进制数据流协议格式 224
6.5.4MessagePack 226
6.5.5Protobuf 229
6.5.6限定符的规则 231
6.5.7Protobuf的原理:序列化和反序列化 232
6.5.8Protobuf更改数据结构后的兼容问题 235
6.5.9Protobuf的优点 236
6.5.10Protobuf的不足 237
6.6网络同步解决方案 237
6.6.1状态同步法 237
6.6.2实时广播同步法 239
6.6.3帧同步 240
6.6.4同步快进 242
6.6.5精度问题 243
6.6.6同步锁机制 244
第7章游戏中的AI 245
7.1用状态机构建AI 245
7.2用行为树构建AI 251
7.2.1复合节点 252
7.2.2修饰节点 253
7.2.3条件节点 253
7.2.4行为节点 253
7.3非典型性AI 255
7.3.1可演算式AI 255
7.3.2博弈式AI 257
第8章地图与寻路 259
8.1A星算法及其优化 259
8.1.1长距离导航 262
8.1.2A星排序算法优化 264
8.1.3寻路期望值优化 265
8.1.4通过权重引导寻路方向 267
8.1.5拆分寻路区域 268
8.1.6A星算法细节优化 270
8.1.7寻路规则优化JPS 271
8.2 寻路网格的构建 275
8.2.1数组构建网格 275
8.2.2路点网格 277
8.2.3平面三角形网格 279
8.2.4多层级网格 282
8.2.5三角形网格中的A星算法 283
8.2.6体素化寻路网格 286
8.2.7RecastNavigation Navmesh 288
8.3地图编辑器 290
8.3.1地图编辑器的基本功能 290
8.3.2数据协议格式在编辑器中的选择 292
8.3.3地图加载方式 293
8.3.4地图九宫格 294
8.4地图的制作与优化 296
8.4.1地图的制作方式 296
8.4.2常规场景的性能优化 299
第9章渲染管线与图形学 306
9.1图形学基础 306
9.1.1向量的意义 307
9.1.2点积的几何意义 307
9.1.3叉乘的几何意义 308
9.1.4向量之间的投影 309
9.1.5矩阵的意义 310
9.1.6矩阵旋转、缩放、投影、镜像和仿射 312
9.1.7齐次坐标的平移矩阵 320
9.1.8如何理解四元数 321
9.2渲染管线 324
9.2.1OpenGL、DirectX图形接口 324
9.2.2渲染管线是什么 325
9.2.3混合 337
9.2.4渲染管线总结 341
第10章渲染原理与知识 343
10.1渲染顺序 343
10.2Alpha Test 345
10.3Early-Z GPU硬件优化技术 347
10.4Mipmap的原理 348
10.5显存的工作原理 350
10.6Filter滤波方式 351
10.7 实时阴影是如何生成的 354
10.8光照纹理烘焙原理 357
10.9GPU Instancing的来龙去脉 362
10.10 着色器编译过程 369
10.11 Projector投影原理 372
扫码关注【华章计算机】视频号
每天来听华章哥讲书
书讯 | 2月书讯(下)| 新年到,新书到!
书讯 | 2月书讯 (上)| 新年到,新书到!
资讯 | Python迎来31岁生日,蝉联年度编程语言排行榜冠军
点击阅读全文购买
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。