注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網(wǎng)絡計算機輔助設計與工程計算計算機輔助綜合OpenGL超級寶典:第三版

OpenGL超級寶典:第三版

OpenGL超級寶典:第三版

定 價:¥88.00

作 者: (美)Richard S.Wright,Jr.,(美)Benjamin Lipchak著;徐波譯;徐波譯
出版社: 人民郵電出版社
叢編項:
標 簽: OpenGL

ISBN: 9787115137203 出版時間: 2005-09-01 包裝: 平裝
開本: 26cm+1光盤 頁數(shù): 735 字數(shù):  

內(nèi)容簡介

  本書是OpenGL編程指南,涵蓋了使用新版本的OpenGL進行編程所需要的主要知識。 全書分3個部分,共23章,另有3個附錄。第一部分包括第1章到第12章,介紹經(jīng)典OpenGL繪圖的所有基礎知識,包括3D圖形和OpenGL簡介,OpenGL空間繪圖,幾何轉(zhuǎn)換,顏色、材料和光照,紋理貼圖,曲線和表面,管線,交互式圖形等內(nèi)容。第二部分包括第13章到第15章,分別介紹了不同操作系統(tǒng)平臺上的OpenGL功能特性和編程細節(jié)。第三部分是第16章到第23章,著重介紹OpenGL的一些高級功能以及OpenGL 1.5的新特性。附錄部分給出了更多閱讀建議、術語表和對OpenGL ES的簡單介紹。隨書光盤中包含了不同操作系統(tǒng)平臺下的豐富的示例程序及其源代碼。 本書適合于希望精通OpenGL以便對他們的圖形編程和3D圖形知識進行擴展的程序員,也可以幫助那些經(jīng)驗豐富的OpenGL程序員學習如何移植自己的應用程序。本書既可以作為學習OpenGL的教材,也可以作為隨時查閱的參考手冊。

作者簡介

  徐波浙江寧波人,熟悉C、C++和Java語言。2002年開始從事計算機技術圖書翻譯,第一部譯作《C專家編程》博得好評,其謙遜平和的態(tài)度也使讀者產(chǎn)生好感。徐波技術視野廣闊,翻譯文筆優(yōu)美,是頗具潛力的譯作者。特點特長:(1)英語基礎較好,熟悉多種編程語言。(2)語言功底深厚,文筆優(yōu)美得當。(3)態(tài)度謙遜平和,善于聽取讀者意見。頗具潛力的譯作者。>>更多作品

圖書目錄

第一部分 經(jīng)典OpenGL

第1章 3D圖形和OpenGL簡介 3
1.1 計算機圖形的簡單歷史回顧 3
1.1.1 進入CRT 3
1.1.2 走向3D 4
1.2 3D效果初探 6
1.2.1 透視(視角) 6
1.2.2 顏色和著色 6
1.2.3 光照和陰影 7
1.2.4 紋理貼圖 7
1.2.5 霧 7
1.2.6 混和和透明 8
1.2.7 抗鋸齒 8
1.3 3D圖形的常見用途 9
1.3.1 實時3D 9
1.3.2 非實時3D 10
1.4 3D編程的基本原則 11
1.4.1 立即模式和保持模式(場景圖) 11
1.4.2 坐標系統(tǒng) 11
1.4.3 投影(從3D到2D) 14
1.5 小結(jié) 16

