-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
12/1 新書到! 11/25 新書到! 11/17 新書到! 11/11 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

深入理解OpenGL、WebGL和OpenGL ES

( 簡體 字)
作者:[美]帕特里克·科齊(Patrick Cozzi) [美]克里斯托弗·里奇奧(Christophe Riccio) 武海軍 譯類別:1. -> 多媒體 -> OpenGL
譯者:
出版社:清華大學出版社深入理解OpenGL、WebGL和OpenGL ES 3dWoo書號: 52791
詢問書籍請說出此書號!

有庫存
NT售價: 995

出版日:5/1/2020
頁數:690
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787302552253
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
作者序:

譯者序:

前言:

有時候我很希望自己能參與40年前的計算機圖形學研究,當時該領域正在展開對可見表面和著色的早期探索,有許多基本問題仍需要解決,而即將閃亮登場的解決方案則將對后來的發展產生很大的影響。
當然,我更感激當前所處的時代,建模、渲染和動畫的基礎都已經建立,幾乎所有的設備都可以使用硬件加速渲染。作為開發人員,我們現在能夠通過逼真細致的實時圖形為大量用戶提供令人驚嘆的服務。
在某種程度上,我們要感謝渲染API的迅捷和可用性,包括OpenGL、OpenGL ES和WebGL。頻繁的OpenGL規范更新與公開這些新功能的驅動程序相結合,使OpenGL成為尋求使用最新GPU功能的跨平臺桌面開發人員的首選API。隨著智能手機和平板電腦設備的爆炸式增長,OpenGL ES成為iOS和Android上硬件加速渲染的API。最近,WebGL也呈現出迅速普及的趨勢,它們可以在網頁上提供真正零占用的硬件加速3D圖形。
隨著OpenGL、OpenGL ES和WebGL的廣泛使用,我們認識到使用這些API的開發人員需要相互學習,而不僅僅是基礎知識的交流。為此,我們創建了OpenGL Insights系列,第一卷的作者包含開發人員、硬件供應商、研究人員和教育工作者。它既是對OpenGL系列API廣泛使用的獻禮,也包含一系列總結現有實用技術和深入探討未來發展的文章。
本書內容豐富,主題多樣,從在課堂上使用OpenGL到最新擴展的介紹,再到優化移動設備和設計WebGL庫,可謂應有盡有。許多章節還具有一定的技術深度,例如,異步緩沖和紋理傳輸、性能狀態跟蹤和可編程頂點拉動等。
開發者社區對這些API的熱情激勵著我們開始這個系列的編輯工作。在這個時代,可能需要解決的基礎問題較少,但需要解決的問題的廣度和復雜性則令人驚訝。這是一個成為杰出的OpenGL開發人員的最好時刻。
Patrick Cozzi

首先,我要感謝Patrick讓我和他一起參與這個項目。我還記得那天晚上,在電影院看到一部很棒的電影后,我收到了他的電子郵件。雖然我給出的答案真的只有一個,但我還是試圖掙扎了一下:“哦,讓我考慮一下。”這樣的猶豫不決僅持續了不到5秒鐘,接下來留給我的就是很多的工作,以及在這個過程中的大量學習。
盡管我們在文化和背景方面存在差異,但Patrick和我之間的共同愿望是:我們想要制作一本好書,不帶任何偏見地揭示整個OpenGL社區的觀點,擁抱每一個熱情分享圖形多樣性的人,這也是OpenGL生態系統所提倡的。
OpenGL規范是OpenGL的基礎,但它們遠遠不足以讓開發人員理解其潛力和局限性。這就好比一個人掌握了平仄規律,但未必能寫出好詩一樣。我們希望本書能給開發人員帶來一些不容易獲得的經驗,以幫助OpenGL程序開發人員創建更高效的開發和圖形軟件。

