《Android三維程式設計——基於OpenGL ES的圖形應用程式設計》是2015年12月1日清華大學出版社出版的圖書,作者是(美)Prateek Mehta。
基本介紹
- 書名:Android三維程式設計——基於OpenGL ES的圖形應用程式設計
- 作者:(美)Prateek Mehta
- 譯者:周建娟
- 出版社:清華大學出版社
- 出版時間:2015年12月1日
- 定價:49 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787302391371
- 印刷日期:2015年12月15日
內容簡介,前言,圖書目錄,
內容簡介
本書詳細闡述了與Android移動設備以及OpenGL ES開發相關的基本解決方案,主要包括ES 2.0基礎知識、3D建模、Blender軟體套用、紋理和著色、Tank Fence遊戲開發等內容。此外,本書還提供了豐富的示例以及代碼,以幫助讀者進一步理解相關方案的實現過程。 本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
前言
本書引領Android應用程式開發者探討互動式OpenGL ES 2.0應用程式的開發過程,並以此介紹3D圖形渲染的基本概念。 OpenGL ES 2.0源自擴展型OpenGL 2.0 API,後者可視為桌面級3D圖形渲染的常見API。事實上,ES 2.0也可視為該API的一種形式,並針對低功耗顯示設備進行最佳化,例如移動設備和平板電腦。 OpenGL ES 2.0定義為一類可程式的圖形渲染API,類似於瀏覽器中的WebGL,桌面級的Direct3D或OpenGL,以及Flash中的Stage3D。與OpenGL ES 1.x相比,該版本在渲染3D圖形方面提供了更大的靈活性,並實現了期待已久的GLSL著色器語言。 基於Android的OpenGL ES 2.0可使程式設計師構建互動式/非互動式圖形應用程式。
圖書目錄
第1章 新型API的優勢 1
1.1 圖形渲染API 1
1.2 設備需求 2
1.3 創建OpenGL表面視圖 4
1.4 確定OpenGL ES版本 4
1.5 創建OpenGL表面 13
1.6 ES 2.0的強大功能 18
1.7 關於開發人員 19
1.8 本章小結 22
第2章 預備知識 23
2.1 選擇開發設備 23
2.2 選擇輸入 24
2.3 Tank Fence遊戲 27
2.4 創建遊戲選單 28
2.5 利用setContentView和addContentView創建視圖 31
2.6 XML視圖設計 35
2.7 與按鈕和計數器類協同工作 37
2.8 通過觸摸實現旋轉操作 39
2.9 基於Android感測器的旋轉操作 40
2.10 本章小結 45
第3章 ES 2.0基礎知識 46
3.1 Android中的EGL 46
3.1.1 GLSurfaceView類 46
3.1.2 構建渲染器 47
3.2 渲染器執行緒 48
3.2.1 性能分離 48
3.2.2 執行緒安全 49
3.3 實現方法 49
3.3.1 渲染器解析 49
3.3.2 變化的GL表面 51
3.4 幀緩衝區 53
3.4.1 雙緩衝區機制 54
3.4.2 清除顏色緩衝區 54
3.4.3 設定視口 55
3.5 GLSL 56
3.5.1 著色器程式 57
3.5.2 頂點著色器示例 58
3.5.3數據類型 60
3.5.4片元著色器示例 62
3.6GLPOINTBASIC應用程式 64
3.6.1使用loadShader方法 64
3.6.2屬性 65
3.7繪製直線和三角形圖元 68
3.7.1varying變數 69
3.7.2三角形圖元 71
3.8標準化設備坐標系 72
3.93D轉換 74
3.9.1轉換類型 74
3.9.2矩陣類 76
3.10狀態管理 79
3.10.1剔除表面 80
3.10.2深度測試 81
3.11本章小結 82
第4章3D建模 83
4.1通過glDrawElements繪製幾何形狀 83
4.1.1GLPOINTELEMENTS應用程式 84
4.1.2繪製直線和三角形圖元 85
4.2Blender建模軟體 89
4.2.1默認布局 90
4.2.2對象模式 91
4.2.33DView視窗中的面板 92
4.2.4平移對象 93
4.2.5使用套索選擇命令 94
4.3遊戲對象建模 97
4.3.1構建等邊三角形 98
4.3.2tankFenceBlender檔案 102
4.3.3導出格線數據 107
4.4基於OpenGLES的對象解釋操作 109
4.4.1安裝Perl 111
4.4.2下載解釋器 115
4.4.3使用解釋器 116
4.5使用格線數據 118
4.6Blender界面中的基本組件:截圖效果 121
4.7本章小結 123
第5章紋理和著色 124
5.1頂點緩衝區對象 124
5.2對象緩衝區類型 124
5.3使用緩衝區對象 124
5.4使用顏色蒙版 127
5.5紋理 128
5.5.12D紋理 129
5.5.2使用紋理和顏色 135
5.5.3立方體貼圖 136
5.5.4多重紋理 139
5.6基於著色器程式的光照效果 142
5.6.1光照模型 142
5.6.2光照模型 143
5.6.3頂點著色器中的光照方程 144
5.6.4頂點法線的插值計算 149
5.7本章小結 151
第6章遊戲擴展 152
6.1確定渲染模式 152
6.2添加FIRE按鈕 153
6.3平移和旋轉的整合結果 157
6.4向Tank對象中加入Missile對象 159
6.4.1initMissiles方法 165
6.4.2更新飛彈對象的數組列表 167
6.5Enemy類 168
6.5.1生成敵方角色 169
6.5.2Enemy對象源位置的插值計算 171
6.6通過碰撞檢測消除Enemy對象 174
6.7本章小結 178
·XII·
Android三維程式設計—基於OpenGLES的圖形應用程式設計
·XIII·
目錄