第2章 使用OpenGL 17
2.1 什么是OpenGL 17
2.1.1 標準的演化 18
2.1.2 API戰(zhàn)爭 19
2.2 OpenGL的工作原理 22
2.2.1 泛型實現(xiàn) 22
2.2.2 硬件實現(xiàn) 23
2.2.3 管線 24
2.3 OpenGL是API而不是編程語言 24
2.4 API規(guī)范 25
2.4.1 數(shù)據(jù)類型 25
2.4.2 函數(shù)名約定 26
2.5 平臺獨立性 27
2.5.1 使用GLUT 27
2.5.2 設置編程環(huán)境 28
2.5.3 你的第一個程序 28
2.5.4 用OpenGL繪制形狀 32
2.6 使用OpenGL和GLUT生成動畫 37
2.7 OpenGL狀態(tài)機 40
2.8 OpenGL錯誤 41
2.9 確認版本 42
2.10 調(diào)用glHint獲得線索 42
2.11 使用擴展 42
2.11.1 檢查擴展 43
2.11.2 這是誰的擴展 43
2.11.3 在Windows中使用OpenGL 1.1以后的版本 44
2.12 小結(jié) 44
2.13 參考 45

第3章 在空間中繪圖(幾何圖元和緩沖區(qū)) 55
3.1 在3D中繪制點 55
3.2 設置3D畫布 56
3.3 3D空間中的點——頂點 57
3.4 繪制圖形 58
3.5 設置點的大小 60
3.6 在3D空間中畫直線 62
3.6.1 線帶和線環(huán) 63
3.6.2 用直線構(gòu)成近似曲線 64
3.6.3 設置直線的寬度 64
3.6.4 直線點畫 66
3.7 在3D空間中繪制三角形 68
3.7.1 三角形——第一種多邊形 68
3.7.2 環(huán)繞 68
3.7.3 三角形帶 69
3.7.4 三角形扇 69
3.8 創(chuàng)建實心物體 70
3.8.1 設置多邊形顏色 72
3.8.2 隱藏表面消除 72
3.8.3 剔除:隱藏表面,提高性能 73
3.8.4 多邊形模式 75
3.9 其他圖元 75
3.9.1 四條邊的多邊形——四邊形 75
3.9.2 通用多邊形 76
3.9.3 填充多邊形,回顧點畫 76
3.9.4 多邊形創(chuàng)建規(guī)則 79
3.9.5 細分和邊界 80
3.10 其他緩沖區(qū)技巧 82
3.10.1 使用緩沖區(qū)目標 82
3.10.2 操縱深度緩沖區(qū) 83
3.10.3 用剪刀進行裁剪 84
3.10.4 使用模版緩沖區(qū) 85
3.11 小結(jié) 88
3.12 參考 88

第4章 幾何轉(zhuǎn)換——管線 100
4.1 本章是不是枯燥的數(shù)學課 100
4.2 理解轉(zhuǎn)換 101
4.2.1 視覺坐標 101
4.2.2 視圖轉(zhuǎn)換 102
4.2.3 模型轉(zhuǎn)換 102
4.2.4 模型視圖二元性 103
4.2.5 投影轉(zhuǎn)換 104
4.2.6 視口轉(zhuǎn)換 104
4.3 矩陣——3D圖形的數(shù)學基礎 105
4.3.1 什么是矩陣 105
4.3.2 轉(zhuǎn)換管線 105
4.3.3 模型視圖矩陣 106
4.3.4 單位矩陣 108
4.3.5 矩陣堆?!?09
4.3.6 一個原子例子 110
4.4 使用投影 112
4.4.1 正投影 112
4.4.2 透視投影 113
4.4.3 一個遠處縮小的例子 114
4.5 高級矩陣操作 116
4.5.1 載入矩陣 117
4.5.2 自己執(zhí)行轉(zhuǎn)換 118
4.5.3 把轉(zhuǎn)換放在一起 120
4.6 使用照相機和角色在OpenGL中移動 121
4.6.1 角色幀 121
4.6.2 歐拉角:“盧克!請使用幀” 122
4.6.3 照相機管理 122
4.7 綜合應用 123
4.8 小結(jié) 127
4.9 參考 128

