游戲引擎原理與實(shí)踐 卷1 基礎(chǔ)框架
定 價(jià):109 元
- 作者:程?hào)|哲
- 出版時(shí)間:2020/2/1
- ISBN:9787115518071
- 出 版 社:人民郵電出版社
- 中圖法分類:TP317.6
- 頁碼:427
- 紙張:
- 版次:01
- 開本:16K
本書著重講解游戲引擎的基礎(chǔ)知識(shí)和工作原理,并結(jié)合配套的游戲引擎示例和詳盡的代碼,介紹游戲
引擎開發(fā)的技術(shù)細(xì)節(jié)。
本書是第1 卷,主要涉及游戲引擎基礎(chǔ)架構(gòu)。全書共13 章,分別介紹游戲引擎原理、引擎和引擎編
輯器、底層基礎(chǔ)架構(gòu)、數(shù)據(jù)結(jié)構(gòu)、數(shù)學(xué)庫(kù)、引擎初始化、應(yīng)用程序架構(gòu)、對(duì)象系統(tǒng)、資源管理、引擎設(shè)計(jì)
的哲學(xué)理念、場(chǎng)景管理、靜態(tài)模型導(dǎo)入和LOD 技術(shù)。本書未涵蓋的游戲引擎話題將在卷2 中講解。
本書適合有一定的游戲開發(fā)基礎(chǔ)和經(jīng)驗(yàn)并且想要系統(tǒng)學(xué)習(xí)游戲引擎原理和引擎開發(fā)技術(shù)的讀者閱讀。
騰訊游戲引擎設(shè)計(jì)師基于多年經(jīng)驗(yàn)和積累的力作
詳盡示例,詮釋游戲引擎制作與開發(fā)技術(shù)
Milo等游戲業(yè)內(nèi)資-深專家鼎力推薦
阿哲為了分享自己的知識(shí)和經(jīng)驗(yàn),多年來利用業(yè)余時(shí)間,以一個(gè)完整的自研游戲引擎例子作為主軸,完成了這本厚重的著作。本書還附有大量的示例,循序漸進(jìn)地展示一些功能如何有機(jī)地加入到一個(gè)龐大的系統(tǒng)中。建議讀者在閱讀每章前,也可先運(yùn)行一下這些 demo,知道這章要實(shí)現(xiàn)的目標(biāo),思考一下如何做,再看看阿哲給出他的答案,也許能學(xué)得更深入。
葉勁峰(Milo Yip) 騰訊魔方工作室群引擎中心技術(shù)總監(jiān)
中國(guó)游戲20年,是商業(yè)化發(fā)展的20年。在過去的20年里,我們?cè)谶\(yùn)營(yíng)手段、產(chǎn)品營(yíng)銷、商業(yè)化設(shè)計(jì),甚至玩法模式上都有了長(zhǎng)足的進(jìn)步。但在核心的游戲研發(fā)技術(shù)上,我們依然落后于國(guó)際一流水準(zhǔn)太多。在全球移動(dòng)設(shè)備一統(tǒng)化的趨勢(shì)下,掌握直至引領(lǐng)游戲技術(shù)的發(fā)展,才是每個(gè)游戲從業(yè)者的目標(biāo)所在,本書從引擎的基本原理著手,詳細(xì)地分解和分析了商業(yè)化游戲引擎的內(nèi)核以及工具化思路,相信可以幫助每一個(gè)愿意在技術(shù)上有所突破的開發(fā)者。
王琛 深圳風(fēng)月科技CEO
知識(shí)和能力是兩回事,即便明白了道理仍然可能寫不好代碼。在知識(shí)和能力中間,經(jīng)常隔著千山萬水,需要大量的實(shí)踐才能鋪設(shè)一條從知識(shí)通往能力的道路。本書中,作者以自己的實(shí)踐為基石,以此書做媒介,引領(lǐng)讀者重溫了一次思考與實(shí)踐之旅,相信讀者們定會(huì)有所收獲 。
付強(qiáng) 騰訊新體驗(yàn)與技術(shù)部總監(jiān)
市面上關(guān)于引擎開發(fā)的理論書籍很多,本書卻很獨(dú)特,它結(jié)合代碼示例,一步步剖析現(xiàn)代引擎技術(shù)的具體實(shí)現(xiàn),很多設(shè)計(jì)和實(shí)現(xiàn)思路與最新商業(yè)引擎類似,可以很好地幫助讀者理解現(xiàn)代引擎的原理和實(shí)現(xiàn)。
王楊軍 騰訊研發(fā)效能部前沿技術(shù)中心總監(jiān)
程?hào)|哲,游戲引擎開發(fā)工程師,吉林大學(xué)計(jì)算機(jī)碩士,現(xiàn)就職于騰訊公司,曾先后參與了《逆戰(zhàn)》《斗戰(zhàn)神》《眾神爭(zhēng)霸》《無盡之劍——命運(yùn)XBOXONE》《云游戲》《Lucky Night VR》等項(xiàng)目開發(fā)。主要負(fù)責(zé)游戲引擎工作,包括騰訊內(nèi)部自研May引擎和AGE引擎、修改和移植Unreal商業(yè)引擎。
第 1 章 引擎的紛爭(zhēng)1
1.1 什么是游戲引擎1
1.2 那些年我們認(rèn)識(shí)的引擎3
1.3 引擎和游戲.4
第 2 章 起航6
2.1 游戲編程6
2.2 游戲引擎的組成7
2.3 游戲引擎編輯器的組成8
2.4 數(shù)學(xué)10
2.5 空間變換12
2.5.1 坐標(biāo)系12
2.5.2 不同空間的轉(zhuǎn)換12
2.6 3D 流水線.15
2.7 OpenGL 和DirectX .16
2.8 匯編指令17
2.9 引擎工作流17
練習(xí)18
第3 章 基本系統(tǒng).19
3.1 熟悉開發(fā)環(huán)境.19
3.2 VSSystem 工程20
3.3 內(nèi)存管理25
3.3.1 處理內(nèi)存泄露25
3.3.2 Unreal Engine 3 的內(nèi)存分配.33
3.3.3 棧內(nèi)存管理.51
3.3.4 整合.57
3.4 靜態(tài)類型信息判斷59
練習(xí)62
示例62
第4 章 基本數(shù)據(jù)結(jié)構(gòu)64
4.1 基類VSContainer .65
4.2 常用數(shù)據(jù)結(jié)構(gòu).66
4.3 其他數(shù)據(jù)結(jié)構(gòu).71
4.4 C++代理/委托.72
練習(xí)85
示例86
第5 章 數(shù)學(xué)庫(kù)88
5.1 基本數(shù)學(xué)88
5.2 基本數(shù)學(xué)單元.91
5.3 基本圖形單元.98
第6 章 初始化與銷毀103
6.1 傳統(tǒng)初始化和銷毀104
6.2 全局內(nèi)存管理器的初始化和銷毀107
6.3 非單件類的初始化和銷毀108
示例115
第7 章 應(yīng)用程序框架116
7.1 程序框架接口117
7.2 輸入/輸出映射.124
練習(xí)128
示例129
第8 章 對(duì)象系統(tǒng)130
8.1 智能指針.130
8.2 RTTI136
8.3 VSObject140
8.4 屬性反射.146
8.5 序列化存儲(chǔ)159
8.5.1 傳統(tǒng)序列化方式159
8.5.2 使用屬性表進(jìn)行序列化存儲(chǔ).162
8.6 克隆186
8.7 屬性與UI 綁定* .191
8.7.1 基本控件192
8.7.2 組合控件與屬性196
8.7.3 屬性綁定208
8.8 函數(shù)反射.214
8.9 復(fù)制屬性與函數(shù).222
8.9.1 對(duì)象復(fù)制225
8.9.2 屬性復(fù)制225
8.9.3 函數(shù)復(fù)制227
8.9.4 小結(jié)228
8.10 番外篇——Unreal Engine 4 中的
反射* 231
練習(xí)238
示例239
第9 章 資源管理241
9.1 資源類型.241
9.2 資源代理.247
9.3 對(duì)象系統(tǒng)——資源251
9.3.1 資源的組織形式251
9.3.2 外部資源管理.256
9.3.3 字符串管理258
9.3.4 內(nèi)部資源管理.260
練習(xí)264
第 10 章 引擎的設(shè)計(jì)哲學(xué)265
10.1 世界抽象265
10.2 萬物的關(guān)系.267
10.3 引擎層267
10.4 世界與引擎.270
10.5 垃圾回收275
10.5.1 智能指針與垃圾回收276
10.5.2 基于對(duì)象系統(tǒng)276
10.5.3 創(chuàng)建可回收的對(duì)象277
10.5.4 根對(duì)象選擇278
10.5.5 聯(lián)系查找.279
10.5.6 垃圾回收的時(shí)機(jī).287
10.5.7 資源的垃圾回收.290
練習(xí)295
第 11 章 場(chǎng)景管理297
11.1 根節(jié)點(diǎn)與場(chǎng)景298
11.2 空間位置的父子關(guān)系299
11.2.1 變換301
11.2.2 包圍盒304
11.2.3 空間管理結(jié)構(gòu)與更新309
11.3 相機(jī)與相機(jī)裁剪315
11.3.1 相機(jī)的定義316
11.3.2 根據(jù)相機(jī)裁剪物體321
11.4 靜態(tài)物體與動(dòng)態(tài)物體328
11.4.1 采用四叉樹管理靜態(tài)物體.329
11.4.2 入口算法簡(jiǎn)介和潛在的
可見集合* 334
11.5 光源337
11.5.1 間接光338
11.5.2 局部光340
11.6 相機(jī)和光源的更新管理342
11.7 番外篇——淺談Prez、軟硬件
遮擋剔除* 345
練習(xí)346
示例347
第 12 章 模型與貼圖349
12.1 法線與切線空間349
12.2 引擎中的網(wǎng)格結(jié)構(gòu).354
12.2.1 數(shù)據(jù)緩沖區(qū)、頂點(diǎn)、網(wǎng)格354
12.2.2 VSGeometry、VSMeshNode、
VSMeshComponent359
12.2.3 一個(gè)完整網(wǎng)格的創(chuàng)建過程361
12.3 FBX 模型導(dǎo)入與壓縮366
12.4 紋理.380
12.5 給模型添加材質(zhì)387
12.6 番外篇——3D 模型制作流程* 388
示例391
第 13 章 LOD393
13.1 模型的DLOD 393
13.2 模型的CLOD 401
13.3 地形的DLOD 409
13.4 地形的CLOD 414
13.5 番外篇——地形編輯*417
13.5.1 基于2D 網(wǎng)格的地形系統(tǒng).417
13.5.2 基于塊和懸崖的地形系統(tǒng)421
13.5.3 基于體素的地形系統(tǒng)423
練習(xí)425
示例425