《腾讯游戏开发精粹Ⅲ》[43M]百度网盘|pdf下载|亲测有效
《腾讯游戏开发精粹Ⅲ》[43M]百度网盘|pdf下载|亲测有效
《腾讯游戏开发精粹Ⅲ》[43M]百度网盘|pdf下载|亲测有效

腾讯游戏开发精粹Ⅲ pdf下载

isbn:9787121489402
出版社 电子工业出版社
出版年 2024-11-01
页数 576页
ISBN 9787121489402
装帧 精装
评分 9.2(豆瓣)
限时特惠 00:00:00
活动结束后恢复原价
纸质书参考价 ¥23
电子版限时价 ¥5.99 省 18 元

选择版本

不满意全额退款
发货失败双倍赔偿
邮箱即时发送

内容简介

本篇主要提供腾讯游戏开发精粹Ⅲ电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com

编辑推荐

适读人群 :游戏客户端、服务器工程师或有志于投身游戏技术领域的读者。

✓ “腾讯游戏开发精粹”系列惠及百万从业者,本季进一步锚定图形渲染、特效仿真、后台网络架构等关键领域,深入高难度课题,扩大选材范围,紧跟技术前沿,精选已在实际项目中落地的创新技术方案。

✓ 肩负前沿技术和产业未来探索使命, 结合AIGC引领游戏体验新潮流,覆盖从游戏品质与内容国际化到游戏科技力和文化力的认知升级,更贴合国内游戏市场现状,面向内容的工业化量产,不断扩展玩法和表现的边界。

✓ 从游戏客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学,以及动画和物理5个视角,讲述在面向玩家的游戏产品背后,技术原理、权衡、实现与优化如何运作。

✓ 对于资深从业者而言,本书以玩家体验和开发运维成本为核心诉求,强调对经典技术融会贯通地运用与深度改进,达成整体性方案创新;对于新人或学生群体,本书可用来更好地理解游戏开发的全貌,提前理解更高效、更优质的游戏开发精髓。


内容简介

《腾讯游戏开发精粹Ⅲ》是腾讯游戏研发团队不断积累沉淀的技术结晶,是继 2019年推出《腾讯游戏开发精粹I》和《《腾讯游戏开发精粹II》后的诚意续作。本书收录了 21 个在上线项目中得到验证的技术方案,深入介绍了腾讯公司在游戏开发领域的新研究成果和新技术进展,涉及人工智能、计算机图形、动画和物理、客户端架构和技术、服务端架构和技术及管线和工具等多个方向。本书适合游戏从业者、游戏相关专业师生及对游戏幕后技术原理感兴趣的普通玩家。

作者简介

腾讯游戏学堂是腾讯游戏设立的致力于打造游戏知识分享和行业交流的平台,通过游戏行业专业人才培养、高校产学研合作、行业交流及开发者生态建设等,推动游戏行业良性发展,以能力生长,助游戏创作。

精彩书评

在游戏开发技术迭代速度日益加快的今天,技术的时效性和实用性变得尤为重要。《腾讯游戏开发精粹III》秉承本系列图书一贯的风格,再次带来了许多覆盖范围广、紧跟技术前沿,并能在实际项目中落地的技术方案。

本书内容依然来自资深的一线开发人员,是他们在项目开发过程中的积累和沉淀,从客户端架构到服务器端技术及优化,再从管线和工具、资产处理到图形渲染以及动画和数字人,本书不仅是技术文章的集合,也是所涉及模块的前沿思想和实战经验的总结。

希望广大游戏开发者和技术爱好者能从本书中学到实用的技术,并能解决自己项目中的问题。也希望每位读者都能通过阅读本书加深对一些知识的理解,并从这些理解中获得灵感,在未来的游戏开发旅程中创造出更多令人惊艳的作品。

王祢,Epic Games China引擎技术总监

在迅速发展的游戏产业中,开发者需不断寻求创新的技术和方法以保持竞争力。这本书提供了深入的洞察和实践经验,涉及多个关键的游戏开发领域。

本书涵盖了从客户端到网络存储与同步,从本地化质量保证到图形图像学的各方面知识。

无论你是游戏开发新手还是经验丰富的工程师,本书都是不可多得的学习指南。它不仅提供了当前游戏开发中的高级技术细节,还分享了这些技术如何在腾讯实际项目中应用的宝贵经验,以及对未来技术的探索与追求。强烈推荐每位游戏开发相关人员阅读,以开启新的思考并优化游戏开发流程。

罗子雄,所思科技CEO、《猛兽派对》制作人

这些年,我有幸目睹了中国游戏行业的飞速发展,腾讯更是其中的佼佼者。令人欣慰的是,腾讯作为国内游戏开发行业的领头羊之一,愿意把自己多年来在游戏设计和研发上的经验编撰成书,与大家分享。本书全面覆盖了时下游戏开发中从图形渲染、特效仿真到后台网络架构的各个方面,并对每一个课题进行了深入探讨。对于读者来说,本书既可作为游戏开发专业的教科书,也可以作为日常工作查阅参考的工具书。相信无论是初学游戏开发的学生还是经验丰富的游戏研发人员,都能从本书中得到有益的启发。

朱克宁,香港城市大学教授

《腾讯游戏开发精粹III》不仅是游戏发展历程的见证,更是前沿游戏技术和人工智能在游戏领域融合创新的生动写照。作为游戏产业的引领者,腾讯游戏的开发人员在本书中深刻阐释了具有实践价值的前沿游戏技术带来的变革力量。从引擎优化到实时渲染,从数字内容创作到虚拟现实技术,腾讯在技术广度与深度上的不断突破为玩家的游戏体验带来了前所未有的升华。

尤其值得关注的是书中对AIGC(人工智能生成内容)技术的探索。在游戏创作中,AIGC技术不仅为开发者带来了效率的提升,更为玩家带来了个性化、多样化的游戏体验。腾讯凭借对AIGC技术的深刻理解和不断探索,致力于为玩家创造一个栩栩如生的虚拟世界,让每一位玩家都能沉浸其中,享受与AI角色的交互与探索。

本书对这些前沿技术的探索是对整个游戏产业未来发展方向的启示。在这个充满变革的时代,传统游戏技术和AIGC技术的结合将引领游戏体验的新潮流。《腾讯游戏开发精粹III》在这一前沿领域的探索与实践,让我们对游戏的未来充满期待。

谢宁,电子科技大学教授

《腾讯游戏开发精粹III》是本系列作品的第三部,与前作时隔三年。这三年从游戏玩家对游戏品质与内容的诉求升级,到社会和产业对游戏科技力与文化力的认知革新,无不驱使游戏行业从业者在视角和维度上不断变化与提升,这在本书的23个技术案例中均有立体呈现。

“腾讯游戏开发精粹”作为腾讯游戏学堂发起的系列技术干货好文集锦,力求做到在扎根实战的同时,敏锐捕捉前沿技术的创新与探索。希望本书能帮助到游戏及相关行业的探索者,我们也以此为契机,期待更多的公司与团体能参与分享交流、助力技术沉淀。以能力生长,助游戏创作。

夏琳,腾讯游戏副总裁、腾讯游戏学堂院长

游戏技术涉猎甚广,包含计算机体系架构、计算机图形学、AI、物理等各学科知识和前沿技术。本书在前两本图书的基础上,从游戏客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学,以及动画和物理这5大部分进行深入讨论和阐述。每部分都展示了游戏研发中的一些核心技术点。对每个点都从基本原理到具体的实践,以及其中的一些关键技巧和效果做了充分的阐述。

本书涵盖了游戏研发的多个方面,兼顾深度和广度,对游戏从业人员以及有志向相关方向发展的朋友来说都是很好的学习资料。

邓大付,腾讯互动娱乐研发效能部助理总经理

在游戏开发的实践过程中,时不时地会遇到各种棘手问题,为此,需要游戏开发者扎进游戏研发场景中,不断提出新思路与新方案,持续尝试、迭代、刷新、验证,解开一把又一把困扰游戏开发者和玩家的锁。不知不觉地,“腾讯游戏开发精粹”系列要出版第三本图书了,新一批技术好文在此集结,讲述了面向玩家的游戏产品背后的技术原理、权衡、实现与优化。希望本书对游戏行业的逐浪者有所启发,一起推动游戏技术进步,打造优秀的游戏作品。

