<內容介紹>
本書共分14章,內容涵蓋了從OpenGL ES 3.x著色器的使用技巧到高級光影效果以及物理模擬問題的解決。介紹了OpenGL ES 3.x中的各種緩衝區對象和頂點著色器與片元著色器的使用技巧,以及高級光影效果的實現,如凹凸映射、環境反射、陰影、倒影、鏡頭光暈等。介紹了傑出的3D物理引擎Bullet(Java和C++版本),詳細介紹了骨骼動畫的開發,包括加載ms3d骨骼動畫以及開發自定義格式的骨骼動畫。系統地討論了OpenGL ES 3.x開發中的性能優化問題,介紹了OpenGL ES 3.1新增的計算著色器。給出了基於NDK的大型遊戲案例——火力籃球和iOS下的3D遊戲案例——方塊翻轉,方便讀者快速上手應用。
本書適合遊戲開發者、程序員閱讀,也適合大專院校相關專業師生的學習用書,以及培訓學校的教材。
<章節目錄>
第1章 緩沖區對象 1
1.1 頂點緩沖區 1
1.1.1 基本知識 1
1.1.2 一個簡單的案例 4
1.2 頂點數組對象 6
1.2.1 基本知識與案例效果 6
1.2.2 案例開發步驟 7
1.3 一致緩沖區對象 8
1.3.1 基本知識與案例效果 9
1.3.2 案例開發步驟 10
1.4 映射緩沖區對象 13
1.4.1 基本知識與案例效果 13
1.4.2 案例開發步驟 15
1.5 其他緩沖區對象操作 18
1.5.1 復制緩沖區對象 18
1.5.2 從顏色緩沖區復制紋理數據 18
1.6 幀緩沖與渲染緩沖 20
1.6.1 幀緩沖與渲染緩沖對象 20
1.6.2 案例開發步驟 23
1.7 多重渲染目標 26
1.7.1 基本知識 26
1.7.2 一個簡單的案例 26
1.8 小結 29
第2章 頂點著色器的妙用 30
2.1 飄揚的旗幟 30
2.1.1 基本原理 30
2.1.2 開發步驟 31
2.2 扭動的軟糖 33
2.2.1 基本原理 33
2.2.2 開發步驟 34
2.3 風吹椰林場景的開發 35
2.3.1 椰子樹隨風搖擺的基本原理 35
2.3.2 開發步驟 36
2.4 展翅飛翔的雄鷹 39
2.4.1 基本原理 39
2.4.2 開發步驟 40
2.5 二維扭曲 42
2.5.1 基本原理 42
2.5.2 開發步驟 43
2.6 吹氣膨脹特效 45
2.6.1 特效基本原理 46
2.6.2 特效開發步驟 46
2.7 固定渲染管線與可編程渲染管線實現方案的對比 48
2.8 小結 49
第3章 片元著色器的妙用 50
3.1 程序紋理技術 50
3.1.1 磚塊著色器 50
3.1.2 沙灘球著色器 52
3.2 數字圖像處理 53
3.2.1 捲積的基本知識 53
3.2.2 平滑過濾 54
3.2.3 邊緣檢測 55
3.2.4 銳化處理 56
3.2.5 浮雕效果 56
3.2.6 圖像漸變 58
3.2.7 卡通渲染特效 59
3.3 分形著色器 60
3.3.1 曼德布羅集簡介 61
3.3.2 曼德布羅集著色器的實現 61
3.3.3 將曼德布羅集紋理應用到實際物體上 63
3.3.4 茱莉亞集著色器的實現 63
3.4 3D紋理的妙用 65
3.4.1 噪聲函數的基礎知識 65
3.4.2 柏林噪聲函數生成工具 68
3.4.3 3D噪聲紋理木頭茶壺的
開發 69
3.5 體積霧 72
3.5.1 基本原理 72
3.5.2 開發步驟 73
3.6 粒子系統火焰的開發 75
3.6.1 火焰的基本原理 75
3.6.2 普通版火焰 77
3.6.3 點精靈版火焰 82
3.6.4 變換反饋版火焰 85
3.7 小結 89
第4章 真實光學環境的模擬 90
4.1 反射環境模擬 90
4.1.1 案例效果與基本原理 90
4.1.2 反射環境開發步驟 91
4.2 折射環境模擬 93
4.2.1 案例效果與基本原理 93
4.2.2 開發步驟 95
4.3 色散效果的模擬