OpenGL ES 2.0游戲與圖形編程:適用於iOS 和 Android

OpenGL ES 2.0游戲與圖形編程:適用於iOS 和 Android
定價:288
NT $ 251
 

內容簡介

開發高端游戲時,在美感和功能之間找到一個理想平衡點並非易事,而這恰好是本書要解決的問題。

如果你具有深厚的C/C++編程背景,並且了解計算機圖形基礎知識,將發現這本極具價值的書籍涵蓋了快速創建一款完整游戲需要的所有知識。OpenGL ES 2.0游戲與圖形編程——適用於iOS和Android》由成功的游戲引擎開發人員Romain Marucchi-Foino撰寫,涉及游戲開發的所有方面;如加載復雜幾何圖形和紋理,處理GLSL材質、聲音、攝像頭和剪輯,物理、路徑發現和AI,后期處理效果,實時光照和陰影,以及使用骨骼動畫等。

運用從本書學到的知識,你將能快速構建出自己的高級游戲。

Romain Marucchi-Foino是當今流行的移動游戲引擎SIO2的原作者和創建者。Romain以前是一名游戲引擎開發人員,自從iPhone誕生以來,Romain就一直致力於使用OpenGL ES為移動設備創建先進的游戲引擎。目前,他是sio2interactive.com的一名高級3D程序員(SIO2引擎的正式開發人員),該引擎通過App Store和Android Market驅動了數以千計的游戲和3D應用程序。憑借在移動游戲行業積累的豐富經驗,他為許多網上社區、出版物以及博客作出重大貢獻。
 

目錄

第1章 入門1
1.1軟件需求1
1.1.1針對iOS開發人員1
1.1.2針對Android開發人員2
1.2下載本書的SDK3
1.3導入項目4
1.3.1針對iOS開發人員5
1.3.2針對Android開發人員5
1.4模板6
1.5小結7

第2章 設置圖形投影9
2.1三種基本的投影類型9
2.2正射2D投影11
2.2.1程序和項目初始化12
2.2.2頂點和片段着色器14
2.2.3鏈接着色器程序16
2.2.4繪圖代碼18
2.3正交投影23
2.4透視投影26
2.5小結27

第3章 處理復雜幾何圖形29
3.1Wavefront文件格式29
3.1.1cube.obj30
3.1.2cube.mtl31
3.2准備OBJ瀏覽器代碼31
3.3加載OBJ32
3.4構建着色器35
3.4.1頂點着色器35
3.4.2片段着色器36
3.4.3頂點緩沖區對象36
3.4.4存儲頂點數據36
3.4.5構建頂點數據數組(VBO)38
3.4.6構建元素數組VBO39
3.5構建VAO40
3.6渲染Momo42
3.7處理Touche事件44
3.8逐頂點光照45
3.8.1頂點着色器的光照計算46
3.8.2修改片段着色器47
3.8.3更多uniform變量48
3.9對Momo進行美化49
3.9.1加載紋理49
3.9.2調整頂點數據50
3.9.3向頂點着色器添加UV支持52
3.9.4向片段着色器添加紋理支持52
3.9.5綁定紋理53
3.10小結54

第4章 構建場景55
4.1處理多個對象55
4.2代碼結構56
4.3加載和繪制場景57
4.4着色器代碼61
4.5不同的對象類型62
4.6繪制順序62
4.7修復場景63
4.7.1UberShader63
4.7.2使用UberShader64
4.7.3渲染循環對象分類67
4.7.4雙面69
4.8逐像素光照71
4.8.1使頂點着色器更加豐富71
4.8.2獲取使用了更多Uber的片段着色器72
4.8.3封裝實現代碼74
4.9小結77

第5章 優化79
5.1基本應用程序79
5.2從三角形到三角形帶80
5.3構建三角形帶81
5.4紋理優化82
5.5添加16位紋理轉換83
5.6PVR紋理壓縮84
5.7仿造細節85
5.7.1凸凹貼圖的實現85
5.7.2精度限定符優化86
5.7.3法線貼圖光照計算88
5.7.4添加反射90
5.8幾何圖形和着色器LOD91
5.9紋理地圖集91
5.10在軟件中管理狀態92
5.11自動着色器優化93
5.12小結94

第6章 實時物理95
6.1物理對象類型95
6.2物理形狀96
6.3使用Bullet97
6.4HelloPhysics97
6.5碰撞回調、觸發器和接觸點102
6.5.1Contact—Added回調103
6.5.2Near回調105
6.5.3接觸點106
6.62D物理107
6.6.1更多形狀!108
6.6.2構建物理對象111
6.6.3攝像頭跟蹤112
6.6.4用戶交互114
6.6.5游戲邏輯114
6.73D物理118
6.7.1Bullet文件格式118
6.7.23D彈珠游戲119
6.8小結125

第7章 攝像頭127
7.1一觸即發128
7.2攝像頭視錐130
7.2.1視錐構建方式131
7.2.2視錐剪切的實現132
7.2.3更多剪切函數133
7.3攝像頭飛行模式134
7.4帶有碰撞檢測的第一人稱攝像頭139
7.53D攝像頭跟蹤141
7.6帶有碰撞的第三人稱攝像頭143
7.7小結148

第8章 路徑發現149
8.1Recast和Detour149
8.2導航150
8.3創建導航網格151
8.43D物理拾取153
8.5玩家的自動驅動157
8.6使路徑點可見159
8.7游戲「如果能就抓住我!」161
8.8了解你的敵人164
8.9游戲狀態邏輯165
8.10小結168

第9章 音頻及其他極佳的游戲編程資料171
9.1OpenAL172
9.2OGGVorbis173
9.3HelloWorldOpenAL樣式173
9.4初始化OpenAL174
9.5播放靜態內存聲音174
9.6定位聲源176
9.7鋼琴游戲177
9.7.1加載靜態的流式聲音178
9.7.2顏色提取182
9.7.3鋼琴游戲邏輯185
9.7.4最后的調整188
9.8滾球游戲190
9.8.1GFX着色器191
9.8.2鏈接定位聲源192
9.8.3加速計驅動攝像頭196
9.8.4廉價的FX199
9.8.5游戲邏輯和調整200
9.9小結206

第10章 高級光照207
10.1燈的類型207
10.2使用光源208
10.2.1定向燈着色器211
10.2.2使用Struct作為Uniform214
10.3點燈217
10.3.1點光源着色器代碼218
10.3.2光的衰減221
10.3.3帶有衰減代碼的點光源222
10.3.4衰減Uniform變量223
10.3.5球體點光源224
10.3.6調整點光源代碼225
10.3.7聚光燈227
10.3.8聚光燈着色器代碼229
10.4多個光源231
10.5使着色器程序動態化234
10.6小結235

第11章 高級FX237
11.1渲染到紋理238
11.2后處理效果238
11.2.1第一渲染通道241
11.2.2第二渲染通道242
11.2.3全屏通道和模糊着色器243
11.3投影紋理246
11.4投影着色器249
11.5投影實時陰影250
11.6使用深度紋理投射陰影254
11.7關於幀緩沖對象的其他內容255
11.8粒子255
11.9小結257

第12章 骨骼動畫259
12.1傳統的動畫系統與最新的動畫系統259
12.2MD5文件格式261
12.3加載MD5網格261
12.4對網格進行動畫處理264
12.4.1LERP266
12.4.2SLERP266
12.5混合動畫267
12.6相加混合269
12.7小結271
網路書店 類別 折扣 價格
  1. 新書
    87
    $251