第5章 顏色、材料和光照基礎知識 134
5.1 什么是顏色 134
5.1.1 光的波性 134
5.1.2 光的粒子性 135
5.1.3 人眼作為光子檢測器 136
5.1.4 計算機作為光子檢測器 136
5.2 PC顏色硬件 137
5.3 PC顯示模式 137
5.3.1 屏幕分辨率 138
5.3.2 顏色深度 138
5.4 在OpenGL中使用顏色 139
5.4.1 顏色立方體 139
5.4.2 設置繪圖顏色 140
5.4.3 著色 140
5.4.4 設置著色模型 142
5.5 現(xiàn)實世界的顏色 142
5.5.1 環(huán)境光 143
5.5.2 散射光 143
5.5.3 鏡面光 143
5.5.4 綜合考慮 143
5.6 現(xiàn)實世界的材料 144
5.6.1 材料屬性 144
5.6.2 向材料添加光照 144
5.6.3 計算環(huán)境光效果 144
5.6.4 散射和鏡面光效果 145
5.7 向場景添加光照 145
5.7.1 啟用光照 145
5.7.2 設置光照模型 146
5.7.3 設置材料屬性 146
5.8 使用光源 148
5.8.1 哪種方式最合適 148
5.8.2 表面法線 149
5.8.3 指定法線 149
5.8.4 單位法線 150
5.8.5 尋找法線 151
5.8.6 設置光源 152
5.8.7 設置材料屬性 153
5.8.8 指定多邊形 153
5.9 光照效果 154
5.9.1 鏡面加亮 154
5.9.2 鏡面光 154
5.9.3 鏡面反射 155
5.9.4 鏡面指數(shù) 156
5.9.5 法線均衡 157
5.10 綜合討論 158
5.10.1 創(chuàng)建亮點 158
5.10.2 繪制光點 159
5.11 陰影 162
5.11.1 什么是陰影 163
5.11.2 實現(xiàn)壓平的代碼 163
5.11.3 一個陰影例子 164
5.11.4 重新回顧球體世界 166
5.12 小結(jié) 167
5.13 參考 167

第6章 顏色和材料的更多細節(jié) 174
6.1 混合 174
6.1.1 組合顏色 174
6.1.2 修改混合方程式 177
6.1.3 抗鋸齒 177
6.2 霧 181
6.3 累積緩沖區(qū) 183
6.4 其他顏色操作 185
6.4.1 顏色掩碼 185
6.4.2 顏色邏輯操作 185
6.4.3 Alpha測試 186
6.4.4 抖動 186
6.5 小結(jié) 186
6.6 參考 187

第7章 OpenGL中的圖像 191
7.1 位圖 191
7.2 像素包裝 195
7.3 像素圖 196
7.3.1 經(jīng)過包裝的像素格式 198
7.3.2 一個顏色更豐富的例子 198
7.3.3 移動像素 200
7.3.4 保存像素 201
7.4 像素的更多樂趣 203
7.4.1 像素縮放 208
7.4.2 像素轉(zhuǎn)移 208
7.4.3 像素映射 211
7.5 圖像“子集” 212
7.6 小結(jié) 222
7.7 參考 223

第8章 紋理貼圖基礎知識 239
8.1 載入紋理 239
8.1.1 使用顏色緩沖區(qū) 242
8.1.2 更新紋理 242
8.2 將紋理貼圖到幾何圖形 243
8.3 一個簡單的2D例子 244
8.4 紋理環(huán)境 249
8.5 紋理參數(shù) 250
8.5.1 基本過濾 250
8.5.2 紋理環(huán)繞 251
8.5.3 帶紋理的卡通 252
8.5.4 Mip貼圖 256
8.6 紋理對象 259
8.7 小結(jié) 266
8.8 參考 266

第9章 紋理貼圖高級知識 279
9.1 第二顏色 279
9.2 各向異性過濾 281
9.3 紋理壓縮 282
9.3.1 壓縮紋理 283
9.3.2 載入壓縮紋理 284
9.4 紋理坐標生成 284
9.4.1 物體線性貼圖 289
9.4.2 視覺線性貼圖 290
9.4.3 球體貼圖 291
9.4.4 立方體貼圖 292
9.5 多重紋理 294
9.5.1 多重紋理坐標 295
9.5.2 一個多重紋理例子 295
9.6 紋理組合器 298
9.7 小結(jié) 300
9.8 參考 300

