騰訊游戲開發精粹Ⅲ

騰訊游戲

  • 出版商: 電子工業
  • 出版日期: 2024-11-01
  • 定價: $1,008
  • 售價: 8.5$857
  • 語言: 簡體中文
  • 頁數: 576
  • ISBN: 7121489406
  • ISBN-13: 9787121489402
  • 尚未上市,歡迎預購

相關主題

商品描述

《騰訊游戲開發精粹Ⅲ》是騰訊游戲研發團隊不斷積累沉澱的技術結晶,是繼 2019年推出《騰訊游戲開發精粹I》和《《騰訊游戲開發精粹II》後的誠意續作。本書收錄了 21 個在上線項目中得到驗證的技術方案,深入介紹了騰訊公司在游戲開發領域的新研究成果和新技術進展,涉及人工智能、電腦圖形、動畫和物理、客戶端架構和技術、服務端架構和技術及管線和工具等多個方向。本書適合游戲從業者、游戲相關專業師生及對游戲幕後技術原理感興趣的普通玩家。

目錄大綱

第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