陆遥,腾讯互动娱乐光子工作室群技术中心副总经理

本书是“腾讯游戏开发精粹”系列的第三本图书。与前两本书一样,本书凝聚了多位腾讯游戏人共同的努力,涉及游戏开发的多个技术领域,包括客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学、动画和物理五个单元,内容翔实而全面。

电子游戏被称为第九艺术,同时它也是先进技术与工程能力的完美结合。本书不仅包括游戏开发的关键技术,还包括腾讯游戏多年来的研发实践,特别是在工具、管线、优化等方面工程落地的实战经验。

总之,《腾讯游戏开发精粹III》是一本全面且实用的书籍,适合想要学习和了解游戏开发的人。我们也希望通过这本书跟业界同人一起学习交流,共同进步。

朱新其,腾讯互动娱乐魔方工作室群技术中心负责人

《腾讯游戏开发精粹III》如约而至。

本书延续了之前图书的实用性和完整性,覆盖了游戏开发中的Gameplay、引擎、服务器、工具及管线等,这些内容扎根于腾讯游戏在一个个具体项目中的实践,以能够完整落地的方式被呈现出来。

本书介绍的技术具有前沿性和时效性。时至今日,国内游戏行业进一步向国际化和高品质发展。相应地,腾讯游戏也有更多的对国际化的实践探索及以Tech Future方式开展的一系列技术探索,这些内容在本书中均有所体现,像可微渲染、国际化的LQA等都是我们在后续开发中实打实要去涉猎的内容。

很高兴能看到这一系列技术从诞生到成熟到在“腾讯游戏开发精粹”系列图书中与大家见面,期待能够帮助大家开发出更优质的游戏作品。

安柏霖,腾讯互动娱乐北极光工作室群技术总监

作为腾讯游戏研发团队的一员,我自以为对公司内外的技术信息也颇关注,但依然从本书中获益良多。来自项目和中台的同事们诚意满满,将各自深耕领域的实践精心整理成篇,不少内容尚属首次公开。在详述技术方案本身之余,一些作者还分享了自己对技术现状和趋势的思考。

通过一篇篇分享,读者可以一窥腾讯的游戏技术:围绕玩家体验和开发运维成本,对经典技术融会贯通的运用与深度改进,达成整体性方案创新;从标准、工具、工作流三方面着手,实现内容的工业化量产;对前沿技术进行扎实的落地探索,扩展玩法和表现的边界。

如果你面临和作者同样的情况,可以尝试直接采用书中的方案;如果你对某个类似问题有自己的解决方案或思路,不妨与书中描述的方案进行印证。无论是哪种情况,相信读者朋友都可以从本书中获得一些技术灵感,增强在游戏技术道路上持续迈进的动力。

胡波,腾讯互动娱乐天美工作室群技术副总监

游戏开发领域的精粹类技术书籍,一向有不错的口碑。所谓精粹类的作品,一般是依照主题,将诸多技术材料汇总,这些材料彼此独立,各自解决相关领域的问题。之所以出现如此多的技术文集,究其根源,也许是行业发展太快,有趣的技术点层出不穷,单独的技术不足以集结成册,时效性又非常重要,于是精粹类书籍定期出版,汇总相关资料。

精粹类书籍内容散,但不代表价值低。恰恰相反,这类书籍一直是我们获取游戏研发技术知识的重要途径。新的研发知识往往类似新闻报纸,虽有时效性,但热门领域层出不穷,沉淀下来的不多;而成熟的研发知识类似经典书籍,时效性稍弱;精粹类的书籍,弥补了两者的不足。类似杂志,精粹类书籍通过专题的形式,兼顾时效和深度,可在其中看见前沿的技术,也可看见经典技术的创新应用方法,这能帮我们补上研发知识拼图的重要一片。

游戏研发领域众多,要深入学习,精粹类书籍往往可以帮助大家开阔视野,启发思路,打通关键难点。《腾讯游戏开发精粹III》作为精粹类书籍的代表,汇总了腾讯内部游戏研发的经验和实践,更贴合国内的游戏市场现状,为研发人员提供更多视角,解决研发中的问题。希望你也能和我一样,喜欢本书。

顾煜,曾任腾讯互动娱乐NExT Studios副总经理

本书沉淀了腾讯多位技术专家在游戏研发方面的一些新实践,是真实游戏项目中第一手开发经验的总结,内容丰富,实战性强,希望无论是新手还是资深开发者,都能从中得到启发和灵感。

《腾讯游戏开发精粹III》是系列图书的新续作,本书内容丰富,涵盖了游戏研发的多个方面,既有客户端引擎和渲染相关的解决方案,又包含服务器端和流程工具的实战总结。不仅如此,本书作为游戏资深从业者第一手开发经验的总结,相关技术方案都来自真实游戏项目的实践,实战性很强。总的来说,本书可以成为游戏技术从业者的宝贵参考,希望无论是新手还是资深开发者,都能有所收获。

王杨军,曾任腾讯互动娱乐研发效能部技术中心副总监


目录