Christophe Riccio
致謝
本書是基于OpenGL開發人員社區的內容編撰而成的,所以需要付出巨大的努力。讓我們感激的是,從本書的策劃到獲取作者提交的所有內容,我們都得到了很多幫助。在此謹對以下人士表示誠摯的謝意:Quarup Barreirinhas(Google)、Henrik Bennetsen(Katalabs)、Eric Haines(Autodesk)、Jon Leech(Khronos Group)、Barthold Lichtenbelt(NVIDIA)、Jon McCaffrey(NVIDIA)、Tom Olson(ARM)、Kevin Ring(AGI)、Ken Russell(Google)和Giles Thomas(Resolver Systems)。
本書得益于開放的評審機制。作為編者,我們審讀了全部章節,但這還遠遠不夠。各位撰稿人主動進行了同行評審,還有許多外部評審員自愿參加。在此謹對以下人士表示誠摯的謝意:Guillaume Chevelereau(Intersec)、Mikkel Gjoel(Splash Damage)、Dimitri Kudelski(艾克斯-馬賽大學)、Eric Haines(Autodesk)、Andreas Heumann(NVIDIA)、Randall Hopper(L-3 Communications)、Steve Nash(NVIDIA)、Deron Ohlarik(AGI)、Emil Persson(Avalanche Studios)、Aras Pranckevicius(Unity Technologies)、Swaroop Rayudu(Autodesk)、Kevin Ring(AGI)、Mathieu Roumillac(e-on software)、Kenneth Russell(Google)、Graham Sellers(AMD)、Giles Thomas(Resolver Systems)和Marco Weber(Imagination Technologies)。
許多作者為本書做出了重要貢獻。在此感謝每位作者、同行評審和熱情的外部評審員們所做出的貢獻。另外,還要感謝Alice Peters、Sarah Chow和Kara Ebrahim為出版本書而付出的辛勤努力。
本書的編撰花費了大量時間,幸運的是我們獲得了就職單位的大力支持和理解,特此感謝Analytical Graphics公司的Paul Graziani、Frank Linsalata、Jimmy Tucholski和Shashank Narayan。另外,還要感謝賓夕法尼亞大學的Norm Badler、Steve Lane和Joe Kider。
在全職工作之余編輯這樣一本精品圖書對我們來說殊為不易,以至于有很長一段時間我們都未能在夜晚、周末甚至假期陪伴家人和朋友。在此,要感謝Anthony Cozzi、Margie Cozzi、Peg Cozzi和Jilda Stowe的理解和支持。
本書配套網站
本書配套的OpenGL Insights網站包含本書源代碼、彩色圖像和其他補充內容

有任何意見或更正建議請發送郵件
內容簡介:

本書詳細闡述了與OpenGL相關的基本解決方案,主要包括渲染技術、混合管線、性能、傳輸、調試和性能分析、軟件設計等內容。此外,本書還提供了相應的示例,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
目錄:

