iPhone三維程式設計基於OpenGL ES的圖形應用程式設計

iPhone三維程式設計基於OpenGL ES的圖形應用程式設計

《iPhone三維程式設計基於OpenGL ES的圖形應用程式設計》是2011年清華大學出版社出版的圖書,作者是黃麗臣。

基本介紹

  • 中文名:iPhone三維程式設計基於OpenGL ES的圖形應用程式設計 
  • 作者:黃麗臣 
  • 出版時間:2011年12月01日
  • 出版社清華大學出版社 
  • ISBN:9787302251286 
  • 定價:69 元
  • 印次:1-1
  • 印刷日期:2011.11.22
內容簡介,目錄,

內容簡介

本書詳細闡述了基於OpenGL ES的3D圖形程式設計,主要包括頂點和觸摸點、景深和現實感、紋理和圖像捕捉、混合操作與增強現實感、精靈和文本、高級光照和紋理以及最佳化操作等內容。本書還提供了相應的代碼以及偽代碼,以幫助讀者進一步理解渲染方案的實現過程。

目錄

O’ReillyMedia,Inc.介紹 I
譯者序 III
序 V
前言 VII
第1章快速入門 1
向Apple技術過渡 2
Objective-C語言 3
OpenGLES的發展簡史 3
選擇正確的OpenGLES版本 4
開始項目 5
安裝iPhoneSDK 5
利用Xcode創建OpenGL模板程式 6
將程式發布至iPhone上 7
具有固定功能的HelloArrow程式 8
3D應用程式的層次結構 8
啟動項目 10
連結至OpenGL庫和Quartz庫 11
UIView子類 12
掛接程式委託 17
生成圖示並發布鏡像檔案 19
狀態欄 19
渲染引擎接口的定義和使用 20
渲染引擎的實現 24
處理設備的方向 27
旋轉動畫 29
利用著色器編寫HelloArrow程式 31
著色器 32
框架結構 34
GLView 34
實現RenderingEngine 35
小結 40
第2章數學知識 41
裝配線 41
基於頂點的圖元裝配 42
頂點屬性 44
頂點的生命周期 47
裝配線類比 48
設定模型矩陣 52
縮放 52
平移操作 53
旋轉操作 54
設定視圖轉換 55
設定投影轉換 56
利用矩陣棧存儲和恢復轉換操作 59
動畫 61
插值技術 61
基於四元數的旋轉動畫 62
基於C++的向量 63
基於固定功能的HelloCone程式 66
RenderingEngine聲明 66
OpenGL初始化操作和錐體的細分操作 68
3D平滑旋轉 72
Render()方法 73
基於著色器的HelloCone程式 75
小結 77
第3章頂點和觸摸點 79
讀取觸控螢幕 79
採用頂點索引以節省記憶體空間 85
通過頂點緩衝對象獲取性能提升 90
創建線框模式的觀察器 95
參數化表面 96
接口設計 100
跟蹤球旋轉 102
渲染引擎的實現 105
簡化的標籤欄 107
漸變動畫 111
小結 114
第4章景深和現實感 115
深度緩衝區 115
深度緩衝衝突 117
創建並使用深度緩衝區 118
利用三角形填充線框 120
表面法線 124
向OpenGL傳遞法線 124
基於法線的數學知識 125
法線的轉換 127
從參數表面中生成法線 128
光照計算 131
環境光 131
粗糙表面的漫反射光照 131
鏡面光 133
向ModelViewer添加光照 134
使用光照特徵 138
著色器分析 139
向ModelViewer中添加著色器 142
新型渲染引擎 144
像素光照 147
卡通著色 149
採用多邊形偏移渲染線框對象 151
從OBJ檔案中載入幾何體 152
資源檔案的管理 154
實現ISurface接口 157
小結 158
第5章紋理和圖像捕捉 159
向ModelViewer程式添加紋理 159
改進IResourceManager接口 161
生成紋理坐標 163
在ES1::RenderingEngine中開啟紋理功能 166
在ES2::RenderingEngine中開啟紋理功能 169
再訪紋理坐標 174
基於過濾機制的抗鋸齒操作 175
通過紋理鏈提升渲染質量和性能 178
改進ModelViewer程式以支持紋理鏈 180
紋理格式和類型 181
多種格式的數據載入 182
基於PVRTC的紋理壓縮 185
PowerVRSDK和低精度紋理 193
利用Quartz生成並轉換OpenGL紋理 195
紋理尺寸限制 198
POT紋理的縮放操作 201
利用相機創建紋理 202
實現CameraTexture程式中的渲染引擎 209
小結 214
第6章混合操作與增強現實感 216
混合操作 216
預乘alpha值 218
混合操作中的注意事項 220
混合擴展操作 221
混合操作的作用 222
利用頂點顏色值調整紋理顏色 223
利用模板緩衝區實現反射計算 224
渲染圓形對象 226
利用模板緩衝區渲染反射對象 229
渲染對象 230
利用由前向後的混合方式渲染圓形對象 230
早期iPhone設備的模板替代方案 230
基於離屏FBO的抗鋸齒技術 232
超採樣示例 233
抖動採樣 241
其他FBO效果 245
基於紋理的抗鋸齒直線渲染 246
Holodeck示例程式 249
程式框架 250
渲染穹頂、雲彩以及文本 252
渲染HUD 257
通過方位感測器替換按鈕對象 262
添加加速計功能 262
使用真實的相機圖像 268
小結 272
第7章精靈和文本 273
文本渲染:繪製FPS計數器 273
利用Python語言生成字元紋理 275
渲染FPS文本 279
利用glDrawTexOES實施簡化操作 284
基於距離場的文本 287
通過Python生成距離場 289
在ES1.1中通過alpha測試使用距離場 291
利用片元著色器添加文本效果 292
平滑渲染與導數計算 292
實現輪廓線、光暈以及陰影效果 295
精靈表動畫 298
圖像合成以及多重紋理 299
OpenGLES與UIKit之間的混合操作 302
利用點精靈渲染紙屑、焰火等 304
SpringyStars示例程式 305
彈簧體的物理原理 306
C++接口和GLView 309
實現ApplicationEngine 310
OpenGLES1.1版本渲染引擎和加法混合計算 313
基於OpenGLES2.0的點精靈 315
小結 318
第8章高級光照和紋理 319
OpenGLES1.1中的紋理環境 319
紋理合成操作 322
凹凸紋理和DOT3光照 325
線性代數知識 327
生成基向量 327
基於OpenGLES2.0的法線貼圖 329
基於OpenGLES1.1的法線貼圖 332
生成對象空間內的法線貼圖 333
立方體貼圖反射 335
渲染立方體貼圖 339
圖像處理示例:模糊操作 342
基於混合方法的高性能解決方案 345
高斯模糊計算示例代碼 346
小結 352
第9章最佳化操作 353
度量方法 353
理解CPU和GPU 354
使用VBO 354
批處理 355
混合頂點屬性 356
最佳化頂點格式 358
使用最佳拓撲結構和索引機制 359
光照最佳化 359
基於對象空間的光照 360
重述DOT3光照 360
烘焙光照 360
紋理最佳化 361
剔除和剪裁 361
多邊形焊接 361
剪裁面 362
基於CPU的剔除操作 363
著色器性能 363
運行條件 364
kill指令 364
紋理查找 365
利用頂點混合最佳化 365
蒙皮計算示例代碼 366
基於OpenGLES2.0的蒙皮計算 368
基於OpenGLES1.1的蒙皮計算 370
計算權值和索引 373
聚縮效應 374
進一步閱讀 374
附錄C++向量庫 376
XVIII
XVII

相關詞條

熱門詞條

聯絡我們