第10章 曲線和表面 306
10.1 內(nèi)部支持的表面 306
10.1.1 設置二次方程狀態(tài) 307
10.1.2 繪制二次方程圖形 308
10.1.3 用二次方程進行建?!?11
10.2 Bézier曲線和表面 312
10.2.1 參數(shù)方程表示形式 313
10.2.2 求值器 314
10.3 NURBS 321
10.3.1 從Bézier到B樣條 321
10.3.2 結(jié)點 322
10.3.3 創(chuàng)建NURBS表面 322
10.3.4 NURBS屬性 323
10.3.5 定義表面 323
10.3.6 修剪 324
10.3.7 NURBS表面 326
10.4 鑲嵌 326
10.4.1 鑲嵌器 327
10.4.2 鑲嵌器回調(diào)函數(shù) 327
10.4.3 指定頂點數(shù)據(jù) 328
10.4.4 綜合應用 328
10.5 小結(jié) 332
10.6 參考 332

第11章 這就是管線——更快的幾何圖形渲染 353
11.1 模型裝配101 353
11.2 顯示列表 363
11.2.1 批處理 363
11.2.2 預批處理 364
11.2.3 使用顯示列表的一些注意事項 365
11.2.4 轉(zhuǎn)換到顯示列表 365
11.3 測量性能 366
11.4 頂點數(shù)組 370
11.4.1 載入幾何圖形 373
11.4.2 啟用數(shù)組 374
11.4.3 數(shù)據(jù)在哪里 374
11.4.4 進行繪圖 375
11.4.5 索引頂點數(shù)組 376
11.5 小結(jié) 385
11.6 參考 385

第12章 交互式圖形 395
12.1 選擇 395
12.1.1 為圖元命名 396
12.1.2 在選擇模式下工作 397
12.1.3 選擇緩沖區(qū) 398
12.1.4 挑選 399
12.1.5 層次式挑選 401
12.1.6 反饋 404
12.1.7 反饋緩沖區(qū) 404
12.1.8 反饋數(shù)據(jù) 405
12.1.9 用戶定義標記 405
12.2 一個反饋例子 406
12.2.1 對物體加上標簽以便反饋 406
12.2.2 步驟1:選擇物體 408
12.2.3 步驟2:從物體獲取反饋信息 409
12.3 小結(jié) 411
12.4 參考 411

第二部分 OpenGL無處不在

第13章 Windows上的OpenGL Wiggle 417
13.1 Windows上的OpenGL實現(xiàn) 417
13.1.1 泛型OpenGL 418
13.1.2 可安裝客戶驅(qū)動程序(ICD) 418
13.1.3 Mini客戶驅(qū)動程序(MCD) 418
13.1.4 Mini驅(qū)動程序 419
13.1.5 擴展OpenGL 419
13.2 基本的窗口渲染 420
13.2.1 GDI設備環(huán)境 420
13.2.2 像素格式 421
13.2.3 OpenGL渲染環(huán)境 426
13.3 綜合應用 427
13.3.1 創(chuàng)建窗口 427
13.3.2 使用OpenGL渲染環(huán)境 430
13.3.3 其他Windows消息 433
13.4 Windows調(diào)色板 434
13.4.1 顏色匹配 434
13.4.2 調(diào)色板仲裁 435
13.4.3 為OpenGL創(chuàng)建調(diào)色板 436
13.4.4 調(diào)色板的創(chuàng)建和銷毀 439
13.5 OpenGL和Windows字體 440
13.5.1 3D字體和文本 441
13.5.2 2D字體和文本 442
13.6 全屏渲染 444
13.6.1 創(chuàng)建一個無邊框窗口 444
13.6.2 創(chuàng)建一個全屏窗口 445
13.7 多線程渲染 447
13.8 OpenGL和WGL擴展 448
13.8.1 簡單擴展 448
13.8.2 使用新入口 449
13.8.3 WGL擴展 449
13.9 小結(jié) 470
13.10 參考 470