第1章 适用于MOBA游戏的帧同步移动预表现方案 1
1.1 网络游戏的客户端预表现技术 1
1.2 帧同步及客户端预表现原理 2
1.2.1 帧同步的原理与流程 2
1.2.2 逻辑与表现分离 3
1.2.3 客户端预表现基本流程 5
1.3 帧同步下的移动预表现实现方案 6
1.3.1 预测移动的基本表现要素 8
1.3.2 移动预表现与技能衔接处理 8
1.3.3 预测位置的修正 10
1.3.4 墙体和动态阻挡 14
1.4 移动手感指标与实验 15
1.5 总结 17
第2章 基于网格的视野技术方案 18
2.1 实现及原理 19
2.1.1 离线处理 21
2.1.2 运行时处理 25
2.1.3 渲染迷雾 28
2.2 性能优化 29
2.2.1 内存优化 30
2.2.2 计算性能优化 32
2.3 总结 33
第3章 移动端App集成UE的实践 34
3.1 移动端App集成UE简介 34
3.1.1 价值、意义和对手机QQ相关技术的影响 34
3.1.2 线上数据和成果展示 35
3.2 UE的SDK化之旅 35
3.2.1 启动器改造―集成移动端App的关键起点 36
3.2.2 针对移动端App特点的引擎生命周期改造 41
3.3 针对移动端App需求的引擎极致轻量化 44
3.3.1 包体优化:二进制代码文件 44
3.3.2 包体优化:资源文件 46
3.3.3 内存优化 52
3.4 应用功能的展示 58
3.4.1 QQ秀 58
3.4.2 游戏 59
3.4.3 聊天表情录制 60
3.5 总结 60
第4章 UE的Dedicated Server优化实践 61
4.1 DS管理优化 61
4.1.1 游戏服务架构 62
4.1.2 SeedDS模式优化方案 64
4.1.3 MultiWorld模式 69
4.2 Tick优化 74
4.2.1 引擎层Tick优化 74
4.2.2 逻辑层Tick优化 78
4.2.3 Tick优化小结 79
4.3 网络层优化 79
4.3.1 网络同步简介 80
4.3.2 DirtySystem的构建 80
4.3.3 网络相关性优化 83
4.4 业务层优化 87
4.4.1 动画优化 87
4.4.2 OverlapEvents实现分析和性能优化 90
4.5 总结 92
第5章 深入剖析高性能游戏数据库TcaplusDB的存储引擎 93
5.1 数据库存储引擎概述 93
5.2 LSH存储引擎的整体架构 94
5.2.1 LSH存储引擎的设计思想 94
5.2.2 LSH存储引擎架构设计 95
5.2.3 存储引擎的读写删流程 97
5.3 LSH存储引擎的实时自适应设计 99
5.3.1 LSH存储引擎的rehash 100
5.3.2 LSH存储引擎进行数据整理 102
5.4 引擎线程模型及动态负载均衡 105
5.4.1 TcaplusDB的线程模型 105
5.4.2 动态负载均衡算法 105
5.5 总结和展望 107
第6章 面向游戏的服务网格:Tbuspp2 108
6.1 微服务架构模型简介 108
6.2 游戏后台对服务网格的能力需求分析 109
6.2.1 游戏与Web服务后台运行模式的差异 110
6.2.2 为什么需要Tbuspp2 110
6.3 Tbuspp2设计 113
6.3.1 系统架构 113
6.3.2 领域建模 114
6.4 Tbuspp2核心实现机制 118
6.4.1 信令、数据独立信道,支持高效可靠信息交换 118
6.4.2 两级队列模型,提供功能扩展弹性 120
6.4.3 按需路由同步,从容支持大规模集群 122
6.4.4 Stateful Group治理,全面支持游戏后台需求 123
6.5 总结 128
第7章 混合语言程序的混合调用栈火焰图 129
7.1 混合语言程序 129
7.2 混合调用栈火焰图 130
7.2.1 性能热点与火焰图 130
7.2.2 原生调用栈获取问题 131
7.2.3 脚本调用栈获取问题 132
7.2.4 混合调用栈获取问题 134
7.2.5 混合调用栈火焰图监控服务 135
7.3 目标进程的调试控制 137
7.4 快速获取跨进程原生调用栈 140
7.4.1 优化Linux平台的原生调用栈获取 140
7.4.2 优化Windows平台的原生调用栈获取 144
7.4.3 addr2func的查询优化 146
7.4.4 Linux平台中UE的堆栈获取 148
7.5 安全获取跨进程脚本调用栈 150
7.5.1 获取执行环境指针 151
7.5.2 模拟调用栈回溯 154
7.6 合并脚本调用栈与原生调用栈 157
7.7 优化混合调用栈统计数据编码 158
7.8 混合调用栈火焰图获取总结 162
第8章 出海游戏的LQA工业化 163
8.1 LQA工业化背景简介 163
8.2 LQA工业化的过程及方法 166
8.2.1 LQA工业化的提取阶段 168
8.2.2 LQA工业化的翻译阶段 170
8.2.3 LQA工业化的合入阶段 171
8.2.4 LQA工业化的测试阶段 175
8.2.5 LQA工业化的大版本合并阶段 179
8.3 总结 182
第9章 在TPS类游戏中应用可微渲染进行资源转换与优化 183
9.1 在TPS类游戏中应用可微渲染简介 183
9.2 背景知识 184
9.2.1 什么是可微渲染 184
9.2.2 可微渲染的光栅化实现 185
9.2.3 可微渲染在游戏和虚拟现实行业中的应用 187
9.2.4 TPS类游戏的特点 187
9.3 基于可微渲染进行资源转换与优化的一般框架 189
9.4 可微渲染器的实现 190
9.4.1 可微渲染器基本功能的实现 190
9.4.2 游戏方面的修改与扩展 194
9.5 材质拟合相关处理 196
9.5.1 观察视角相关内容的处理 196
9.5.2 材质的处理 198
9.5.3 材质转换之后的效果 200
9.6 网格的处理 202
9.7 总结与展望 204
第10章 DirectX Shader Compiler适配UE4移动平台 205
10.1 着色器与变体 205
10.1.1 移动平台性能评估标准 205
10.1.2 DirectX Shader Compiler 207
10.2 适配UE 208
10.2.1 OpenGL & Vulkan RHI适配 208
10.2.2 Metal RHI适配 211
第11章 大规模复杂场景下光照烘焙面临的挑战及解决方案 219
11.1 光照烘焙的背景与现有解决方案 219
11.2 光照烘焙中大规模光源的管理方案 221
11.2.1 单个光源的选取 222
11.2.2 单个光源的采样 227
11.2.3 基于多重重要性采样的样本融合 228
11.2.4 方案的收益 229
11.3 烘焙中复杂光路下的采样优化 230
11.3.1 一种基于GPU实现的空间方向树的自适应路径引导算法 230
11.3.2 基于时空蓄水池的路径重采样算法 237
11.4 烘焙中的降噪器优化 241
11.4.1 基于双边滤波的自研光照贴图降噪器 241
11.4.2 结合双边滤波的Optix降噪器优化 246
第12章 光照烘焙中基于GPU实现的接缝修复方案 247
12.1 光照烘焙及接缝问题简介 247
12.2 相关背景知识 248
12.2.1 关键术语 248
12.2.2 光线追踪 249
12.2.3 联合双边滤波 249
12.2.4 SVGF 250
12.3 工业界现有光照烘焙接缝修复方案 251
12.4 实现细节 252
12.4.1 Seam Finder Pass 252
12.4.2 Seam Filter Pass 255
12.5 接缝修复效果对比 257
12.6 总结 259
第13章 VRS在移动端的集成与实践 260
13.1 VRS概述 260
13.2 VRS介绍 260
13.2.1 VRS的概念 261
13.2.2 VRS的原理 261
13.2.3 VRS的作用 262
13.3 着色率控制方式 263
13.3.1 Per-Draw 263
13.3.2 Per-Triangle 263
13.3.3 Per-Region 264
13.4 VRS中Per-Draw的集成 265
13.4.1 UE4中的VRS材质 266
13.4.2 VRS中的基元组件 270
13.4.3 VRS中的渲染硬件接口 273
13.5 VRS中Per-Draw的实践 276
13.5.1 将VRS用于具有低频细节材质的物体 276
13.5.2 将VRS用于快速移动的物体 277
13.5.3 将VRS用于近处的物体 279
13.6 总结与展望 281
第14章 基于帧预测的移动端高帧率性能优化技术 282
14.1 解决思路 283
14.2 生成预测帧的方法 285
14.2.1 使用深度在屏幕空间还原场景网格 287
14.2.2 顶点的重投影及走样的修复 289
14.2.3 帧预测的实现 292
14.3 适配帧预测的管线 298
14.3.1 以“渲染帧-预测帧”为一对的渲染管线 298
14.3.2 直接在渲染线程插补中间帧的渲染管线 300
14.4 适配帧预测管线的负载均衡方案 301
14.4.1 管线的渲染负载均衡 302
14.4.2 成对渲染管线中Game线程游戏逻辑的跳帧更新及
负载均衡方案 304
14.5 优化效果与总结 313
第15章 基于UE4的开放世界地形渲染 315
15.1 开放世界地形渲染简介 315
15.2 方案背景 316
15.3 方案设计思路 316
15.4 地形着色方式 318
15.4.1 Weightmap着色 318
15.4.2 MaterialID着色 319
15.4.3 Hybrid MaterialID着色 319
15.4.4 MaterialID编辑工具 320
15.5 地形渲染管线 321
15.5.1 UE4中的Landscape渲染流程 322
15.5.2 GPU Driven Terrain渲染流程 323
15.5.3 CPU端技术细节 324
15.5.4 GPU端技术细节 326
15.6 效果收益与性能分析 332
15.6.1 测试场景 332
15.6.2 Metal平台性能数据 333
15.6.3 OpenGL ES平台性能数据 333
15.7 总结 335
第16章 游戏中的极端天气渲染 336
16.1 游戏中的天气 336
16.2 认识风暴云 337
16.3 中央气旋分析与建模 338
16.3.1 风暴位置与大小 339
16.3.2 风暴眼的形态 340
16.3.3 风暴流动与旋转 345
16.3.4 风暴眼的垂直结构 349
16.3.5 风暴色彩与氛围 351
16.4 流体模拟 352
16.4.1 流体在数学上的表达 353
16.4.2 密度场扩散过程 354
16.4.3 体积云的流体模拟 356
16.5 体积散射与风暴云光照 358
16.5.1 光照方程 358
16.5.2 相函数 360
16.5.3 风暴云光照 362
16.6 闪电与内部光照 365
16.6.1 闪电光照拟合 365
16.6.2 闪电形态 366
16.7 环境交互 367
16.7.1 投影 368
16.7.2 自定义缓冲 368
第17章 移动端贴图压缩优化 371
17.1 ZTC纹理压缩 371
17.2 移动端常见压缩格式回顾 371
17.2.1 ETC1 372
17.2.2 ETC1s 374
17.2.3 ASTC 374
17.2.4 PVRTC 376
17.2.5 ETC1和ASTC的问题 377
17.3 ZTC格式设计 377
17.3.1 支持更多的块尺寸 378
17.3.2 块分区 378
17.3.3 Endpoint Direction(PCA)优化 379
17.3.4 亮度码本修订 380
17.3.5 RGBA格式的压缩 380
17.3.6 基于双线性插值的编码 381
17.4 ZTC数据计算 382
17.4.1 优化base color 383
17.4.2 匹配partition 383
17.4.3 边界拟合 383
17.4.4 ZTC转码ASTC 384
17.4.5 未来的工作 385
17.5 ZTC测试 385
17.5.1 RGB 386
17.5.2 Normal 386
17.5.3 RGBA 387
17.6 总结 388
第18章 显存管理 389
18.1 内存管理 389
18.1.1 内存碎片 389
18.1.2 内存分配算法 390
18.2 通用显存管理 392
18.2.1 为什么要实现通用显存管理 392
18.2.2 VMA介绍 393
18.2.3 VMA显存分配 393
18.2.4 VMA显存碎片整理 402
18.3 专用显存管理 403
18.3.1 GPU Driven显存管理需求 403
18.3.2 GPU Driven显存分配 404
18.3.3 显存碎片整理 406
第19章 基于Vulkan Ray Query的移动端光线追踪反射效果 409
19.1 移动平台的光线追踪特性简介 409
19.1.1 支持光线追踪的图形API 410
19.1.2 光线追踪管线和光线查询 410
19.2 基于光线查询的材质系统 411
19.2.1 现有实现及其局限性 412
19.2.2 可见性缓冲区 414
19.2.3 材质系统的实现 415
19.3 光线追踪反射 422
19.3.1 世界空间法线纹理和Thin GBuffer 423
19.3.2 实现原理 425
19.3.3 结果与分析 428
19.4 总结 429
第20章 移动端全局光照演变的思考与实践 430
20.1 什么是全局光照 430
20.2 静态光照烘焙 431
20.2.1 光照贴图 431
20.2.2 光照探针 432
20.2.3 静态光照烘焙的局限性与优势 433
20.3 基于预计算传输的全局光照 434
20.3.1 如何让光照动起来 434
20.3.2 预计算辐射传输 434
20.3.3 数据存储的优化 435
20.3.4 基于预计算的半动态GI的局限性 436
20.4 动态全局光照SmartGI 437
20.4.1 移动端全动态GI方案的挑战 437
20.4.2 已有全动态GI方案的分析 437
20.4.3 使用混合架构实现全动态GI的基本框架 438
20.4.4 使用屏幕空间数据做光照缓存 439
20.4.5 使用体素化数据做光照缓存 440
20.4.6 使用离散图元做光照缓存 442
20.4.7 多光照缓存的收集 444
20.4.8 全动态GI的性能优化 446
20.4.9 全动态GI的渲染效果 452
20.5 未来的展望与思考 455
20.5.1 GI算法的持续迭代 455
20.5.2 移动端硬件能力的持续演变和提升 456
第21章 动作匹配及神经动画技术 457
21.1 背景介绍 457
21.1.1 自然动画的目标 459
21.1.2 骨骼动画 460
21.1.3 游戏动画中的根骨骼 460
21.1.4 骨骼动画中的正向动力学 461
21.1.5 骨骼动画中的反向动力学 462
21.1.6 游戏动画中的状态机 464
21.2 动作匹配 465
21.2.1 动作捕捉中的数据采集 467
21.2.2 设计动作捕捉中的数据采集的脚本 468
21.2.3 未来轨迹的预测 469
21.2.4 动作姿态特征提取 471
21.2.5 运动数据的混合 472
21.2.6 动作匹配技术总结 473
21.3 基于学习的动作匹配 473
21.3.1 匹配数据的神经网络压缩 473
21.3.2 将动作匹配中涉及的三个网络进行连接 474
21.3.3 神经相位动画技术 475
21.4 游戏动画中的多风格技术 481
21.4.1 游戏动画中的多风格及数据采集 481
21.4.2 多风格网络设计 482
21.4.3 风格效果 484
21.5 小结 485
第22章 深度照片还原――Light Stage人像数字扫描管线 486
22.1 人像扫描介绍 486
22.2 拍摄 488
22.2.1 Light Stage拍摄 488
22.2.2 LookDev拍摄 489
22.3 数据处理 491
22.3.1 Light Stage数据处理 491
22.3.2 LookDev数据处理 493
22.4 三维重建 495
22.4.1 点云匹配 495
22.4.2 模型重构 496
22.4.3 贴图映射 496
22.5 美术制作 496
22.5.1 模型清理 497
22.5.2 模型包裹 498
22.5.3 PBR贴图生成 499
22.5.4 细节纹理贴图 499
22.5.5 高模制作 502
22.5.6 烘焙 503
22.5.7 贴图制作 503
22.6 LookDev 506
22.6.1 毛发制作 506
22.6.2 光照环境匹配 509
22.6.3 Maya Arnold 513
22.6.4 Unreal Substrate 516
22.6.5 Unreal MetaHuman 520
22.7 总结 526
第23章 语音驱动的面部动画生成算法 527
23.1 解决方案与核心技术 527
23.1.1 面部动画驱动技术 528
23.1.2 口型表情动画生成技术 528
23.2 基于音素方案的实现流程 531
23.2.1 总体流程 531
23.2.2 音素、视素、动作单元的概念 532
23.2.3 从音频文件到口型动画的基础实现 538
23.2.4 解决协同发音的难题 542
23.3 其他辅助效果 547
23.3.1 与情绪的结合 547
23.3.2 手势、挑眉、身体姿态的配合 548
23.3.3 最终效果 551
23.4 总结 552

