關(guān)于我們
書單推薦
新書推薦
|
騰訊游戲開發(fā)精粹Ⅲ 讀者對象:游戲客戶端、服務(wù)器工程師或有志于投身游戲技術(shù)領(lǐng)域的讀者。
《騰訊游戲開發(fā)精粹Ⅲ》是騰訊游戲研發(fā)團隊不斷積累沉淀的技術(shù)結(jié)晶,是繼 2019年推出《騰訊游戲開發(fā)精粹I》和《《騰訊游戲開發(fā)精粹II》后的誠意續(xù)作。本書收錄了 21 個在上線項目中得到驗證的技術(shù)方案,深入介紹了騰訊公司在游戲開發(fā)領(lǐng)域的新研究成果和新技術(shù)進展,涉及人工智能、計算機圖形、動畫和物理、客戶端架構(gòu)和技術(shù)、服務(wù)端架構(gòu)和技術(shù)及管線和工具等多個方向。本書適合游戲從業(yè)者、游戲相關(guān)專業(yè)師生及對游戲幕后技術(shù)原理感興趣的普通玩家。
騰訊游戲?qū)W堂是騰訊游戲設(shè)立的致力于打造游戲知識分享和行業(yè)交流的平臺,通過游戲行業(yè)專業(yè)人才培養(yǎng)、高校產(chǎn)學研合作、行業(yè)交流及開發(fā)者生態(tài)建設(shè)等,推動游戲行業(yè)良性發(fā)展,以能力生長,助游戲創(chuàng)作。
第1章 適用于MOBA游戲的幀同步移動預表現(xiàn)方案 1
1.1 網(wǎng)絡(luò)游戲的客戶端預表現(xiàn)技術(shù) 1 1.2 幀同步及客戶端預表現(xiàn)原理 2 1.2.1 幀同步的原理與流程 2 1.2.2 邏輯與表現(xiàn)分離 3 1.2.3 客戶端預表現(xiàn)基本流程 5 1.3 幀同步下的移動預表現(xiàn)實現(xiàn)方案 6 1.3.1 預測移動的基本表現(xiàn)要素 8 1.3.2 移動預表現(xiàn)與技能銜接處理 8 1.3.3 預測位置的修正 10 1.3.4 墻體和動態(tài)阻擋 14 1.4 移動手感指標與實驗 15 1.5 總結(jié) 17 第2章 基于網(wǎng)格的視野技術(shù)方案 18 2.1 實現(xiàn)及原理 19 2.1.1 離線處理 21 2.1.2 運行時處理 25 2.1.3 渲染迷霧 28 2.2 性能優(yōu)化 29 2.2.1 內(nèi)存優(yōu)化 30 2.2.2 計算性能優(yōu)化 32 2.3 總結(jié) 33 第3章 移動端App集成UE的實踐 34 3.1 移動端App集成UE簡介 34 3.1.1 價值、意義和對手機QQ相關(guān)技術(shù)的影響 34 3.1.2 線上數(shù)據(jù)和成果展示 35 3.2 UE的SDK化之旅 35 3.2.1 啟動器改造—集成移動端App的關(guān)鍵起點 36 3.2.2 針對移動端App特點的引擎生命周期改造 41 3.3 針對移動端App需求的引擎極致輕量化 44 3.3.1 包體優(yōu)化:二進制代碼文件 44 3.3.2 包體優(yōu)化:資源文件 46 3.3.3 內(nèi)存優(yōu)化 52 3.4 應(yīng)用功能的展示 58 3.4.1 QQ秀 58 3.4.2 游戲 59 3.4.3 聊天表情錄制 60 3.5 總結(jié) 60 第4章 UE的Dedicated Server優(yōu)化實踐 61 4.1 DS管理優(yōu)化 61 4.1.1 游戲服務(wù)架構(gòu) 62 4.1.2 SeedDS模式優(yōu)化方案 64 4.1.3 MultiWorld模式 69 4.2 Tick優(yōu)化 74 4.2.1 引擎層Tick優(yōu)化 74 4.2.2 邏輯層Tick優(yōu)化 78 4.2.3 Tick優(yōu)化小結(jié) 79 4.3 網(wǎng)絡(luò)層優(yōu)化 79 4.3.1 網(wǎng)絡(luò)同步簡介 80 4.3.2 DirtySystem的構(gòu)建 80 4.3.3 網(wǎng)絡(luò)相關(guān)性優(yōu)化 83 4.4 業(yè)務(wù)層優(yōu)化 87 4.4.1 動畫優(yōu)化 87 4.4.2 OverlapEvents實現(xiàn)分析和性能優(yōu)化 90 4.5 總結(jié) 92 第5章 深入剖析高性能游戲數(shù)據(jù)庫TcaplusDB的存儲引擎 93 5.1 數(shù)據(jù)庫存儲引擎概述 93 5.2 LSH存儲引擎的整體架構(gòu) 94 5.2.1 LSH存儲引擎的設(shè)計思想 94 5.2.2 LSH存儲引擎架構(gòu)設(shè)計 95 5.2.3 存儲引擎的讀寫刪流程 97 5.3 LSH存儲引擎的實時自適應(yīng)設(shè)計 99 5.3.1 LSH存儲引擎的rehash 100 5.3.2 LSH存儲引擎進行數(shù)據(jù)整理 102 5.4 引擎線程模型及動態(tài)負載均衡 105 5.4.1 TcaplusDB的線程模型 105 5.4.2 動態(tài)負載均衡算法 105 5.5 總結(jié)和展望 107 第6章 面向游戲的服務(wù)網(wǎng)格:Tbuspp2 108 6.1 微服務(wù)架構(gòu)模型簡介 108 6.2 游戲后臺對服務(wù)網(wǎng)格的能力需求分析 109 6.2.1 游戲與Web服務(wù)后臺運行模式的差異 110 6.2.2 為什么需要Tbuspp2 110 6.3 Tbuspp2設(shè)計 113 6.3.1 系統(tǒng)架構(gòu) 113 6.3.2 領(lǐng)域建模 114 6.4 Tbuspp2核心實現(xiàn)機制 118 6.4.1 信令、數(shù)據(jù)獨立信道,支持高效可靠信息交換 118 6.4.2 兩級隊列模型,提供功能擴展彈性 120 6.4.3 按需路由同步,從容支持大規(guī)模集群 122 6.4.4 Stateful Group治理,全面支持游戲后臺需求 123 6.5 總結(jié) 128 第7章 混合語言程序的混合調(diào)用棧火焰圖 129 7.1 混合語言程序 129 7.2 混合調(diào)用;鹧鎴D 130 7.2.1 性能熱點與火焰圖 130 7.2.2 原生調(diào)用棧獲取問題 131 7.2.3 腳本調(diào)用棧獲取問題 132 7.2.4 混合調(diào)用棧獲取問題 134 7.2.5 混合調(diào)用棧火焰圖監(jiān)控服務(wù) 135 7.3 目標進程的調(diào)試控制 137 7.4 快速獲取跨進程原生調(diào)用棧 140 7.4.1 優(yōu)化Linux平臺的原生調(diào)用棧獲取 140 7.4.2 優(yōu)化Windows平臺的原生調(diào)用棧獲取 144 7.4.3 addr2func的查詢優(yōu)化 146 7.4.4 Linux平臺中UE的堆棧獲取 148 7.5 安全獲取跨進程腳本調(diào)用棧 150 7.5.1 獲取執(zhí)行環(huán)境指針 151 7.5.2 模擬調(diào)用;厮 154 7.6 合并腳本調(diào)用棧與原生調(diào)用棧 157 7.7 優(yōu)化混合調(diào)用棧統(tǒng)計數(shù)據(jù)編碼 158 7.8 混合調(diào)用棧火焰圖獲取總結(jié) 162 第8章 出海游戲的LQA工業(yè)化 163 8.1 LQA工業(yè)化背景簡介 163 8.2 LQA工業(yè)化的過程及方法 166 8.2.1 LQA工業(yè)化的提取階段 168 8.2.2 LQA工業(yè)化的翻譯階段 170 8.2.3 LQA工業(yè)化的合入階段 171 8.2.4 LQA工業(yè)化的測試階段 175 8.2.5 LQA工業(yè)化的大版本合并階段 179 8.3 總結(jié) 182 第9章 在TPS類游戲中應(yīng)用可微渲染進行資源轉(zhuǎn)換與優(yōu)化 183 9.1 在TPS類游戲中應(yīng)用可微渲染簡介 183 9.2 背景知識 184 9.2.1 什么是可微渲染 184 9.2.2 可微渲染的光柵化實現(xiàn) 185 9.2.3 可微渲染在游戲和虛擬現(xiàn)實行業(yè)中的應(yīng)用 187 9.2.4 TPS類游戲的特點 187 9.3 基于可微渲染進行資源轉(zhuǎn)換與優(yōu)化的一般框架 189 9.4 可微渲染器的實現(xiàn) 190 9.4.1 可微渲染器基本功能的實現(xiàn) 190 9.4.2 游戲方面的修改與擴展 194 9.5 材質(zhì)擬合相關(guān)處理 196 9.5.1 觀察視角相關(guān)內(nèi)容的處理 196 9.5.2 材質(zhì)的處理 198 9.5.3 材質(zhì)轉(zhuǎn)換之后的效果 200 9.6 網(wǎng)格的處理 202 9.7 總結(jié)與展望 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章 大規(guī)模復雜場景下光照烘焙面臨的挑戰(zhàn)及解決方案 219 11.1 光照烘焙的背景與現(xiàn)有解決方案 219 11.2 光照烘焙中大規(guī)模光源的管理方案 221 11.2.1 單個光源的選取 222 11.2.2 單個光源的采樣 227 11.2.3 基于多重重要性采樣的樣本融合 228 11.2.4 方案的收益 229 11.3 烘焙中復雜光路下的采樣優(yōu)化 230 11.3.1 一種基于GPU實現(xiàn)的空間方向樹的自適應(yīng)路徑引導算法 230 11.3.2 基于時空蓄水池的路徑重采樣算法 237 11.4 烘焙中的降噪器優(yōu)化 241 11.4.1 基于雙邊濾波的自研光照貼圖降噪器 241 11.4.2 結(jié)合雙邊濾波的Optix降噪器優(yōu)化 246 第12章 光照烘焙中基于GPU實現(xiàn)的接縫修復方案 247 12.1 光照烘焙及接縫問題簡介 247 12.2 相關(guān)背景知識 248 12.2.1 關(guān)鍵術(shù)語 248 12.2.2 光線追蹤 249 12.2.3 聯(lián)合雙邊濾波 249 12.2.4 SVGF 250 12.3 工業(yè)界現(xiàn)有光照烘焙接縫修復方案 251 12.4 實現(xiàn)細節(jié) 252 12.4.1 Seam Finder Pass 252 12.4.2 Seam Filter Pass 255 12.5 接縫修復效果對比 257 12.6 總結(jié) 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材質(zhì) 266 13.4.2 VRS中的基元組件 270 13.4.3 VRS中的渲染硬件接口 273 13.5 VRS中Per-Draw的實踐 276 13.5.1 將VRS用于具有低頻細節(jié)材質(zhì)的物體 276 13.5.2 將VRS用于快速移動的物體 277 13.5.3 將VRS用于近處的物體 279 13.6 總結(jié)與展望 281 第14章 基于幀預測的移動端高幀率性能優(yōu)化技術(shù) 282 14.1 解決思路 283 14.2 生成預測幀的方法 285 14.2.1 使用深度在屏幕空間還原場景網(wǎng)格 287 14.2.2 頂點的重投影及走樣的修復 289 14.2.3 幀預測的實現(xiàn) 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 優(yōu)化效果與總結(jié) 313 第15章 基于UE4的開放世界地形渲染 315 15.1 開放世界地形渲染簡介 315 15.2 方案背景 316 15.3 方案設(shè)計思路 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端技術(shù)細節(jié) 324 15.5.4 GPU端技術(shù)細節(jié) 326 15.6 效果收益與性能分析 332 15.6.1 測試場景 332 15.6.2 Metal平臺性能數(shù)據(jù) 333 15.6.3 OpenGL ES平臺性能數(shù)據(jù) 333 15.7 總結(jié) 335 第16章 游戲中的極端天氣渲染 336 16.1 游戲中的天氣 336 16.2 認識風暴云 337 16.3 中央氣旋分析與建模 338 16.3.1 風暴位置與大小 339 16.3.2 風暴眼的形態(tài) 340 16.3.3 風暴流動與旋轉(zhuǎn) 345 16.3.4 風暴眼的垂直結(jié)構(gòu) 349 16.3.5 風暴色彩與氛圍 351 16.4 流體模擬 352 16.4.1 流體在數(shù)學上的表達 353 16.4.2 密度場擴散過程 354 16.4.3 體積云的流體模擬 356 16.5 體積散射與風暴云光照 358 16.5.1 光照方程 358 16.5.2 相函數(shù) 360 16.5.3 風暴云光照 362 16.6 閃電與內(nèi)部光照 365 16.6.1 閃電光照擬合 365 16.6.2 閃電形態(tài) 366 16.7 環(huán)境交互 367 16.7.1 投影 368 16.7.2 自定義緩沖 368 第17章 移動端貼圖壓縮優(yōu)化 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格式設(shè)計 377 17.3.1 支持更多的塊尺寸 378 17.3.2 塊分區(qū) 378 17.3.3 Endpoint Direction(PCA)優(yōu)化 379 17.3.4 亮度碼本修訂 380 17.3.5 RGBA格式的壓縮 380 17.3.6 基于雙線性插值的編碼 381 17.4 ZTC數(shù)據(jù)計算 382 17.4.1 優(yōu)化base color 383 17.4.2 匹配partition 383 17.4.3 邊界擬合 383 17.4.4 ZTC轉(zhuǎn)碼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 總結(jié) 388 第18章 顯存管理 389 18.1 內(nèi)存管理 389 18.1.1 內(nèi)存碎片 389 18.1.2 內(nèi)存分配算法 390 18.2 通用顯存管理 392 18.2.1 為什么要實現(xiàn)通用顯存管理 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 基于光線查詢的材質(zhì)系統(tǒng) 411 19.2.1 現(xiàn)有實現(xiàn)及其局限性 412 19.2.2 可見性緩沖區(qū) 414 19.2.3 材質(zhì)系統(tǒng)的實現(xiàn) 415 19.3 光線追蹤反射 422 19.3.1 世界空間法線紋理和Thin GBuffer 423 19.3.2 實現(xiàn)原理 425 19.3.3 結(jié)果與分析 428 19.4 總結(jié) 429 第20章 移動端全局光照演變的思考與實踐 430 20.1 什么是全局光照 430 20.2 靜態(tài)光照烘焙 431 20.2.1 光照貼圖 431 20.2.2 光照探針 432 20.2.3 靜態(tài)光照烘焙的局限性與優(yōu)勢 433 20.3 基于預計算傳輸?shù)娜止庹?434 20.3.1 如何讓光照動起來 434 20.3.2 預計算輻射傳輸 434 20.3.3 數(shù)據(jù)存儲的優(yōu)化 435 20.3.4 基于預計算的半動態(tài)GI的局限性 436 20.4 動態(tài)全局光照SmartGI 437 20.4.1 移動端全動態(tài)GI方案的挑戰(zhàn) 437 20.4.2 已有全動態(tài)GI方案的分析 437 20.4.3 使用混合架構(gòu)實現(xiàn)全動態(tài)GI的基本框架 438 20.4.4 使用屏幕空間數(shù)據(jù)做光照緩存 439 20.4.5 使用體素化數(shù)據(jù)做光照緩存 440 20.4.6 使用離散圖元做光照緩存 442 20.4.7 多光照緩存的收集 444 20.4.8 全動態(tài)GI的性能優(yōu)化 446 20.4.9 全動態(tài)GI的渲染效果 452 20.5 未來的展望與思考 455 20.5.1 GI算法的持續(xù)迭代 455 20.5.2 移動端硬件能力的持續(xù)演變和提升 456 第21章 動作匹配及神經(jīng)動畫技術(shù) 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 游戲動畫中的狀態(tài)機 464 21.2 動作匹配 465 21.2.1 動作捕捉中的數(shù)據(jù)采集 467 21.2.2 設(shè)計動作捕捉中的數(shù)據(jù)采集的腳本 468 21.2.3 未來軌跡的預測 469 21.2.4 動作姿態(tài)特征提取 471 21.2.5 運動數(shù)據(jù)的混合 472 21.2.6 動作匹配技術(shù)總結(jié) 473 21.3 基于學習的動作匹配 473 21.3.1 匹配數(shù)據(jù)的神經(jīng)網(wǎng)絡(luò)壓縮 473 21.3.2 將動作匹配中涉及的三個網(wǎng)絡(luò)進行連接 474 21.3.3 神經(jīng)相位動畫技術(shù) 475 21.4 游戲動畫中的多風格技術(shù) 481 21.4.1 游戲動畫中的多風格及數(shù)據(jù)采集 481 21.4.2 多風格網(wǎng)絡(luò)設(shè)計 482 21.4.3 風格效果 484 21.5 小結(jié) 485 第22章 深度照片還原——Light Stage人像數(shù)字掃描管線 486 22.1 人像掃描介紹 486 22.2 拍攝 488 22.2.1 Light Stage拍攝 488 22.2.2 LookDev拍攝 489 22.3 數(shù)據(jù)處理 491 22.3.1 Light Stage數(shù)據(jù)處理 491 22.3.2 LookDev數(shù)據(jù)處理 493 22.4 三維重建 495 22.4.1 點云匹配 495 22.4.2 模型重構(gòu) 496 22.4.3 貼圖映射 496 22.5 美術(shù)制作 496 22.5.1 模型清理 497 22.5.2 模型包裹 498 22.5.3 PBR貼圖生成 499 22.5.4 細節(jié)紋理貼圖 499 22.5.5 高模制作 502 22.5.6 烘焙 503 22.5.7 貼圖制作 503 22.6 LookDev 506 22.6.1 毛發(fā)制作 506 22.6.2 光照環(huán)境匹配 509 22.6.3 Maya Arnold 513 22.6.4 Unreal Substrate 516 22.6.5 Unreal MetaHuman 520 22.7 總結(jié) 526 第23章 語音驅(qū)動的面部動畫生成算法 527 23.1 解決方案與核心技術(shù) 527 23.1.1 面部動畫驅(qū)動技術(shù) 528 23.1.2 口型表情動畫生成技術(shù) 528 23.2 基于音素方案的實現(xiàn)流程 531 23.2.1 總體流程 531 23.2.2 音素、視素、動作單元的概念 532 23.2.3 從音頻文件到口型動畫的基礎(chǔ)實現(xiàn) 538 23.2.4 解決協(xié)同發(fā)音的難題 542 23.3 其他輔助效果 547 23.3.1 與情緒的結(jié)合 547 23.3.2 手勢、挑眉、身體姿態(tài)的配合 548 23.3.3 最終效果 551 23.4 總結(jié) 552
你還可能感興趣
我要評論
|