第14章 MacOS X上的OpenGL 482
14.1 基礎知識 482
14.1.1 框架 482
14.1.2 使用GLUT API 483
14.2 使用AGL和Carbon API 483
14.2.1 像素格式 483
14.2.2 管理渲染環(huán)境 484
14.2.3 執(zhí)行雙緩沖渲染 485
14.2.4 你的第一個AGL程序 485
14.2.5 使用位圖字體 494
14.3 使用Cocoa API 504
14.3.1 NSOpenGL類 504
14.3.2 你的第一個Cocoa程序 505
14.4 小結(jié) 512
14.5 參考 512

第15章 GLX:Linux上的OpenGL 516
15.1 基礎知識 516
15.1.1 使用OpenGL和X11函數(shù)庫 516
15.1.2 使用GLUT函數(shù)庫 518
15.1.3 Linux上的OpenGL 518
15.1.4 OpenGL模擬:Mesa 519
15.2 X Window系統(tǒng)的OpenGL擴展 519
15.2.1 X Window系統(tǒng)基礎知識 519
15.2.2 選擇畫面 519
15.2.3 管理OpenGL渲染環(huán)境 520
15.2.4 創(chuàng)建OpenGL窗口 521
15.2.5 雙緩沖窗口 521
15.2.6 綜合應用 521
15.3 為OpenGL創(chuàng)建位圖字體 528
15.4 離屏渲染 537
15.4.1 使用GLX Pixmap 537
15.4.2 使用Pbuffer 541
15.5 使用Motif函數(shù)庫 546
15.5.1 GLwDrawingArea和GLwMDrawingArea 546
15.5.2 回調(diào)資源 547
15.5.3 函數(shù) 548
15.5.4 綜合應用 549
15.6 小結(jié) 557
15.7 參考 557

第三部分 下一代OpenGL

第16章 緩沖區(qū)對象 565
16.1 頂點數(shù)組 566
16.1.1 生成球狀微粒云彩 566
16.1.2 啟用頂點數(shù)組 567
16.1.3 使用更多的球體 568
16.2 遷移到緩沖區(qū)對象 569
16.2.1 緩沖區(qū)對象管理 570
16.2.2 用緩沖區(qū)對象進行渲染 571
16.3 把數(shù)據(jù)載入到緩沖區(qū)對象 571
16.3.1 把數(shù)據(jù)復制到緩沖區(qū)對象 571
16.3.2 直接映射緩沖區(qū)對象 572
16.4 補遺 575
16.5 小結(jié) 576
16.6 參考 576

第17章 遮擋查詢 581
17.1 遮擋查詢之前的世界 581
17.2 邊框 584
17.3 對查詢對象進行查詢 587
17.4 小結(jié) 589
17.5 參考 589

第18章 深度紋理和陰影 593
18.1 作為光源 594
18.1.1 使場景正好占據(jù)整個窗口 594
18.1.2 去掉華而不實的東西 594
18.2 一種新類型的紋理 597
18.3 首先繪制陰影 597
18.4 然后是光照 598
18.4.1 投影陰影貼圖:“為什么” 598
18.4.2 投影陰影貼圖:“怎么做” 599
18.4.3 陰影比較 600
18.5 只用兩個就夠了 605
18.6 關于多邊形偏移 606
18.7 小結(jié) 606
18.8 參考 607

第19章 可編程管線 609
19.1 舊的被淘汰 609
19.1.1 固定的頂點處理 609
19.1.2 固定的片斷處理 611
19.2 新的占主導 612
19.2.1 可編程頂點著色器 612
19.2.2 固定功能膠水 614
19.2.3 可編程片斷著色器 614
19.3 著色器擴展介紹 615
19.3.1 低層擴展 615
19.3.2 高層擴展 617
19.4 小結(jié) 618

第20章 低層著色(深入底層) 619
20.1 管理低層著色器 619
20.1.1 創(chuàng)建和綁定著色器 619
20.1.2 載入著色器 620
20.1.3 刪除著色器 621
20.1.4 設置擴展 621
20.2 指令集 622
20.2.1 常用指令 622
20.2.2 專用于頂點的指令 623
20.2.3 專用于片斷的指令 624
20.3 變量類型 624
20.3.1 臨時變量 625
20.3.2 參數(shù) 625
20.3.3 屬性 626
20.3.4 輸出 628
20.3.5 別名 629
20.3.6 地址 629
20.4 輸入和輸出限定符 630
20.4.1 輸入取負 630
20.4.2 輸入Swizzle 630
20.4.3 輸出寫入掩碼 630
20.4.4 輸出限定 630
20.5 資源消耗和隊列 631
20.5.1 解析器限制 631
20.5.2 本地限制 632
20.5.3 其他查詢 633
20.6 著色器選項 633
20.6.1 位置不變性頂點選項 634
20.6.2 霧應用片段選項 634
20.6.3 精度提示片斷選項 634
20.7 小結(jié) 634
20.8 參考 634

第21章 高層著色 644
21.1 管理高層著色器 644
21.1.1 著色器對象 644
21.1.2 程序?qū)ο蟆?46
21.1.3 設置擴展 647
21.2 變量 648
21.2.1 基本類型 648
21.2.2 結(jié)構(gòu) 649
21.2.3 數(shù)組 650
21.2.4 修飾符 650
21.2.5 內(nèi)置的變量 650
21.3 表達式 651
21.3.1 操作符 651
21.3.2 數(shù)組訪問 652
21.3.3 構(gòu)造函數(shù) 652
21.3.4 成分選擇 653
21.4 控制流 653
21.4.1 循環(huán) 654
21.4.2 if/else 654
21.4.3 discard 654
21.4.4 函數(shù) 654
21.5 小結(jié) 656
21.6 參考 657

第22章 頂點著色 668
22.1 初次試驗 668
22.2 散射光照 670
22.3 鏡面光照 672
22.4 改善鏡面光照 674
22.5 基于頂點的霧 680
22.6 基于頂點的點大小 683
22.7 自定義的頂點轉(zhuǎn)換 685
22.8 頂點混合 687
22.9 小結(jié) 691

第23章 片斷著色器 692
23.1 顏色轉(zhuǎn)換 692
23.1.1 灰度 692
23.1.2 調(diào)棕色 694
23.1.3 反色 694
23.1.4 熱信號 696
23.1.5 基于片斷的霧 697
23.2 圖像處理 699
23.2.1 模糊 699
23.2.2 銳化 702
23.2.3 膨脹和侵蝕 703
23.2.4 邊緣檢測 705
23.3 光照 707
23.3.1 散射光照 707
23.3.2 多重鏡面光照 710
23.4 過程紋理貼圖 714
23.4.1 棋盤紋理 714
23.4.2 沙灘球紋理 718
23.4.3 玩具球紋理 722
23.5 小結(jié) 727

附錄A 推薦讀物 728
A.1 其他優(yōu)秀的OpenGL書籍 728
A.2 3D圖形書籍 728
A.3 網(wǎng)站 728

附錄B 術語表 730

附錄C OpenGL ES 733
C.1 數(shù)據(jù)類型的削減 733
C.2 完全消除的特性 733
C.3 大幅度削減了的功能 734
C.3.1 紋理貼圖 734
C.3.2 光柵操作 734
C.3.3 光照 735
C.4 小結(jié) 735

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號