前言/序言

在游主戏产业蓬勃发展的当下,我们迎来了“腾讯游戏开发精粹”系列的第三册。作为该系列的续作,本书秉承前作开放、实用的旨,邀请腾讯游戏多位一线开发者,结合实际开发项目,与广大游戏开发者分享更多具有技术价值和前沿趋势的开发经验,为读者呈现一份内容丰富且实用性强的研发宝典。

游戏研发既涉及内容创意,又包括资源生产和技术开发。为了高效实现游戏内容创意,我们需要强大且高效的工具和流程管线,以支持游戏创作者快速、有效、低成本地尝试不同的设计想法,缩短从概念到实现、验证、反馈以及再次创作的循环通路,使创作者能够更好地发挥创意,专注于内容创意的本质。这不仅有助于提高整体创作效率,还能为游戏带来更丰富、更具吸引力的内容体验。

为了优化游戏资源生产,提高效率与品质,我们需要采用标准化、流程化和自动化的生产管线,这离不开相应制作技术的开发与创新。改进制作技术,可以提高资源生产效率并提升资源制作质量。这样一来,开发团队能在更短的时间内产出更高品质的游戏资源,从而为玩家带来更优质的游戏体验。

在游戏技术开发中,积累丰富的实践经验至关重要。面对不断变化的玩家需求和市场趋势,具备丰富经验的开发者能够迅速应对挑战,寻找解决方案。这种经验的积累不仅有助于提升个人技能,还能为整个团队和项目带来巨大价值。

作为“腾讯游戏开发精粹”系列图书的第三册,本书汇集了腾讯游戏一线开发者在实践过程中针对前述问题的有效答案,涵盖了游戏客户端研发技术、游戏后台研发技术以及游戏引擎开发技术等方面的理论和实际研发经验,旨在与广大游戏开发者分享实用、前沿的开发经验。通过阅读本书,读者能更好地理解游戏开发的全貌,掌握关键技术,并在实际工作中运用所学,实现更高效、更优质的游戏开发。

在此,我们衷心感谢每一位作者,正是他们的专业知识和丰富经验为本书的内容奠定了坚实基础,为广大读者带来了宝贵的技术分享和启示。我们同样要感谢参与本书制作的编写团队成员,他们投入了大量时间和精力,对每个章节进行了仔细的审核和修改。我们期待作者的这些分享和启示能够在实际开发工作中助力读者,为大家提供新的视角,激发创新思维,推动新技术的尝试,为游戏研发领域注入持续的活力。