第1篇發現
第1章基于著色器的OpenGL計算機圖形學課程3
1.1簡介3
1.2基礎課程4
1.3簡單的OpenGL示例4
1.4從可編程管線開始7
1.5新的簡單示例8
1.5.1OpenGLES和WebGL11
1.5.2第一項作業11
1.6課程的其余部分11
1.6.1幾何12
1.6.2變換和視圖12
1.6.3照明和著色13
1.6.4紋理和離散處理14
1.6.5高級主題14
1.6.6問題15
1.7小結16
致謝17
參考文獻17
第2章過渡到新OpenGL版本19
2.1概述19
2.2命名著色器變量:簡介19
2.3命名著色器變量:詳細信息20
2.4索引頂點緩沖區對象C++類22
2.4.1使用注意事項22
2.4.2示例代碼23
2.4.3實現說明25
2.5GLSLProgramC++類26
2.5.1使用注意事項26
2.5.2示例代碼27
2.5.3實現說明28
2.6小結28
參考文獻29
第3章適用于OpenGL開發人員的WebGL31
3.1簡介31
3.2WebGL的優勢31
3.2.1零要求32
3.2.2跨平臺32
3.2.3跨設備32
3.2.4易開發34
3.2.5強大的工具支持35
3.2.6性能36
3.3安全性38
3.3.1跨源請求39
3.3.2上下文丟失41
3.4部署著色器41
3.5關于JavaScript語言42
3.5.1JavaScript類型43
3.5.2動態類型45
3.5.3函數范圍45
3.5.4函數編程46
3.5.5原型對象47
3.5.6this關鍵字48
3.5.7代碼組織50
3.5.8常見錯誤51
3.6資源51
參考文獻52
第4章將移動應用程序移植到WebGL53
4.1簡介53
4.2跨平臺的OpenGL53
4.3入門54
4.3.1初始化OpenGLES上下文54
4.3.2加載著色器55
4.3.3繪制頂點56
4.4加載紋理57
4.4.1分配紋理57
4.4.2處理異步加載59
4.5相機和矩陣60
4.5.1對比float和Float32Array60
4.5.2將矩陣傳遞給著色器60
4.6控制61
4.6.1觸摸事件61
4.6.2在相機和碰撞中使用觸摸事件62
4.7其他考慮因素63
4.7.1動畫63
4.7.2繼承63
4.8維護64
4.8.1調試64
4.8.2性能分析65
4.8.3性能和采用65
4.9小結66
參考文獻67
第5章GLSL著色器接口69
5.1簡介69
5.2變量和塊69
5.2.1用戶定義的變量和塊69
5.2.2內置變量和塊71
5.3位置72
5.3.1定義72
5.3.2計算位置73
5.3.3位置限制74
5.4匹配接口76
5.4.1部分和完全匹配76
5.4.2類型匹配78
5.4.3按名稱和位置匹配80
5.4.4按塊匹配81
5.4.5按結構匹配83
5.4.6鏈接和單獨的程序86
5.5使用語義87
5.5.1編譯器生成的變化的位置和顯式位置87
5.5.2頂點數組屬性和頂點著色器輸入87
5.5.3片段著色器輸出和幀緩沖區顏色附加數據89
5.5.4變化的輸出和變化的輸入90
5.5.5統一格式緩沖區和統一格式塊91
5.6僅適用于調試的應用程序端驗證92
5.6.1頂點輸入驗證93
5.6.2變化的接口驗證93
5.6.3片段輸出驗證93
5.6.4變量驗證94
5.6.5統一格式塊驗證94
5.7小結95
致謝96
參考文獻96
第6章曲面細分著色器簡介97
6.1簡介97
6.1.1細分表面97
6.1.2平滑多邊形數據98
6.1.3GPU計算98
6.1.4曲線、頭發和草地98
6.1.5其他用途99
6.2新的著色管道99
6.2.1圖塊的生命101
6.2.2線程模型102
6.2.3輸入和輸出103
6.2.4曲面細分控制著色器104
6.2.5曲面細分評估著色器107
6.2.6使用quads生成圖元108
6.2.7使用triangles生成圖元109
6.3對茶壺進行曲面細分110
6.4等值線和螺旋113
6.5結合其他OpenGL功能114
參考文獻115
第7章GLSL中的程序紋理117
7.1簡介117
7.2簡單函數118
7.3抗鋸齒120
7.4Perlin噪聲121
7.5Worley噪聲124
7.6動畫127
7.7紋理圖像127
7.8性能130
7.9小結131
參考文獻131
第8章基于OpenGL和OpenGLES的OpenGLSC仿真133
8.1簡介133
8.2OpenGLSC實現134
8.3設計和實現138
8.3.1總體管線138
8.3.2紋理管線140
8.4結果142
8.5小結143
參考文獻144
第9章混合圖形和使用多個GPU進行計算147
9.1簡介147
9.2API級別的圖形和計算互操作性147
9.2.1互操作性準備147
9.2.2OpenGL對象交互149
9.3系統級的圖形和計算互操作性151
9.4小結155
參考文獻156
第2篇渲染技術
第10章GPU曲面細分:地形LOD討論159
10.1簡介159
10.2使用OpenGLGPU曲面細分渲染地形159
10.3動態LOD的簡單方法163
10.4粗糙度和細節166
10.5渲染測試168
10.5.1測試設置168
10.5.2評估LOD解決方案的質量169
10.5.3性能172
10.6小結176
參考文獻177
第11章使用基于著色器的抗鋸齒體積線179
11.1簡介179
11.2后處理抗鋸齒180
11.3抗鋸齒體積線180
11.3.1使用頂點著色器進行幾何體擠出181
11.3.2使用幾何著色器進行幾何體擠出183
11.4性能185
11.5小結186
參考文獻186
第12章通過距離場渲染2D形狀189
12.1簡介189
12.2方法概述190
12.3更好的距離場算法191
12.4距離紋理192
12.5硬件加速距離變換192
12.6片段渲染193
12.7特效195
12.8性能195
12.9缺點196
12.10小結197
參考文獻197
第13章WebGL中的高效文本渲染199
13.1簡介199
13.2基于畫布的字體渲染199
13.2.1HTML5Canvas199
13.2.2概念200
13.2.3實現200
13.3位圖字體渲染202
13.3.1概念202
13.3.2創建位圖字體204
13.3.3實現204
13.4對比206
13.4.1性能207
13.4.2內存使用情況209
13.4.3開發難度210
13.5小結210
參考文獻211
第14章分層紋理渲染管線213
14.1簡介213
14.1.1術語214
14.1.2在Blender軟件中的紋理214
14.2分層管線215
14.2.1關于G緩沖區創建215
14.2.2層解決方案216
14.2.3統一的視差偏移218
14.2.4照明219
14.3實現和結果219
14.3.1實現219
14.3.2結果220
14.4小結221
參考文獻221
第15章景深與模糊渲染223
15.1簡介223
15.2景深現象224
15.3相關工作227
15.4算法227
15.4.1概述227
15.4.2模糊圈的計算228
15.4.3散景檢測229
15.4.4基于模糊的景深232
15.4.5散景渲染232
15.5結果234
15.6討論235
15.7小結236
參考文獻236
第16章陰影代理239
16.1簡介239
16.2對陰影代理的剖析241
16.3設置管線242
16.4啟用ShadowProxy的片段著色器244
16.5調整陰影體積246
16.6性能246
16.7小結248
參考文獻248
第3篇混合管線
第17章使用變換反饋的基于物理學的實時變形251
17.1簡介251
17.2硬件支持和變換反饋的演變252
17.3變換反饋的機制253
17.4數學模型254
17.5實現258
17.5.1使用Verlet積分頂點著色器258
17.5.2注冊屬性以變換反饋260
17.5.3數組緩沖區和緩沖區對象設置261
17.5.4數據的動態修改263
17.6實驗結果和比較264
17.7小結265
參考文獻265
第18章GPU上的分層深度剔除和包圍盒管理267
18.1簡介267
18.2管線268
18.2.1早期深度通道270
18.2.2深度LOD構造271
18.2.3包圍盒更新272
18.2.4分層深度剔除274
18.2.5包圍盒調試繪圖275
18.3操作順序276
18.4實驗結果277
18.5小結279
參考文獻279
第19章使用分層渲染的大量陰影281
19.1簡介281
19.2在OpenGL中的傳統陰影貼圖渲染技術282
19.3陰影貼圖生成算法285
19.4性能287
19.4.1使用復雜頂點著色器的性能291
19.4.2視錐體剔除優化293
19.4.3背面剔除優化296
19.5高級技術298
19.6局限性299
19.7小結300
參考文獻301
第20章高效的分層片段緩沖區技術303
20.1簡介303
20.2相關工作304
20.3鏈表LFB306
20.4線性化LFB307
20.5性能結果310
20.6小結314
參考文獻315
第21章可編程頂點拉動317
21.1簡介317
21.2實現317
21.3性能320
21.4應用322
21.5局限性323
21.6小結324
參考文獻324
第22章使用GPU硬件光柵化器進行基于八叉樹的稀疏體素化327
22.1簡介327
22.2以前的工作成果328
22.3關于GLSL中的無限制內存訪問329
22.4簡單的體素化管線330
22.4.1保守光柵化332
22.4.2組合體素片段333
22.4.3結果335
22.5稀疏體素化為八叉樹336
22.5.1八叉樹結構337
22.5.2稀疏體素化概述337
22.5.3使用原子計數器進行體素-片段列表構建338
22.5.4節點細分339
22.5.5寫入和Mipmap值340
22.5.6使用間接繪圖實現無同步內核啟動340
22.5.7結果與討論341
22.6小結342
致謝342
參考文獻342
第4篇性能
第23章基于圖塊架構的性能調優347
23.1簡介347
23.2背景348
23.3清除和丟棄幀緩沖區351
23.4增量幀更新352
23.5沖洗353
23.6延遲354
23.7隱藏表面消除356
23.8混合357
23.9多重采樣357
23.10性能分析358
23.11小結359
參考文獻359
第24章探索移動與桌面OpenGL性能361
24.1簡介361
24.2重要的差異和約束361
24.2.1尺寸差異361
24.2.2渲染架構差異362
24.2.3內存架構差異363
24.3減少內存帶寬364
24.3.1相對顯示尺寸365
24.3.2幀緩沖區帶寬365
24.3.3抗鋸齒366
24.3.4紋理帶寬367
24.3.5紋理過濾和帶寬368
24.4減少片段工作負載368
24.4.1過度繪制和混合368
24.4.2全屏效果370
24.4.3屏幕外通道371
24.4.4修剪片段工作372
24.5頂點著色372
24.6小結373
參考文獻374
第25章通過減少對驅動程序的調用來提高性能377
25.1簡介377
25.2高效的OpenGL狀態使用377
25.2.1檢測冗余狀態修改378
25.2.2有效狀態修改的一般方法378
25.3批處理和實例化381
25.3.1批處理381
25.3.2關于OpenGL實例化383
25.4小結386
致謝386
參考文獻387
第26章索引多個頂點數組389
26.1簡介389
26.2問題389
26.3算法392
26.4頂點比較方法393
26.4.1關于If/Then/Else版本393
26.4.2關于memcmp()版本394
26.4.3哈希函數394
26.5性能395
26.6小結397
參考文獻397
第27章NVIDIAQuadro上的多GPU渲染399
27.1簡介399
27.2以前的擴展方法400
27.3指定特定GPU進行渲染401
27.4優化GPU之間的數據傳輸406
27.5多GPU的應用結構407
27.6并行渲染方法410
27.6.1先排序圖像分解410
27.6.2后排序數據分解411
27.6.3立體渲染412
27.6.4服務器端渲染412
27.7小結413
參考文獻413
第5篇傳輸
第28章異步緩沖區傳輸417
28.1簡介417
28.2緩沖區對象418
28.2.1內存傳輸418
28.2.2使用提示421
28.2.3隱式同步422
28.2.4同步原語423
28.3上傳424
28.3.1輪詢(多個緩沖區對象)424
28.3.2緩沖區重新指定(孤立)425
28.3.3非同步緩沖區427
28.3.4關于AMD_pinned_memory擴展429
28.4下載429
28.5復制432
28.6多線程和共享上下文432
28.6.1多線程OpenGL簡介433
28.6.2同步問題434
28.6.3內部同步導致的性能損失434
28.6.4關于共享上下文的總結435
28.7使用方案436
28.7.1方法1:單線程436
28.7.2方法2:兩個線程和一個OpenGL上下文437
28.7.3方法3:兩個線程和兩個OpenGL共享上下文439
28.7.4性能比較439
28.8小結441
參考文獻442
第29章費米異步紋理傳輸443
29.1簡介443
29.2關于OpenGL命令緩沖區執行445
29.3當前紋理傳輸方法446
29.3.1同步紋理傳輸447
29.3.2CPU異步紋理傳輸448
29.4GPU異步紋理傳輸450
29.5實現細節452
29.5.1多個OpenGL上下文452
29.5.2同步453
29.5.3復制引擎注意事項455
29.6結果與分析455
29.7小結460
參考文獻460
第30章WebGL模型:端到端461
30.1簡介461
30.2關于3D模型的生命周期462
30.2.1第1階段:管線462
30.2.2第2階段:服務463
30.2.3第3階段:加載465
30.2.4第4階段:渲染468
30.3整體一致性472
30.3.1Delta編碼473
30.3.2Delta編碼分析474
30.3.3ZigZag編碼475
30.3.4Delta+ZigZag編碼分析476
30.3.5壓縮管線477
30.4主要改進478
30.4.1交錯和轉置的對比478
30.4.2高水位線預測479
30.4.3性能482
30.4.4未來的工作482
30.5小結483
致謝483
參考文獻484
第31章使用實時紋理壓縮進行游戲內視頻捕捉485
31.1簡介485
31.2DXT壓縮概述485
31.3DXT壓縮算法486
31.4轉換為YUV格式顏色空間488
31.5比較490
31.6對程序內容和視頻捕捉使用實時DXT壓縮492
31.6.1使用YUYV-DXT壓縮的視頻捕捉492
31.6.2帶寬因素493
31.6.3視頻流的格式493
31.6.4從GPU下載視頻幀495
31.7小結495
參考文獻496
第32章OpenGL友好幾何文件格式及其Maya導出器497
32.1簡介497
32.2背景知識497
32.2.1目標和特性497
32.2.2現有格式499
32.3關于Drone格式499
32.3.1二進制布局499
32.3.2DroneAPI501
32.3.3場景API503
32.4編寫Maya文件轉換器504
32.4.1MayaSDK基礎知識504
32.4.2編寫轉換器505
32.4.3遍歷MayaDAG506
32.4.4導出可供OpenGL使用的網格506
32.5結果507
32.6小結509
參考文獻510
第6篇調試和性能分析
第33章開發人員的強力臂助:ARB_debug_output513
33.1簡介513
33.2公開擴展513
33.3使用回調函數514
33.4通過事件原因排序515
33.5訪問消息日志516
33.6將自定義用戶事件添加到日志中517
33.7控制事件輸出量518
33.8防止對最終版本的影響519
33.9巨頭之間的爭斗:實現策略520
33.10關于調試的進一步思考521
33.11小結521
參考文獻522
第34章OpenGL計時器查詢523
34.1簡介523
34.2測量OpenGL執行時間524
34.2.1關于OpenGL時間525
34.2.2同步計時器查詢525
34.2.3異步計時器查詢526
34.2.4異步時間戳查詢528
34.2.5考慮查詢檢索530
34.3小結531
參考文獻532
第35章實時性能分析工具533
35.1簡介533
35.2范圍和要求533
35.3工具設計534
35.3.1用戶界面534
35.3.2限制和解決方法535
35.3.3應用程序編程接口535
35.4實現536
35.4.1測量CPU上的時間536
35.4.2測量GPU上的時間537
35.4.3數據結構537
35.4.4標記管理539
35.5使用性能分析程序540
35.5.1使用級別540
35.5.2確定應測量的內容541
35.5.3藝術設計師542
35.5.4局限性542
35.6小結542
參考文獻543
第36章瀏覽器圖形分析和優化545
36.1簡介545
36.2發光效果的階段545
36.3發光效果的開銷547
36.4分析WebGL應用程序548
36.4.1近乎原生的圖形層引擎548
36.4.2JavaScript性能分析549
36.4.3WebGLInspector550
36.4.4英特爾圖形性能分析器550
36.5Windows上的分析工作流程551
36.6優化發光效果554
36.6.1較低的渲染目標分辨率555
36.6.2不必要的Mipmap生成556
36.6.3浮點幀緩沖區557
36.7小結558
參考文獻559
第37章性能狀態跟蹤561
37.1簡介561
37.2功耗策略561
37.3使用NVAPI進行P狀態跟蹤562
37.3.1關于GPU利用率563
37.3.2讀取P狀態564
37.4使用ADL進行P狀態跟蹤566
37.5小結567
參考文獻567
第38章圖形內存使用情況監控569
38.1簡介569
38.2圖形內存分配569
38.3查詢NVIDIA顯卡的內存狀態570
38.4查詢AMD顯卡的內存狀態571
38.5小結573
參考文獻573
第7篇軟件設計
第39章ANGLE項目:在Direct3D上實現OpenGLES2.0577
39.1簡介577
39.2背景577
39.3實現578
39.3.1坐標系579
39.3.2著色器編譯器和鏈接器583
39.3.3頂點和索引緩沖區587
39.3.4紋理588
39.3.5頂點紋理提取591
39.3.6圖元類型591
39.3.7蒙版清除592
39.3.8單獨的深度和模板緩沖區592
39.3.9同步593
39.3.10多重采樣593
39.3.11多個上下文和資源共享594
39.3.12上下文丟失595
39.3.13資源限制596
39.3.14優化597
39.3.15推薦做法598
39.3.16性能結果599
39.4未來工作600
39.5小結600
39.6源代碼600
致謝600
參考文獻601
第40章SceneJS:基于WebGL的場景圖形引擎603
40.1簡介603
40.2有效抽象WebGL604
40.2.1繪制列表編譯609
40.2.2狀態排序610
40.3優化場景611
40.3.1紋理圖集611
40.3.2VBO共享611
40.3.3可共享的節點核心612
40.4拾取614
40.5小結614
參考文獻614
第41章SpiderGL中的特性和設計選擇617
41.1簡介617
41.2庫架構617
41.3表示3D對象619
41.4直接訪問WebGL對象狀態624
41.4.1問題625
41.4.2解決方案626
41.4.3使用SGL_current_binding628
41.4.4使用SGL_direct_state_access630
41.4.5缺點632
41.5WebGLObject包裝器633
41.6小結637
致謝637
參考文獻637
第42章Web上的多模態交互式模擬639
42.1簡介639
42.2關于Π-SoFMIS模塊的設計和定義639
42.3框架實現641
42.3.1模態642
42.3.2著色器642
42.3.3文件格式642
42.4渲染模塊643
42.5模擬模塊646
42.6硬件模塊647
42.7案例研究:LAGB模擬器649
42.8小結655
參考文獻655
第43章使用OpenGL和OpenGLES的子集方法657
43.1簡介657
43.2使陳舊的代碼現代化658
43.2.1立即模式和頂點屬性數組658
43.2.2圖元選擇660
43.2.3位圖和多邊形點畫660
43.3保持代碼在API變體中的可維護性662
43.3.1頂點和片段處理662
43.3.2GLX和EGL663
43.3.3頂點數組對象663
43.3.4線框模式664
43.3.5紋理包裝模式664
43.3.6非2的n次冪666
43.3.7圖像格式和類型667
43.3.8圖像布局668
43.3.9著色語言668
43.4特定功能的代碼塊669
43.5小結669
參考文獻670
第44章構建跨平臺應用程序671
44.1簡介671
44.2使用實用程序庫673
44.2.1使用GLUT的示例673
44.2.2使用Qt的示例674
44.2.3使用EGL的示例675
44.3與OpenGL版本無關的代碼676
44.4配置空間679
44.5關于Metabuilds和CMake680
44.6關于CMake和配置空間681
44.7關于CMake和平臺細節684
44.7.1平臺:Windows685
44.7.2平臺:MacOSX685
44.7.3平臺:iOS686
44.8小結690
參考文獻690
序: