出版時(shí)間:2012-5 出版社:人民郵電出版社 作者:Richard S. Wright,Nicholas Haemel,Graham Sellers,Benjamin Lipchak 頁(yè)數(shù):698 字?jǐn)?shù):1259000 譯者:付飛,李艷輝
Tag標(biāo)簽:無(wú)
內(nèi)容概要
《OpenGL超級(jí)寶典(第5版)》是OpenGL及3D圖形編程最好的入門指南,涵蓋了使用最新版本的OpenGL進(jìn)行編程所需要的主要知識(shí)。全書分三部分,共16章,另有3個(gè)附錄。第一部分包括第1章到第7章,介紹如何構(gòu)建一個(gè)使用OpenGL的程序、如何設(shè)置3D渲染環(huán)境,以及如何創(chuàng)建基本對(duì)象和光線并對(duì)他們進(jìn)行著色。然后深入研究如何使用OpenGL,并向讀者介紹GLSL,以及如何創(chuàng)建自己的著色器。第二部分包括第8章到第12章,將進(jìn)行更深入的研究,而懂得如何應(yīng)用這些高級(jí)特性將使讀者超越業(yè)余3D玩家的水平。這一部分不僅能夠使我們掌握更多的可視化效果,同時(shí)也考慮了性能表現(xiàn)。第三部分包括第13章到第16章,著重介紹OpenGL如何支持和連接Windows、Mac OS X、Linux和掌上設(shè)備。附錄部分給出了更多閱讀建議、術(shù)語(yǔ)表和API參考介紹。
《OpenGL超級(jí)寶典(第5版)》適合希望精通OpenGL以便對(duì)圖形編程和3D圖形知識(shí)進(jìn)行擴(kuò)展的程序員閱讀,也可以幫助經(jīng)驗(yàn)豐富的OpenGL程序員學(xué)習(xí)如何移植自己的應(yīng)用程序。本書既可以作為學(xué)習(xí)OpenGL的教材,也可以作為隨時(shí)查閱的參考手冊(cè)。
作者簡(jiǎn)介
Richard S. Wright, Jr.是Software Bisque公司的資深軟件工程師,在這家公司使用OpenGL開發(fā)多媒體宇航和天文軟件。他曾經(jīng)是OpenGL ARB在實(shí)時(shí)3D領(lǐng)域的代表人物,編寫了大量基于OpenGL的游戲、科學(xué)與醫(yī)學(xué)應(yīng)用程序、數(shù)據(jù)庫(kù)可視化工具和教育軟件。
Nicholas Haemel在ATI和AMD的8年中引導(dǎo)了3D圖形硬件和軟件結(jié)構(gòu)設(shè)計(jì)與開發(fā),并對(duì)OpenGL的3.0、3.1、3.2和3.3標(biāo)準(zhǔn)作出了貢獻(xiàn)。
Graham Sellers是AMD的OpenGL小組的一位管理者,領(lǐng)導(dǎo)著一個(gè)OpenGL軟件開發(fā)團(tuán)隊(duì),致力于開發(fā)AMD的OpenGL驅(qū)動(dòng)程序。他是ARB中的AMD代表,并對(duì)核心OpenGL 3.2、3.3和4.0規(guī)范作出了貢獻(xiàn)。
Benjamin Lipchak是蘋果公司的軟件工程主管,領(lǐng)導(dǎo)著一個(gè)致力于圖形開發(fā)技術(shù)和標(biāo)準(zhǔn)測(cè)試程序的團(tuán)隊(duì),并負(fù)責(zé)iPhone和iPod touch的OpenGL ES一致性測(cè)試。他曾經(jīng)在AMD管理一個(gè)OpenGL ES驅(qū)動(dòng)程序小組,并領(lǐng)導(dǎo)著Khronos的OpenGL生態(tài)系統(tǒng)小組,在那里他創(chuàng)建了OpenGL SDK和OpenGL Pipeline等刊物。
書籍目錄
第一部分 基本概念
第1章 3D圖形和OpenGL簡(jiǎn)介 2
1.1 計(jì)算機(jī)圖形的簡(jiǎn)單歷史回顧 2
1.1.1 進(jìn)入電子時(shí)代 3
1.1.2 走向3D 3
1.2 3D圖形技術(shù)和術(shù)語(yǔ) 6
1.2.1 變換(Transformation)和投影(Projection) 6
1.2.2 光柵化(Rasterization) 6
1.2.3 著色 7
1.2.4 紋理貼圖 8
1.2.5 混合 9
1.2.6 將點(diǎn)連接起來 9
1.3 3D圖形的常見用途 9
1.3.1 實(shí)時(shí)3D 10
1.3.2 非實(shí)時(shí)3D 12
1.3.3 著色器 12
1.4 3D編程的基本原則 13
1.4.1 并非工具包 13
1.4.2 坐標(biāo)系統(tǒng) 13
1.4.3 投影:從3D到2D 17
1.5 總結(jié) 19
第2章 入門指南 20
2.1 什么是OpenGL? 20
2.1.1 標(biāo)準(zhǔn)的演化 21
2.1.2 OpenGL的未來 24
2.2 使用OpenGL 27
2.2.1 支持陣容 28
2.2.2 OpenGL API特性 29
2.2.3 OpenGL錯(cuò)誤 31
2.2.4 確認(rèn)版本 31
2.2.5 使用glHint獲取線索 32
2.2.6 OpenGL狀態(tài)機(jī) 32
2.3 建立Windows項(xiàng)目 33
2.3.1 包含路徑 34
2.3.2 創(chuàng)建項(xiàng)目 35
2.3.3 添加文件 36
2.4 建立Mac OS X項(xiàng)目 38
2.4.1 自定義創(chuàng)建設(shè)置 38
2.4.2 創(chuàng)建新項(xiàng)目 39
2.4.3 框架、頭文件和庫(kù) 41
2.5 第一個(gè)三角形 43
2.5.1 要包含什么 45
2.5.2 啟動(dòng)GLUT 45
2.5.3 坐標(biāo)系基礎(chǔ) 47
2.5.4 完成設(shè)置 50
2.5.5 言歸正傳 52
2.6 加點(diǎn)兒活力! 53
2.6.1 特殊按鍵 53
2.6.2 刷新顯示 54
2.6.3 簡(jiǎn)單的動(dòng)畫片 54
2.7 總結(jié) 55
第3章 基礎(chǔ)渲染 56
3.1 基礎(chǔ)圖形管線 57
3.1.1 客戶機(jī)-服務(wù)器 57
3.1.2 著色器 58
3.2 創(chuàng)建坐標(biāo)系 60
3.2.1 正投影 60
3.2.2 透視投影 61
3.3 使用存儲(chǔ)著色器 61
3.3.1 屬性 62
3.3.2 Uniform值 62
3.4 將點(diǎn)連接起來 64
3.4.1 點(diǎn)和線 64
3.4.2 繪制3D三角形 68
3.4.3 單獨(dú)的三角形 68
3.4.4 一個(gè)簡(jiǎn)單批次容器 72
3.4.5 不希望出現(xiàn)的幾何圖形 73
3.4.6 多邊形偏移 78
3.4.7 裁剪 80
3.5 混合 81
3.5.1 組合顏色 81
3.5.2 改變混合方程式 84
3.5.3 抗鋸齒 85
3.5.4 多重采樣 87
3.6 小結(jié) 89
第4章 基礎(chǔ)變換:初識(shí)向量/矩陣 90
4.1 本章是令人生畏的數(shù)學(xué)課嗎 90
4.2 3D圖形數(shù)學(xué)速成課 91
4.2.1 向量 91
4.2.2 矩陣 94
4.3 理解變換 95
4.3.1 視覺坐標(biāo) 95
4.3.2 視圖變換 96
4.3.3 模型變換 96
4.3.4 模型視圖的二元性 98
4.3.5 投影變換 98
4.3.6 視口變換 99
4.4 模型視圖矩陣 99
4.4.1 矩陣構(gòu)造 100
4.4.2 運(yùn)用模型視圖矩陣 103
4.5 更多對(duì)象 105
4.5.1 使用三角形批次類 105
4.5.2 創(chuàng)建一個(gè)球體 106
4.5.3 創(chuàng)建一個(gè)花托 106
4.5.4 創(chuàng)建一個(gè)圓柱或圓錐 107
4.5.5 創(chuàng)建一個(gè)圓盤 108
4.6 投影矩陣 108
4.6.1 正投影 109
4.6.2 透視投影 110
4.6.3 模型視圖投影矩陣 111
4.7 變換管線 113
4.7.1 使用矩陣堆?!?14
4.7.2 管理管線 115
4.7.3 加點(diǎn)調(diào)料 118
4.8 使用照相機(jī)和角色進(jìn)行移動(dòng) 119
4.8.1 角色幀 120
4.8.2 歐拉角:“盧克!請(qǐng)使用幀” 121
4.8.3 照相機(jī)管理 121
4.8.4 添加更多角色 123
4.8.5 關(guān)于光線 125
4.9 小結(jié) 126
第5章 基礎(chǔ)紋理 127
5.1 原始圖像數(shù)據(jù) 128
5.1.1 像素包裝 129
5.1.2 像素圖 130
5.1.3 包裝的像素格式 132
5.1.4 保存像素 133
5.1.5 讀取像素 134
5.2 載入紋理 137
5.2.1 使用顏色緩沖區(qū) 138
5.2.2 更新紋理 138
5.2.3 紋理對(duì)象 139
5.3 紋理應(yīng)用 140
5.3.1 紋理坐標(biāo) 140
5.3.2 紋理參數(shù) 142
5.3.3 綜合運(yùn)用 144
5.4 Mip貼圖 148
5.4.1 Mip貼圖過濾 149
5.4.2 生成Mip層 150
5.4.3 活動(dòng)的Mip貼圖 150
5.5 各向異性過濾 158
5.6 紋理壓縮 160
5.6.1 壓縮紋理 160
5.6.2 加載壓縮紋理 161
5.6.3 最后一個(gè)示例 162
5.7 小結(jié) 163
第6章 跳出“盒子”:非存儲(chǔ)著色器 164
6.1 初識(shí)OpenGL著色語(yǔ)言 164
6.1.1 變量和數(shù)據(jù)類型 165
6.1.2 存儲(chǔ)限定符 168
6.1.3 真正的著色器 169
6.1.4 編譯、綁定和連接 172
6.1.5 使用著色器 177
6.1.6 Provoking Vertex 178
6.2 著色器統(tǒng)一值 179
6.2.1 尋找統(tǒng)一值 179
6.2.2 設(shè)置標(biāo)量和向量統(tǒng)一值 180
6.2.3 設(shè)置統(tǒng)一數(shù)組 180
6.2.4 設(shè)置統(tǒng)一矩陣 181
6.2.5 平面著色器 182
6.3 內(nèi)建函數(shù) 184
6.3.1 三角函數(shù) 184
6.3.2 指數(shù)函數(shù) 184
6.3.3 幾何函數(shù) 185
6.3.4 矩陣函數(shù) 185
6.3.5 向量相關(guān)函數(shù) 186
6.3.6 常用函數(shù) 187
6.4 模擬光線 189
6.4.1 簡(jiǎn)單漫射光 189
6.4.2 點(diǎn)光源漫反射著色器 191
6.4.3 ADS光照模型 194
6.4.4 Phong著色 197
6.5 訪問紋理 199
6.5.1 只有紋理單元 200
6.5.2 照亮紋理單元 201
6.5.3 丟棄片段 203
6.5.4 卡通著色(Cell Shading)——將紋理單元作為光線 205
6.6 小結(jié) 207
第7章 紋理高級(jí)知識(shí) 208
7.1 矩形紋理 208
7.1.1 加載矩形紋理 209
7.1.2 使用矩形紋理 209
7.2 立方體貼圖 212
7.2.1 加載立方體貼圖 212
7.2.2 創(chuàng)建天空盒 213
7.2.3 創(chuàng)建反射 215
7.3 多重紋理 216
7.3.1 多重紋理坐標(biāo) 217
7.3.2 多重紋理示例 217
7.4 點(diǎn)精靈(點(diǎn)塊紋理) 219
7.4.1 使用點(diǎn) 220
7.4.2 點(diǎn)大小 220
7.4.3 綜合運(yùn)用 221
7.4.4 點(diǎn)參數(shù) 223
7.4.5 異形點(diǎn) 224
7.4.6 點(diǎn)的旋轉(zhuǎn) 225
7.5 紋理數(shù)組 226
7.5.1 加載2D紋理數(shù)組 226
7.5.2 紋理數(shù)組索引 228
7.5.3 訪問紋理數(shù)組 228
7.6 紋理代理 229
7.7 小結(jié) 230
第二部分 深入探索
第8章 緩沖區(qū)對(duì)象:存儲(chǔ)盡在掌握 232
8.1 緩沖區(qū) 233
8.1.1 創(chuàng)建自己的緩沖區(qū) 233
8.1.2 填充緩沖區(qū) 234
8.1.3 像素緩沖區(qū)對(duì)象 235
8.1.4 緩沖區(qū)對(duì)象 241
8.2 幀緩沖區(qū)對(duì)象,擺脫窗口的限制 242
8.2.1 如何使用FBO 243
8.2.2 渲染緩沖區(qū)對(duì)象 243
8.2.3 繪制緩沖區(qū) 245
8.2.4 幀緩沖區(qū)的完整性 247
8.2.5 在幀緩沖區(qū)中復(fù)制數(shù)據(jù) 250
8.2.6 FBO綜合運(yùn)用 251
8.3 渲染到紋理 254
8.4 小結(jié) 259
第9章 高級(jí)緩沖區(qū):超越基礎(chǔ)水平 260
9.1 獲得數(shù)據(jù) 260
9.1.1 映射緩沖區(qū) 261
9.1.2 復(fù)制緩沖區(qū) 262
9.2 控制像素著色器表現(xiàn),映射片段輸出 262
9.3 新一代硬件的新格式 264
9.3.1 浮點(diǎn)——最終的真正精確 264
9.3.2 多重采樣 276
9.3.3 整數(shù) 279
9.3.4 sRGB 280
9.3.5 紋理壓縮 281
9.4 小結(jié) 283
第10章 片段操作:管線的終點(diǎn) 284
10.1 裁剪——將幾何圖形剪切到希望的大小 285
10.2 多重采樣 285
10.2.1 樣本覆蓋 285
10.2.2 樣本遮罩 286
10.2.3 綜合運(yùn)用 287
10.3 模板操作 290
10.4 深度測(cè)試 292
10.4.1 深度截取 292
10.5 進(jìn)行混合 293
10.5.1 混合方程式 293
10.5.2 混合函數(shù) 294
10.5.3 綜合運(yùn)用 295
10.6 抖動(dòng) 296
10.7 邏輯操作 297
10.8 遮罩輸出 298
10.8.1 顏色 298
10.8.2 深度 298
10.8.3 模板 298
10.8.4 用途 299
10.9 小結(jié) 299
第11章 高級(jí)著色器應(yīng)用 300
11.1 高級(jí)頂點(diǎn)著色器 300
11.1.1 在頂點(diǎn)著色器中進(jìn)行物理模擬 301
11.2 幾何著色器 306
11.2.1 直通幾何著色器 306
11.2.2 在應(yīng)用程序中使用幾何著色器 308
11.2.3 在幾何著色器中丟棄幾何圖形 311
11.2.4 在幾何著色器中修改幾何圖形 313
11.2.5 在幾何著色器中生成幾何圖形 314
11.2.6 在幾何著色器中改變圖元類型 317
11.2.7 由幾何著色器引入的新圖元類型 319
11.3 高級(jí)片段著色器 321
11.3.1 片段著色器中的后期處理——顏色校正 322
11.3.2 片段著色器中的后期處理——卷積 323
11.3.3 在片段著色器中生成圖像數(shù)據(jù) 326
11.3.4 在片段著色器中丟棄工作 328
11.3.5 逐片段控制深度 329
11.4 更高級(jí)的著色器函數(shù) 330
11.4.1 插值和存儲(chǔ)限定符 330
11.4.2 高級(jí)內(nèi)建函數(shù) 333
11.5 統(tǒng)一緩沖區(qū)對(duì)象 334
11.5.1 建立統(tǒng)一塊 335
11.6 小結(jié) 342
第12章 高級(jí)幾何圖形管理 343
12.1 查詢功能——收集OpenGL管線相關(guān)信息 343
12.1.1 準(zhǔn)備查詢 344
12.1.2 發(fā)出查詢 345
12.1.3 取回查詢結(jié)果 345
12.1.4 使用查詢結(jié)果 346
12.1.5 讓OpenGL決定 349
12.1.6 測(cè)量執(zhí)行命令所需時(shí)間 350
12.2 在GPU內(nèi)存中存儲(chǔ)數(shù)據(jù) 352
12.2.1 使用緩沖區(qū)存儲(chǔ)頂點(diǎn)數(shù)據(jù) 353
12.2.2 在緩沖區(qū)中保存頂點(diǎn)索引 356
12.3 使用頂點(diǎn)數(shù)組對(duì)象來組織緩沖區(qū) 358
12.4 高效地繪制大量幾何圖形 359
12.4.1 組合繪制函數(shù) 360
12.4.2 使用圖元重啟對(duì)幾何圖形進(jìn)行組合 361
12.4.3 實(shí)例渲染 362
12.4.4 自動(dòng)獲得數(shù)據(jù) 367
12.5 存儲(chǔ)變換的頂點(diǎn)——變換反饋 371
12.5.1 變換反饋 371
12.5.2 關(guān)閉光柵化 376
12.5.3 使用圖元查詢對(duì)頂點(diǎn)進(jìn)行計(jì)數(shù) 376
12.5.4 使用圖元查詢的結(jié)果 378
12.5.5 變換反饋的應(yīng)用實(shí)例 379
12.6 裁剪并確定繪制內(nèi)容 386
12.6.1 裁剪距離——自定義裁剪空間 387
12.7 在OpenGL開始繪制時(shí)進(jìn)行同步 389
12.8 小結(jié) 392
第三部分 特定平臺(tái)應(yīng)用
第13章 Windows上的OpenGL 394
13.1 Windows中的OpenGL實(shí)現(xiàn) 395
13.1.1 微軟的OpenGL 395
13.1.2 現(xiàn)代圖形驅(qū)動(dòng)程序 395
13.1.3 擴(kuò)展OpenGL 396
13.1.4 WGL擴(kuò)展 398
13.2 基本窗口渲染 399
13.2.1 GDI設(shè)備環(huán)境 399
13.2.2 像素格式 400
13.2.3 OpenGL渲染環(huán)境 406
13.3 綜合運(yùn)用 409
13.3.1 創(chuàng)建窗口 410
13.4 全屏渲染 414
13.5 雙重緩沖 415
13.5.1 消除視覺撕裂 415
13.6 小結(jié) 416
第14章 OS X上的OpenGL 417
14.1 OpenGL在Mac上的4種接口 417
14.2 在OpenGL中使用Cocoa 418
14.2.1 創(chuàng)建一個(gè)Cocoa程序 418
14.2.2 綜合運(yùn)用 423
14.2.3 雙緩沖還是單緩沖 425
14.2.4 球體世界 425
14.3 全屏渲染 429
14.3.1 在Cocoa中進(jìn)行全屏顯示 430
14.4 CGL 435
14.4.1 同步幀速率 435
14.4.2 提高填充性能 436
14.4.3 多線程OpenGL 437
14.5 小結(jié) 437
第15章 Linux上的OpenGL 438
15.1 基礎(chǔ)知識(shí) 438
15.1.1 簡(jiǎn)史 439
15.1.2 什么是X Window 439
15.2 入門講解 439
15.2.1 檢查OpenGL 440
15.2.2 設(shè)置Mesa 440
15.2.3 設(shè)置Mesa硬件驅(qū)動(dòng)程序 441
15.2.4 設(shè)置GLUT 和 GLEW 441
15.2.5 創(chuàng)建OpenGL應(yīng)用程序 442
15.3 GLX——X Window的接口 443
15.3.1 顯示和X Window 444
15.3.2 配置管理和顯示效果 444
15.3.3 窗口和渲染表面 447
15.3.4 OpenGL和GLX擴(kuò)展 448
15.3.5 環(huán)境管理 448
15.3.6 同步 451
15.3.7 GLX查詢 452
15.3.8 綜合運(yùn)用 453
15.4 小結(jié) 455
第16章 OpenGL ES:移動(dòng)設(shè)備上的OpenGL 456
16.1 精簡(jiǎn)的OpenGL 456
16.1.1 ES指什么 457
16.1.2 歷史概述 457
16.2 版本選擇 458
16.2.1 ES 2.0 459
16.3 ES環(huán)境 463
16.3.1 應(yīng)用程序設(shè)計(jì)的注意事項(xiàng) 463
16.3.2 有限環(huán)境的處理 464
16.3.3 定點(diǎn)數(shù)學(xué) 464
16.4 EGL: 新的窗口環(huán)境 465
16.4.1 EGL顯示 466
16.4.2 創(chuàng)建窗口 467
16.4.3 環(huán)境管理 470
16.4.4 呈現(xiàn)緩沖區(qū)和渲染同步 471
16.4.5 更多關(guān)于EGL的內(nèi)容 472
16.5 處理嵌入式環(huán)境 473
16.5.1 流行的操作系統(tǒng) 473
16.5.2 供應(yīng)商特定擴(kuò)展 473
16.5.3 個(gè)人玩家 473
16.6 蘋果掌上平臺(tái) 474
16.6.1 設(shè)置iPhone項(xiàng)目 474
16.6.2 移植到iPhone 477
16.7 小結(jié) 483
附錄A 更多閱讀建議 484
附錄B 詞匯表 486
附錄C (核心)OpenGL 3.3參考 489
章節(jié)摘錄
版權(quán)頁(yè): 插圖: 事實(shí)上,即使我們不懂得那些高深的3D圖形數(shù)學(xué)知識(shí),也不會(huì)造成太大的妨礙,就像我們不需要懂得任何關(guān)于汽車結(jié)構(gòu)和內(nèi)燃機(jī)方面的知識(shí)也能每天開汽車一樣。但是,我們最好對(duì)汽車足夠了解,以便能夠意識(shí)到需要時(shí)常更換機(jī)油,定期向油箱加油,以及在輪胎花紋磨光時(shí)要更換輪胎。這些知識(shí)使我們成為一位可靠(還有安全?。┑能囍鳌M瑯?,如果想要成為一位可靠和有能力的OpenGL程序員,也要遵循同樣的標(biāo)準(zhǔn)。至少需要理解那些基礎(chǔ)知識(shí),才知道能做什么,以及哪些工具適合我們要做的工作。如果是初學(xué)者,我們將會(huì)發(fā)現(xiàn),經(jīng)過一段時(shí)間的實(shí)踐,就會(huì)漸漸理解矩陣和向量,并且培養(yǎng)出一種更為直觀(和強(qiáng)大)的能力,能夠在實(shí)踐中充分利用本章所介紹的這些概念。 因此,即使我們還沒有能力在腦海中默算出兩個(gè)矩陣的乘法,也要明白矩陣是什么,以及這些矩陣對(duì)于OpenGL處理來說意味著什么。但是,在清理線性代數(shù)的老課本(每個(gè)人都有,對(duì)吧?)之前,不要緊張,GLTools庫(kù)中有一個(gè)組建叫做Math3d,其中包含了大量好用的與OpenGL一致的3D數(shù)學(xué)例程和數(shù)據(jù)類型。雖然我們不必親自進(jìn)行所有的矩陣和向量操作,我們?nèi)匀恢浪鼈兪鞘裁?,以及如何?yīng)用它們???,這樣我們就二者兼得了。 4.23D圖形數(shù)學(xué)速成課 關(guān)于3D圖形數(shù)學(xué)的書籍?dāng)?shù)不勝數(shù),我們發(fā)現(xiàn)了一些非常好的,附錄A中列出了這些書籍。我們并不會(huì)做出一副要講完所有需要了解的重要問題的架勢(shì),甚至并不試圖講完所有應(yīng)該了解的問題。在本章,我們只涉及真正需要了解的。如果已經(jīng)是數(shù)學(xué)高手,那么就應(yīng)該跳過這一部分,立即開始學(xué)習(xí)模型視圖矩陣部分。這并不只是因?yàn)槟呀?jīng)知道了我們將要講解的內(nèi)容,還因?yàn)榇蠖鄶?shù)數(shù)學(xué)高手會(huì)因?yàn)闆]有提供足夠的空間來討論它們喜愛的齊次坐標(biāo)空間特性而感到不快。 想象一下一個(gè)我們必須從一大群鱷魚逃脫出來的電視真人秀吧。我們到底要知道多少3D數(shù)學(xué)才能生存?這就是接下來兩部分的內(nèi)容-3D數(shù)學(xué)生存技能。鱷魚才不在乎我們是不是真正懂得齊次坐標(biāo) 空間呢。 4.2.1向量 在第1章和第2章,我們已經(jīng)介紹了頂點(diǎn)和3D笛卡爾坐標(biāo)。基本上,一個(gè)頂點(diǎn)就是XYZ坐標(biāo)空間上的一個(gè)位置,而在空間中給定的一個(gè)位置恰恰是由一個(gè)且只由一個(gè)單獨(dú)的XYZ三元組定義的。然而, 一組XYZ值還能表示一個(gè)向量(實(shí)際上,從純粹的數(shù)學(xué)思維上講一個(gè)頂點(diǎn)其實(shí)同時(shí)也是一個(gè)向量……這里我們只討論主要問題)。在使用向量來操縱3D幾何圖形時(shí),向量可能就變成了最重要的基本概念了(沒有之一)。這3個(gè)值(×、Y和Z)組合起來表示兩個(gè)重要的值——一個(gè)方向和一個(gè)數(shù)量。 如圖4.1所示為空間中(任意選擇)的一個(gè)點(diǎn),以及空間中從坐標(biāo)系原點(diǎn)到這個(gè)點(diǎn)坐標(biāo)的一條帶箭頭的線段。在拼接三角形時(shí),這個(gè)點(diǎn)可以視為一個(gè)頂點(diǎn),而這個(gè)帶箭頭的線段則可以視為一個(gè)向量。一個(gè)向量首先是空間中從原點(diǎn)指向這個(gè)點(diǎn)的方向。在中,我們總是使用向量來表示帶方向的量。例如,X軸就是向量(1,0,0)。在×方向?yàn)?1,而在Y方向和Z方向則為0。
編輯推薦
1、作者為OpenGL資深專家 2、內(nèi)容全面,最佳學(xué)習(xí)用書 3、針對(duì)OpenGL 3.3全面升級(jí)?4、增加OpenGL for iPhone、iPad5、一刀未剪足本6、亞馬遜五星圖書
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載