最后,我们希望“腾讯游戏开发精粹”系列图书能成为每位读者在游戏开发历程中的良师益友,陪伴大家走得更远,共同实现梦想和抱负。同时,欢迎广大读者给予反馈,帮助我们不断改进和提升本系列图书的品质。期待与大家续篇再会。

——WEI NAN 《腾讯游戏开发精粹III》主编、

曾任腾讯互动娱乐天美工作室群引擎技术副总监



编辑推荐

适读人群 :游戏客户端、服务器工程师或有志于投身游戏技术领域的读者。

✓ “腾讯游戏开发精粹”系列惠及百万从业者,本季进一步锚定图形渲染、特效仿真、后台网络架构等关键领域,深入高难度课题,扩大选材范围,紧跟技术前沿,精选已在实际项目中落地的创新技术方案。

✓ 肩负前沿技术和产业未来探索使命, 结合AIGC引领游戏体验新潮流,覆盖从游戏品质与内容国际化到游戏科技力和文化力的认知升级,更贴合国内游戏市场现状,面向内容的工业化量产,不断扩展玩法和表现的边界。

✓ 从游戏客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学,以及动画和物理5个视角,讲述在面向玩家的游戏产品背后,技术原理、权衡、实现与优化如何运作。

✓ 对于资深从业者而言,本书以玩家体验和开发运维成本为核心诉求,强调对经典技术融会贯通地运用与深度改进,达成整体性方案创新;对于新人或学生群体,本书可用来更好地理解游戏开发的全貌,提前理解更高效、更优质的游戏开发精髓。


内容简介

《腾讯游戏开发精粹Ⅲ》是腾讯游戏研发团队不断积累沉淀的技术结晶,是继 2019年推出《腾讯游戏开发精粹I》和《《腾讯游戏开发精粹II》后的诚意续作。本书收录了 21 个在上线项目中得到验证的技术方案,深入介绍了腾讯公司在游戏开发领域的新研究成果和新技术进展,涉及人工智能、计算机图形、动画和物理、客户端架构和技术、服务端架构和技术及管线和工具等多个方向。本书适合游戏从业者、游戏相关专业师生及对游戏幕后技术原理感兴趣的普通玩家。

作者简介

腾讯游戏学堂是腾讯游戏设立的致力于打造游戏知识分享和行业交流的平台,通过游戏行业专业人才培养、高校产学研合作、行业交流及开发者生态建设等,推动游戏行业良性发展,以能力生长,助游戏创作。

精彩书评

在游戏开发技术迭代速度日益加快的今天,技术的时效性和实用性变得尤为重要。《腾讯游戏开发精粹III》秉承本系列图书一贯的风格,再次带来了许多覆盖范围广、紧跟技术前沿,并能在实际项目中落地的技术方案。

本书内容依然来自资深的一线开发人员,是他们在项目开发过程中的积累和沉淀,从客户端架构到服务器端技术及优化,再从管线和工具、资产处理到图形渲染以及动画和数字人,本书不仅是技术文章的集合,也是所涉及模块的前沿思想和实战经验的总结。

希望广大游戏开发者和技术爱好者能从本书中学到实用的技术,并能解决自己项目中的问题。也希望每位读者都能通过阅读本书加深对一些知识的理解,并从这些理解中获得灵感,在未来的游戏开发旅程中创造出更多令人惊艳的作品。

王祢,Epic Games China引擎技术总监

在迅速发展的游戏产业中,开发者需不断寻求创新的技术和方法以保持竞争力。这本书提供了深入的洞察和实践经验,涉及多个关键的游戏开发领域。

本书涵盖了从客户端到网络存储与同步,从本地化质量保证到图形图像学的各方面知识。

无论你是游戏开发新手还是经验丰富的工程师,本书都是不可多得的学习指南。它不仅提供了当前游戏开发中的高级技术细节,还分享了这些技术如何在腾讯实际项目中应用的宝贵经验,以及对未来技术的探索与追求。强烈推荐每位游戏开发相关人员阅读,以开启新的思考并优化游戏开发流程。

罗子雄,所思科技CEO、《猛兽派对》制作人

这些年,我有幸目睹了中国游戏行业的飞速发展,腾讯更是其中的佼佼者。令人欣慰的是,腾讯作为国内游戏开发行业的领头羊之一,愿意把自己多年来在游戏设计和研发上的经验编撰成书,与大家分享。本书全面覆盖了时下游戏开发中从图形渲染、特效仿真到后台网络架构的各个方面,并对每一个课题进行了深入探讨。对于读者来说,本书既可作为游戏开发专业的教科书,也可以作为日常工作查阅参考的工具书。相信无论是初学游戏开发的学生还是经验丰富的游戏研发人员,都能从本书中得到有益的启发。

朱克宁,香港城市大学教授

《腾讯游戏开发精粹III》不仅是游戏发展历程的见证,更是前沿游戏技术和人工智能在游戏领域融合创新的生动写照。作为游戏产业的引领者,腾讯游戏的开发人员在本书中深刻阐释了具有实践价值的前沿游戏技术带来的变革力量。从引擎优化到实时渲染,从数字内容创作到虚拟现实技术,腾讯在技术广度与深度上的不断突破为玩家的游戏体验带来了前所未有的升华。

尤其值得关注的是书中对AIGC(人工智能生成内容)技术的探索。在游戏创作中,AIGC技术不仅为开发者带来了效率的提升,更为玩家带来了个性化、多样化的游戏体验。腾讯凭借对AIGC技术的深刻理解和不断探索,致力于为玩家创造一个栩栩如生的虚拟世界,让每一位玩家都能沉浸其中,享受与AI角色的交互与探索。

本书对这些前沿技术的探索是对整个游戏产业未来发展方向的启示。在这个充满变革的时代,传统游戏技术和AIGC技术的结合将引领游戏体验的新潮流。《腾讯游戏开发精粹III》在这一前沿领域的探索与实践,让我们对游戏的未来充满期待。

谢宁,电子科技大学教授

《腾讯游戏开发精粹III》是本系列作品的第三部,与前作时隔三年。这三年从游戏玩家对游戏品质与内容的诉求升级,到社会和产业对游戏科技力与文化力的认知革新,无不驱使游戏行业从业者在视角和维度上不断变化与提升,这在本书的23个技术案例中均有立体呈现。

“腾讯游戏开发精粹”作为腾讯游戏学堂发起的系列技术干货好文集锦,力求做到在扎根实战的同时,敏锐捕捉前沿技术的创新与探索。希望本书能帮助到游戏及相关行业的探索者,我们也以此为契机,期待更多的公司与团体能参与分享交流、助力技术沉淀。以能力生长,助游戏创作。

夏琳,腾讯游戏副总裁、腾讯游戏学堂院长

游戏技术涉猎甚广,包含计算机体系架构、计算机图形学、AI、物理等各学科知识和前沿技术。本书在前两本图书的基础上,从游戏客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学,以及动画和物理这5大部分进行深入讨论和阐述。每部分都展示了游戏研发中的一些核心技术点。对每个点都从基本原理到具体的实践,以及其中的一些关键技巧和效果做了充分的阐述。

本书涵盖了游戏研发的多个方面,兼顾深度和广度,对游戏从业人员以及有志向相关方向发展的朋友来说都是很好的学习资料。

邓大付,腾讯互动娱乐研发效能部助理总经理

在游戏开发的实践过程中,时不时地会遇到各种棘手问题,为此,需要游戏开发者扎进游戏研发场景中,不断提出新思路与新方案,持续尝试、迭代、刷新、验证,解开一把又一把困扰游戏开发者和玩家的锁。不知不觉地,“腾讯游戏开发精粹”系列要出版第三本图书了,新一批技术好文在此集结,讲述了面向玩家的游戏产品背后的技术原理、权衡、实现与优化。希望本书对游戏行业的逐浪者有所启发,一起推动游戏技术进步,打造优秀的游戏作品。

陆遥,腾讯互动娱乐光子工作室群技术中心副总经理

本书是“腾讯游戏开发精粹”系列的第三本图书。与前两本书一样,本书凝聚了多位腾讯游戏人共同的努力,涉及游戏开发的多个技术领域,包括客户端架构和技术、服务器端架构和技术、管线和工具、计算机图形学、动画和物理五个单元,内容翔实而全面。

电子游戏被称为第九艺术,同时它也是先进技术与工程能力的完美结合。本书不仅包括游戏开发的关键技术,还包括腾讯游戏多年来的研发实践,特别是在工具、管线、优化等方面工程落地的实战经验。

总之,《腾讯游戏开发精粹III》是一本全面且实用的书籍,适合想要学习和了解游戏开发的人。我们也希望通过这本书跟业界同人一起学习交流,共同进步。

朱新其,腾讯互动娱乐魔方工作室群技术中心负责人

《腾讯游戏开发精粹III》如约而至。

本书延续了之前图书的实用性和完整性,覆盖了游戏开发中的Gameplay、引擎、服务器、工具及管线等,这些内容扎根于腾讯游戏在一个个具体项目中的实践,以能够完整落地的方式被呈现出来。

本书介绍的技术具有前沿性和时效性。时至今日,国内游戏行业进一步向国际化和高品质发展。相应地,腾讯游戏也有更多的对国际化的实践探索及以Tech Future方式开展的一系列技术探索,这些内容在本书中均有所体现,像可微渲染、国际化的LQA等都是我们在后续开发中实打实要去涉猎的内容。

很高兴能看到这一系列技术从诞生到成熟到在“腾讯游戏开发精粹”系列图书中与大家见面,期待能够帮助大家开发出更优质的游戏作品。

安柏霖,腾讯互动娱乐北极光工作室群技术总监

作为腾讯游戏研发团队的一员,我自以为对公司内外的技术信息也颇关注,但依然从本书中获益良多。来自项目和中台的同事们诚意满满,将各自深耕领域的实践精心整理成篇,不少内容尚属首次公开。在详述技术方案本身之余,一些作者还分享了自己对技术现状和趋势的思考。

通过一篇篇分享,读者可以一窥腾讯的游戏技术:围绕玩家体验和开发运维成本,对经典技术融会贯通的运用与深度改进,达成整体性方案创新;从标准、工具、工作流三方面着手,实现内容的工业化量产;对前沿技术进行扎实的落地探索,扩展玩法和表现的边界。

如果你面临和作者同样的情况,可以尝试直接采用书中的方案;如果你对某个类似问题有自己的解决方案或思路,不妨与书中描述的方案进行印证。无论是哪种情况,相信读者朋友都可以从本书中获得一些技术灵感,增强在游戏技术道路上持续迈进的动力。

胡波,腾讯互动娱乐天美工作室群技术副总监

游戏开发领域的精粹类技术书籍,一向有不错的口碑。所谓精粹类的作品,一般是依照主题,将诸多技术材料汇总,这些材料彼此独立,各自解决相关领域的问题。之所以出现如此多的技术文集,究其根源,也许是行业发展太快,有趣的技术点层出不穷,单独的技术不足以集结成册,时效性又非常重要,于是精粹类书籍定期出版,汇总相关资料。

精粹类书籍内容散,但不代表价值低。恰恰相反,这类书籍一直是我们获取游戏研发技术知识的重要途径。新的研发知识往往类似新闻报纸,虽有时效性,但热门领域层出不穷,沉淀下来的不多;而成熟的研发知识类似经典书籍,时效性稍弱;精粹类的书籍,弥补了两者的不足。类似杂志,精粹类书籍通过专题的形式,兼顾时效和深度,可在其中看见前沿的技术,也可看见经典技术的创新应用方法,这能帮我们补上研发知识拼图的重要一片。

游戏研发领域众多,要深入学习,精粹类书籍往往可以帮助大家开阔视野,启发思路,打通关键难点。《腾讯游戏开发精粹III》作为精粹类书籍的代表,汇总了腾讯内部游戏研发的经验和实践,更贴合国内的游戏市场现状,为研发人员提供更多视角,解决研发中的问题。希望你也能和我一样,喜欢本书。

顾煜,曾任腾讯互动娱乐NExT Studios副总经理

本书沉淀了腾讯多位技术专家在游戏研发方面的一些新实践,是真实游戏项目中第一手开发经验的总结,内容丰富,实战性强,希望无论是新手还是资深开发者,都能从中得到启发和灵感。

《腾讯游戏开发精粹III》是系列图书的新续作,本书内容丰富,涵盖了游戏研发的多个方面,既有客户端引擎和渲染相关的解决方案,又包含服务器端和流程工具的实战总结。不仅如此,本书作为游戏资深从业者第一手开发经验的总结,相关技术方案都来自真实游戏项目的实践,实战性很强。总的来说,本书可以成为游戏技术从业者的宝贵参考,希望无论是新手还是资深开发者,都能有所收获。

王杨军,曾任腾讯互动娱乐研发效能部技术中心副总监


目录

第1章 适用于MOBA游戏的帧同步移动预表现方案 1
1.1 网络游戏的客户端预表现技术 1
1.2 帧同步及客户端预表现原理 2
1.2.1 帧同步的原理与流程 2
1.2.2 逻辑与表现分离 3
1.2.3 客户端预表现基本流程 5
1.3 帧同步下的移动预表现实现方案 6
1.3.1 预测移动的基本表现要素 8
1.3.2 移动预表现与技能衔接处理 8
1.3.3 预测位置的修正 10
1.3.4 墙体和动态阻挡 14
1.4 移动手感指标与实验 15
1.5 总结 17
第2章 基于网格的视野技术方案 18
2.1 实现及原理 19
2.1.1 离线处理 21
2.1.2 运行时处理 25
2.1.3 渲染迷雾 28
2.2 性能优化 29
2.2.1 内存优化 30
2.2.2 计算性能优化 32
2.3 总结 33
第3章 移动端App集成UE的实践 34
3.1 移动端App集成UE简介 34
3.1.1 价值、意义和对手机QQ相关技术的影响 34
3.1.2 线上数据和成果展示 35
3.2 UE的SDK化之旅 35
3.2.1 启动器改造―集成移动端App的关键起点 36
3.2.2 针对移动端App特点的引擎生命周期改造 41
3.3 针对移动端App需求的引擎极致轻量化 44
3.3.1 包体优化:二进制代码文件 44
3.3.2 包体优化:资源文件 46
3.3.3 内存优化 52
3.4 应用功能的展示 58
3.4.1 QQ秀 58
3.4.2 游戏 59
3.4.3 聊天表情录制 60
3.5 总结 60
第4章 UE的Dedicated Server优化实践 61
4.1 DS管理优化 61
4.1.1 游戏服务架构 62
4.1.2 SeedDS模式优化方案 64
4.1.3 MultiWorld模式 69
4.2 Tick优化 74
4.2.1 引擎层Tick优化 74
4.2.2 逻辑层Tick优化 78
4.2.3 Tick优化小结 79
4.3 网络层优化 79
4.3.1 网络同步简介 80
4.3.2 DirtySystem的构建 80
4.3.3 网络相关性优化 83
4.4 业务层优化 87
4.4.1 动画优化 87
4.4.2 OverlapEvents实现分析和性能优化 90
4.5 总结 92
第5章 深入剖析高性能游戏数据库TcaplusDB的存储引擎 93
5.1 数据库存储引擎概述 93
5.2 LSH存储引擎的整体架构 94
5.2.1 LSH存储引擎的设计思想 94
5.2.2 LSH存储引擎架构设计 95
5.2.3 存储引擎的读写删流程 97
5.3 LSH存储引擎的实时自适应设计 99
5.3.1 LSH存储引擎的rehash 100
5.3.2 LSH存储引擎进行数据整理 102
5.4 引擎线程模型及动态负载均衡 105
5.4.1 TcaplusDB的线程模型 105
5.4.2 动态负载均衡算法 105
5.5 总结和展望 107
第6章 面向游戏的服务网格:Tbuspp2 108
6.1 微服务架构模型简介 108
6.2 游戏后台对服务网格的能力需求分析 109
6.2.1 游戏与Web服务后台运行模式的差异 110
6.2.2 为什么需要Tbuspp2 110
6.3 Tbuspp2设计 113
6.3.1 系统架构 113
6.3.2 领域建模 114
6.4 Tbuspp2核心实现机制 118
6.4.1 信令、数据独立信道,支持高效可靠信息交换 118
6.4.2 两级队列模型,提供功能扩展弹性 120
6.4.3 按需路由同步,从容支持大规模集群 122
6.4.4 Stateful Group治理,全面支持游戏后台需求 123
6.5 总结 128
第7章 混合语言程序的混合调用栈火焰图 129
7.1 混合语言程序 129
7.2 混合调用栈火焰图 130
7.2.1 性能热点与火焰图 130
7.2.2 原生调用栈获取问题 131
7.2.3 脚本调用栈获取问题 132
7.2.4 混合调用栈获取问题 134
7.2.5 混合调用栈火焰图监控服务 135
7.3 目标进程的调试控制 137
7.4 快速获取跨进程原生调用栈 140
7.4.1 优化Linux平台的原生调用栈获取 140
7.4.2 优化Windows平台的原生调用栈获取 144
7.4.3 addr2func的查询优化 146
7.4.4 Linux平台中UE的堆栈获取 148
7.5 安全获取跨进程脚本调用栈 150
7.5.1 获取执行环境指针 151
7.5.2 模拟调用栈回溯 154
7.6 合并脚本调用栈与原生调用栈 157
7.7 优化混合调用栈统计数据编码 158
7.8 混合调用栈火焰图获取总结 162
第8章 出海游戏的LQA工业化 163
8.1 LQA工业化背景简介 163
8.2 LQA工业化的过程及方法 166
8.2.1 LQA工业化的提取阶段 168
8.2.2 LQA工业化的翻译阶段 170
8.2.3 LQA工业化的合入阶段 171
8.2.4 LQA工业化的测试阶段 175
8.2.5 LQA工业化的大版本合并阶段 179
8.3 总结 182
第9章 在TPS类游戏中应用可微渲染进行资源转换与优化 183
9.1 在TPS类游戏中应用可微渲染简介 183
9.2 背景知识 184
9.2.1 什么是可微渲染 184
9.2.2 可微渲染的光栅化实现 185
9.2.3 可微渲染在游戏和虚拟现实行业中的应用 187
9.2.4 TPS类游戏的特点 187
9.3 基于可微渲染进行资源转换与优化的一般框架 189
9.4 可微渲染器的实现 190
9.4.1 可微渲染器基本功能的实现 190
9.4.2 游戏方面的修改与扩展 194
9.5 材质拟合相关处理 196
9.5.1 观察视角相关内容的处理 196
9.5.2 材质的处理 198
9.5.3 材质转换之后的效果 200
9.6 网格的处理 202
9.7 总结与展望 204
第10章 DirectX Shader Compiler适配UE4移动平台 205
10.1 着色器与变体 205
10.1.1 移动平台性能评估标准 205
10.1.2 DirectX Shader Compiler 207
10.2 适配UE 208
10.2.1 OpenGL & Vulkan RHI适配 208
10.2.2 Metal RHI适配 211
第11章 大规模复杂场景下光照烘焙面临的挑战及解决方案 219
11.1 光照烘焙的背景与现有解决方案 219
11.2 光照烘焙中大规模光源的管理方案 221
11.2.1 单个光源的选取 222
11.2.2 单个光源的采样 227
11.2.3 基于多重重要性采样的样本融合 228
11.2.4 方案的收益 229
11.3 烘焙中复杂光路下的采样优化 230
11.3.1 一种基于GPU实现的空间方向树的自适应路径引导算法 230
11.3.2 基于时空蓄水池的路径重采样算法 237
11.4 烘焙中的降噪器优化 241
11.4.1 基于双边滤波的自研光照贴图降噪器 241
11.4.2 结合双边滤波的Optix降噪器优化 246
第12章 光照烘焙中基于GPU实现的接缝修复方案 247
12.1 光照烘焙及接缝问题简介 247
12.2 相关背景知识 248
12.2.1 关键术语 248
12.2.2 光线追踪 249
12.2.3 联合双边滤波 249
12.2.4 SVGF 250
12.3 工业界现有光照烘焙接缝修复方案 251
12.4 实现细节 252
12.4.1 Seam Finder Pass 252
12.4.2 Seam Filter Pass 255
12.5 接缝修复效果对比 257
12.6 总结 259
第13章 VRS在移动端的集成与实践 260
13.1 VRS概述 260
13.2 VRS介绍 260
13.2.1 VRS的概念 261
13.2.2 VRS的原理 261
13.2.3 VRS的作用 262
13.3 着色率控制方式 263
13.3.1 Per-Draw 263
13.3.2 Per-Triangle 263
13.3.3 Per-Region 264
13.4 VRS中Per-Draw的集成 265
13.4.1 UE4中的VRS材质 266
13.4.2 VRS中的基元组件 270
13.4.3 VRS中的渲染硬件接口 273
13.5 VRS中Per-Draw的实践 276
13.5.1 将VRS用于具有低频细节材质的物体 276
13.5.2 将VRS用于快速移动的物体 277
13.5.3 将VRS用于近处的物体 279
13.6 总结与展望 281
第14章 基于帧预测的移动端高帧率性能优化技术 282
14.1 解决思路 283
14.2 生成预测帧的方法 285
14.2.1 使用深度在屏幕空间还原场景网格 287
14.2.2 顶点的重投影及走样的修复 289
14.2.3 帧预测的实现 292
14.3 适配帧预测的管线 298
14.3.1 以“渲染帧-预测帧”为一对的渲染管线 298
14.3.2 直接在渲染线程插补中间帧的渲染管线 300
14.4 适配帧预测管线的负载均衡方案 301
14.4.1 管线的渲染负载均衡 302
14.4.2 成对渲染管线中Game线程游戏逻辑的跳帧更新及
负载均衡方案 304
14.5 优化效果与总结 313
第15章 基于UE4的开放世界地形渲染 315
15.1 开放世界地形渲染简介 315
15.2 方案背景 316
15.3 方案设计思路 316
15.4 地形着色方式 318
15.4.1 Weightmap着色 318
15.4.2 MaterialID着色 319
15.4.3 Hybrid MaterialID着色 319
15.4.4 MaterialID编辑工具 320
15.5 地形渲染管线 321
15.5.1 UE4中的Landscape渲染流程 322
15.5.2 GPU Driven Terrain渲染流程 323
15.5.3 CPU端技术细节 324
15.5.4 GPU端技术细节 326
15.6 效果收益与性能分析 332
15.6.1 测试场景 332
15.6.2 Metal平台性能数据 333
15.6.3 OpenGL ES平台性能数据 333
15.7 总结 335
第16章 游戏中的极端天气渲染 336
16.1 游戏中的天气 336
16.2 认识风暴云 337
16.3 中央气旋分析与建模 338
16.3.1 风暴位置与大小 339
16.3.2 风暴眼的形态 340
16.3.3 风暴流动与旋转 345
16.3.4 风暴眼的垂直结构 349
16.3.5 风暴色彩与氛围 351
16.4 流体模拟 352
16.4.1 流体在数学上的表达 353
16.4.2 密度场扩散过程 354
16.4.3 体积云的流体模拟 356
16.5 体积散射与风暴云光照 358
16.5.1 光照方程 358
16.5.2 相函数 360
16.5.3 风暴云光照 362
16.6 闪电与内部光照 365
16.6.1 闪电光照拟合 365
16.6.2 闪电形态 366
16.7 环境交互 367
16.7.1 投影 368
16.7.2 自定义缓冲 368
第17章 移动端贴图压缩优化 371
17.1 ZTC纹理压缩 371
17.2 移动端常见压缩格式回顾 371
17.2.1 ETC1 372
17.2.2 ETC1s 374
17.2.3 ASTC 374
17.2.4 PVRTC 376
17.2.5 ETC1和ASTC的问题 377
17.3 ZTC格式设计 377
17.3.1 支持更多的块尺寸 378
17.3.2 块分区 378
17.3.3 Endpoint Direction(PCA)优化 379
17.3.4 亮度码本修订 380
17.3.5 RGBA格式的压缩 380
17.3.6 基于双线性插值的编码 381
17.4 ZTC数据计算 382
17.4.1 优化base color 383
17.4.2 匹配partition 383
17.4.3 边界拟合 383
17.4.4 ZTC转码ASTC 384
17.4.5 未来的工作 385
17.5 ZTC测试 385
17.5.1 RGB 386
17.5.2 Normal 386
17.5.3 RGBA 387
17.6 总结 388
第18章 显存管理 389
18.1 内存管理 389
18.1.1 内存碎片 389
18.1.2 内存分配算法 390
18.2 通用显存管理 392
18.2.1 为什么要实现通用显存管理 392
18.2.2 VMA介绍 393
18.2.3 VMA显存分配 393
18.2.4 VMA显存碎片整理 402
18.3 专用显存管理 403
18.3.1 GPU Driven显存管理需求 403
18.3.2 GPU Driven显存分配 404
18.3.3 显存碎片整理 406
第19章 基于Vulkan Ray Query的移动端光线追踪反射效果 409
19.1 移动平台的光线追踪特性简介 409
19.1.1 支持光线追踪的图形API 410
19.1.2 光线追踪管线和光线查询 410
19.2 基于光线查询的材质系统 411
19.2.1 现有实现及其局限性 412
19.2.2 可见性缓冲区 414
19.2.3 材质系统的实现 415
19.3 光线追踪反射 422
19.3.1 世界空间法线纹理和Thin GBuffer 423
19.3.2 实现原理 425
19.3.3 结果与分析 428
19.4 总结 429
第20章 移动端全局光照演变的思考与实践 430
20.1 什么是全局光照 430
20.2 静态光照烘焙 431
20.2.1 光照贴图 431
20.2.2 光照探针 432
20.2.3 静态光照烘焙的局限性与优势 433
20.3 基于预计算传输的全局光照 434
20.3.1 如何让光照动起来 434
20.3.2 预计算辐射传输 434
20.3.3 数据存储的优化 435
20.3.4 基于预计算的半动态GI的局限性 436
20.4 动态全局光照SmartGI 437
20.4.1 移动端全动态GI方案的挑战 437
20.4.2 已有全动态GI方案的分析 437
20.4.3 使用混合架构实现全动态GI的基本框架 438
20.4.4 使用屏幕空间数据做光照缓存 439
20.4.5 使用体素化数据做光照缓存 440
20.4.6 使用离散图元做光照缓存 442
20.4.7 多光照缓存的收集 444
20.4.8 全动态GI的性能优化 446
20.4.9 全动态GI的渲染效果 452
20.5 未来的展望与思考 455
20.5.1 GI算法的持续迭代 455
20.5.2 移动端硬件能力的持续演变和提升 456
第21章 动作匹配及神经动画技术 457
21.1 背景介绍 457
21.1.1 自然动画的目标 459
21.1.2 骨骼动画 460
21.1.3 游戏动画中的根骨骼 460
21.1.4 骨骼动画中的正向动力学 461
21.1.5 骨骼动画中的反向动力学 462
21.1.6 游戏动画中的状态机 464
21.2 动作匹配 465
21.2.1 动作捕捉中的数据采集 467
21.2.2 设计动作捕捉中的数据采集的脚本 468
21.2.3 未来轨迹的预测 469
21.2.4 动作姿态特征提取 471
21.2.5 运动数据的混合 472
21.2.6 动作匹配技术总结 473
21.3 基于学习的动作匹配 473
21.3.1 匹配数据的神经网络压缩 473
21.3.2 将动作匹配中涉及的三个网络进行连接 474
21.3.3 神经相位动画技术 475
21.4 游戏动画中的多风格技术 481
21.4.1 游戏动画中的多风格及数据采集 481
21.4.2 多风格网络设计 482
21.4.3 风格效果 484
21.5 小结 485
第22章 深度照片还原――Light Stage人像数字扫描管线 486
22.1 人像扫描介绍 486
22.2 拍摄 488
22.2.1 Light Stage拍摄 488
22.2.2 LookDev拍摄 489
22.3 数据处理 491
22.3.1 Light Stage数据处理 491
22.3.2 LookDev数据处理 493
22.4 三维重建 495
22.4.1 点云匹配 495
22.4.2 模型重构 496
22.4.3 贴图映射 496
22.5 美术制作 496
22.5.1 模型清理 497
22.5.2 模型包裹 498
22.5.3 PBR贴图生成 499
22.5.4 细节纹理贴图 499
22.5.5 高模制作 502
22.5.6 烘焙 503
22.5.7 贴图制作 503
22.6 LookDev 506
22.6.1 毛发制作 506
22.6.2 光照环境匹配 509
22.6.3 Maya Arnold 513
22.6.4 Unreal Substrate 516
22.6.5 Unreal MetaHuman 520
22.7 总结 526
第23章 语音驱动的面部动画生成算法 527
23.1 解决方案与核心技术 527
23.1.1 面部动画驱动技术 528
23.1.2 口型表情动画生成技术 528
23.2 基于音素方案的实现流程 531
23.2.1 总体流程 531
23.2.2 音素、视素、动作单元的概念 532
23.2.3 从音频文件到口型动画的基础实现 538
23.2.4 解决协同发音的难题 542
23.3 其他辅助效果 547
23.3.1 与情绪的结合 547
23.3.2 手势、挑眉、身体姿态的配合 548
23.3.3 最终效果 551
23.4 总结 552

前言/序言

在游主戏产业蓬勃发展的当下,我们迎来了“腾讯游戏开发精粹”系列的第三册。作为该系列的续作,本书秉承前作开放、实用的旨,邀请腾讯游戏多位一线开发者,结合实际开发项目,与广大游戏开发者分享更多具有技术价值和前沿趋势的开发经验,为读者呈现一份内容丰富且实用性强的研发宝典。

游戏研发既涉及内容创意,又包括资源生产和技术开发。为了高效实现游戏内容创意,我们需要强大且高效的工具和流程管线,以支持游戏创作者快速、有效、低成本地尝试不同的设计想法,缩短从概念到实现、验证、反馈以及再次创作的循环通路,使创作者能够更好地发挥创意,专注于内容创意的本质。这不仅有助于提高整体创作效率,还能为游戏带来更丰富、更具吸引力的内容体验。

为了优化游戏资源生产,提高效率与品质,我们需要采用标准化、流程化和自动化的生产管线,这离不开相应制作技术的开发与创新。改进制作技术,可以提高资源生产效率并提升资源制作质量。这样一来,开发团队能在更短的时间内产出更高品质的游戏资源,从而为玩家带来更优质的游戏体验。

在游戏技术开发中,积累丰富的实践经验至关重要。面对不断变化的玩家需求和市场趋势,具备丰富经验的开发者能够迅速应对挑战,寻找解决方案。这种经验的积累不仅有助于提升个人技能,还能为整个团队和项目带来巨大价值。

作为“腾讯游戏开发精粹”系列图书的第三册,本书汇集了腾讯游戏一线开发者在实践过程中针对前述问题的有效答案,涵盖了游戏客户端研发技术、游戏后台研发技术以及游戏引擎开发技术等方面的理论和实际研发经验,旨在与广大游戏开发者分享实用、前沿的开发经验。通过阅读本书,读者能更好地理解游戏开发的全貌,掌握关键技术,并在实际工作中运用所学,实现更高效、更优质的游戏开发。

在此,我们衷心感谢每一位作者,正是他们的专业知识和丰富经验为本书的内容奠定了坚实基础,为广大读者带来了宝贵的技术分享和启示。我们同样要感谢参与本书制作的编写团队成员,他们投入了大量时间和精力,对每个章节进行了仔细的审核和修改。我们期待作者的这些分享和启示能够在实际开发工作中助力读者,为大家提供新的视角,激发创新思维,推动新技术的尝试,为游戏研发领域注入持续的活力。

最后,我们希望“腾讯游戏开发精粹”系列图书能成为每位读者在游戏开发历程中的良师益友,陪伴大家走得更远,共同实现梦想和抱负。同时,欢迎广大读者给予反馈,帮助我们不断改进和提升本系列图书的品质。期待与大家续篇再会。

——WEI NAN 《腾讯游戏开发精粹III》主编、

曾任腾讯互动娱乐天美工作室群引擎技术副总监