計算機圖形學原理及實踐, 3/e (進階篇) Computer Graphics: Principles and Practice, 3/e

John F. Hughes 彭群生//吳鴻智//王銳//劉新國

買這商品的人也買了...

商品描述

本書是計算機圖形學領域的經典著作,
系統全面地介紹了計算機圖形學領域的關鍵概念、算法、技術和應用。
本書先介紹瞭如何創建二維和三維圖像,接下來介紹了更為廣泛的話題,包括圖像表示和操縱、圖像和信號處理、
圖像的縮放、紋理和紋理映射、交互技術、曲線分割、曲面分割、形狀的隱式表示、網格、光、
材料和散射、顏色、光傳輸、概率和蒙特卡洛集成、動畫、空間數據結構、現代圖形學硬件等內容。

作者簡介

James D.Foley

佐治亞理工學院Fleming講座教授,計算機學院交互計算領域教授。
曾任教於北卡大學教堂山分校和喬治·華盛頓大學,
1992年在佐治亞理工學院創建了GVU中心並擔任中心主任。
其研究成果集中於計算機圖形學、人機交互、信息可視化等領域。

目錄大綱

出版者的話
譯者序
前言
作者簡介
第17章 圖像表示與操作1
17.1 引言1
17.2 什麼是圖像1
17.2.1 一幅圖像存儲的信息2
17.3 圖像文件格式2
17.3.1 選擇圖像格式3
17.4 圖像合成4
17.4.1 圖像合成中像素的含義5
17.4.2 計算U over V5
17.4.3 簡化合成6
17.4.4 其他合成運算6
17.4.5 物理單位和合成7
17.5 其他圖像類型7
17.5.1 術語8
17.6 MIP圖8
17.7 討論和延伸閱讀9
17.8 練習10

第18章 圖像和信號處理11
18.1 引言11
18.1.1 概述11
18.1.2 重要的術語、假設和概念13
18.2 歷史動因14
18.3 卷積17
18.4 卷積的性質19
18.5 卷積的計算20
18.6 重建21
18.7 函數類21
18.8 採樣22
18.9 數學考慮23
18.9.1 基於頻率的合成與分析25
18.10 傅里葉變換的定義28
18.11 在一個區間上的函數的傅里葉變換28
18.11.1 採樣和區間上的帶寬限制30
18.12 推廣到更大的區間和整個R上31
18.13 傅里葉變換的例子32
18.13.1 基本例子32
18.13.2 盒函數的變換是sinc函數32
18.13.3 區間上的例子34
18.14 採樣的近似34
18.15 涉及極限的例子35
18.15.1 窄盒函數和delta函數35
18.15.2 梳子函數及其變換35
18.16 傅里葉逆變換36
18.17 傅里葉變換的性質36
18.18 應用37
18.18.1 帶寬限制37
18.18.2 在頻譜中解釋複製39
18.19 重建和帶寬限制40
18.20 再談走樣43
18.21 討論和延伸閱讀44
18.22 練習47第19章 圖像縮放48

19.1 引言48
19.2 圖像放大49
19.3 圖像縮小51
19.4 算法實用化52
19.5 有限支撐近似54
19.5.1 實用的帶限函數56
19.6 其他圖像操作和效率56
19.7 討論和延伸閱讀58
19.8 練習59

第20章 紋理與紋理映射60
20.1 引言60
20.2 各種紋理映射61
20.2.1 環境映射62
20.2.2 凹凸映射62
20.2.3 輪廓繪製63
20.3 根據參數化構建切向量64
20.4 紋理圖的取值範圍65
20.5 確定紋理坐標66
20.6 應用實例69
20.7 採樣、走樣、濾波以及重構69
20.8 紋理合成71
20.8.1 基於傅里葉變換的紋理合成71
20.8.2 Perlin噪聲71
20.8.3 反應擴散紋理73
20.9 數據驅動的紋理合成74
20.10 討論和延伸閱讀76
20.11 練習77第21章 交互技術79

21.1 引言79
21.2 用戶界面與計算機圖形學79
21.2.1 一般規則82
21.2.2 交互事件處理84
21.3 二維操作的多觸點交互85
21.3.1 問題定義86
21.3.2 構建程序86
21.3.3 交互器87
21.4 三維空間中基於鼠標的物體操作90
21.4.1 跟踪球界面90
21.4.2 弧球界面93
21.5 基於鼠標的相機操作:Unicam94
21.5.1 平移94
21.5.2 旋轉95
21.5.3 附加操作96
21.5.4 評估96
21.6 選擇*界面96
21.7 一些界面實例96
21.7.1 第一人稱射擊遊戲控制96
21.7.2 3ds Max變換小工具97
21.7.3 Photoshop的自由變換模式97
21.7.4 Chateau98
21.7.5 Teddy99
21.7.6 Grabcut與通過筆劃的選擇99
21.8 討論和延伸閱讀100
21.9 練習102

第22章 樣條曲線和細分曲線104
22.1 引言104
22.2 基本多項式曲線104
22.3 兩條曲線間的擬合曲線段:Hermite曲線104
22.3.1 Bézier曲線106
22.4 曲線拼接與CatmullRom樣條107
22.4.1 CatmullRom樣條的推廣109
22.4.2 CatmullRom樣條的應用110
22.5 三次B樣條110
22.5.1 其他B樣條111
22.6 細分曲線112
22.7 討論和延伸閱讀113
22.8 練習113

第23章 樣條曲面和細分曲面114
23.1 引言114
23.2 Bézier曲面片114
23.3 CatmullClark細分曲面116
23.4 細分曲面造型119
23.5 討論和延伸閱讀120

第24章 形狀的隱式表示121
24.1 引言121
24.2 隱式曲線121
24.3 隱式曲面124
24.4 表示隱函數125
24.4.1 插值方法125
24.4.2 樣條曲線126
24.4.3 數學模型及採樣隱式表示127
24.5 隱式函數的其他表示127
24.6 轉換成多面體網格128
24.6.1 移動立方體131
24.7 多面體網格到隱式表示的轉換132
24.8 紋理隱式模型132
24.8.1 模型變換和紋理132
24.9 光線跟踪隱式曲面133
24.10 動畫中的隱式形狀133
24.11 討論和延伸閱讀134
24.12 練習135

第25章 網格136
25.1 引言136
25.2 網格拓撲137
25.2.1 表面三角化和有邊界表面138
25.2.2 計算和存儲鄰接關係139
25.2.3 更多網格術語141
25.2.4 網格嵌入和網格拓撲142
25.3 網格幾何143
25.3.1 網格含義144
25.4 細節層次145
25.4.1 漸進式網格148
25.4.2 其他網格簡化途徑151
25.5 網格應用1:移動立方體算法、網格修復、網格優化151
25.5.1 移動立方體算法的變化形式151
25.5.2 網格修復153
25.5.3 差分或拉普拉斯坐標系154
25.5.4 拉普拉斯坐標的應用156
25.6 網格應用2:變形傳遞和三角形排序優化158
25.6.1 變形傳遞158
25.6.2 有利於提高硬件效率的三角形重排序161
25.7 討論和延伸閱讀163
25.8 練習164

第26章 光165
26.1 引言165
26.2 光的物理學原理165
26.3 微觀角度166
26.4 光的波動性169
26.4.1 衍射170
26.4.2 偏振171
26.4.3 光在界面的偏折172
26.5 菲涅耳定律和偏振174
26.5.1 輻射度計算與非偏振形式的菲涅耳方程175
26.6 將光建模為連續流176
26.6.1 概率密度的簡單介紹177
26.6.2 進一步對光進行建模178
26.6.3 角度和立體角178
26.6.4 計算立體角180
26.6.5 一個重要的變量置換182
26.7 對光的度量184
26.7.1 輻射術語185
26.7.2 輻射度185
26.7.3 兩個輻射度計算的例子186
26.7.4 輻射照度187
26.7.5 輻射出射度189
26.7.6 輻射功率或輻射通量189
26.8 其他度量190
26.9 導數的方法190
26.10 反射率191
26.10.1 相關項193
26.10.2 鏡子、玻璃、互易性和BRDF194
26.10.3 L的不同寫法195
26.11 討論和延伸閱讀195
26.12 練習196

第27章 材質和散射198
27.1 引言198
27.2 物體級散射198
27.3 表面散射199
27.3.1 脈衝現象199
27.3.2 散射模型的種類199
27.3.3 散射的物理約束200
27.4 散射類型200
27.5 基於經驗和現象的散射模型204
27.5.1 鏡面“散射”204
27.5.2 朗伯反射204
27.5.3 Phong和BlinnPhong模型206
27.5.4 Lafortune模型208
27.5.5 採樣209
27.6 基於測量的模型209
27.7 鏡面反射和漫反射的物理模型210
27.8 基於物理的散射模型210
27.8.1 重談菲涅耳方程組211
27.8.2 TorranceSparrow模型212
27.8.3 CookTorrance模型214
27.8.4 OrenNayar模型215
27.8.5 波動理論模型216
27.9 表達形式的選擇216
27.10 評估標準217
27.11 沿表面的變化217
27.12 對用戶的適用性218
27.13 更複雜的散射218
27.13.1 參與介質218
27.13.2 次表面散射220
27.14 材質模型的軟件接口221
27.15 討論和延伸閱讀222
27.16 練習223

第28章 顏色225
28.1 引言225
28.1.1 顏色的含義225
28.2 光的光譜分佈226
28.3 顏色感知現象和眼睛生理學227
28.4 顏色的感知229
28.4.1 亮度感知229
28.5 顏色描述233
28.6 關於顏色的傳統認識235
28.6.1 原色235
28.6.2 紫色並不是真正的顏色236
28.6.3 物體具有顏色,在白光下即可看出236
28.6.4 藍色和綠色合成青色237
28.6.5 顏色就是RGB237
28.7 顏色感知的長處和短處237
28.8 標準的顏色描述238
28.8.1 CIE顏色描述238
28.8.2 色度圖的應用241
28.9 感知顏色空間242
28.9.1 其他242
28.10 階段小結243
28.11 白色244
28.12 亮度編碼、冪指數以及γ矯正244
28.13 描述顏色245
28.13.1 RGB顏色模型246
28.14 CMY和CMYK顏色模型248
28.15 YIQ顏色模型248
28.16 視頻標準249
28.17 HSV和HLS250
28.17.1 顏色選擇250
28.17.2 調色板250
28.18 顏色插值251
28.19 計算機圖形學中對顏色的使用252
28.20 討論和延伸閱讀253
28.21 練習253

第29章 光線傳播255
29.1 引言255
29.2 光線傳播概述255
29.2.1 繪製方程(第一種類型)257
29.3 略做前瞻258
29.4 一般散射的繪製方程260
29.4.1 度量方程261
29.5 再談散射262
29.6 實例263
29.7 求解繪製方程265
29.8 光線傳播路徑分類265
29.8.1 引人注目的視覺現象和光線傳播266
29.9 討論268
29.10 練習268

第30章 概率和蒙特卡羅積分269
30.1 引言269
30.2 數值積分269
30.3 隨機變量和隨機算法270
30.3.1 離散概率及其與計算機程序的聯繫270
30.3.2 期望值272
30.3.3 數學期望的性質和相關術語273
30.3.4 連續型概率274
30.3.5 概率密度函數276
30.3.6 球面域上的應用278
30.3.7 一個簡單的例子279
30.3.8 在光線散射中的應用279
30.4 再談連續型概率280
30.5 重要性採樣和積分283
30.6 混合概率284
30.7 討論和延伸閱讀285
30.8 練習285

第31章 解繪製方程:理論方法288 31.1 引言288
31.2 方程的近似求解法288
31.3 方法1:構建近似方程288
31.4 方法2:限制定義域289
31.5 方法3:採用統計方法估計290
31.5.1 通過採樣和估計求級數的和290
31.6 方法4:二分法292
31.7 其他方法293
31.8 再談繪製方程293
31.8.1 關於符號295
31.9 我們需要計算什麼296
31.10 離散化方法:輻射度算法298
31.11 對光線傳播路徑進行分離303
31.12 繪製方程的級數解304
31.13 光線傳播的其他表述方式305
31.14 級數解的近似值306
31.15 對散射的近似:球面調和函數307
31.16 蒙特卡羅方法入門309
31.17 路徑跟踪313
31.18 路徑跟踪和馬爾可夫鏈314
31.18.1 馬爾可夫鏈方法314
31.18.2 遞歸法318
31.18.3 建立一個路徑跟踪器320
31.18.4 多種重要性採樣324
31.18.5 雙向路徑跟踪325
31.18.6 中心光線傳播算法326
31.19 光子映射327
31.19.1 圖像空間的光子映射算法330
31.20 討論和延伸閱讀331
31.21 練習333

第32章 繪製實踐334
32.1 引言334
32.2 表示法334
32.3 曲面表示及BSDF的局部表示方法334
32.3.1 鏡面和點光源338
32.4 光的表示方法339
32.4.1 光源的表示方法339
32.5 基本的路徑跟踪器340
32.5.1 預備知識341
32.5.2 路徑跟踪器的代碼343
32.5.3 結果與討論351
32.6 光子映射353
32.6.1 結果與討論359
36.6.2 對光子映射的進一步討論361
32.7 泛化362
32.8 繪製與調試363
32.9 討論和延伸閱讀366
32.10 練習370

第33章 著色器373
33.1 引言373
33.2 不同形式的圖形管線373
33.3 發展歷史374
33.4 一個包含著色器的簡單圖形程序377
33.5 Phong著色器381
33.6 環境映射382
33.7 兩個版本的卡通著色器384
33.8 基本的XToon著色385
33.9 討論和延伸閱讀387
33.10 練習387

第34章 表意式繪製388
34.1 引言388
34.1.1 表意式繪製的例子390
34.1.2 本章結構390
34.2 表意式繪製的挑戰391
34.3 標記和筆劃392
34.4 感知與顯著特徵393
34.5 幾何曲線提取394
34.5.1 脊點與穀點398
34.5.2 示意輪廓399
34.5.3 明顯脊線400
34.5.4 非幾何特徵401
34.6 抽象401
34.7 討論和延伸閱讀402

第35章 運動405
35.1 引言405
35.2 導引例子407
35.2.1 行人(關鍵姿勢)407
35.2.2 開砲(仿真)410
35.2.3 走廊導航(運動規劃)412
35.2.4 符號413
35.3 繪製的考慮415
35.3.1 雙緩存技術415
35.3.2 運動感知415
35.3.3 隔行掃描417
35.3.4 時序走樣和運動模糊418
35.3.5 利用時間連貫性421
35.3.6 第一幀問題422
35.3.7 時間連貫性帶來的負擔422
35.4 運動表示424
35.4.1 物體425
35.4.2 限制自由度426
35.4.3 關鍵姿勢426
35.4.4 動力學426
35.4.5 過程動畫427
35.4.6 混合控制模式427
35.5 姿勢插值430
35.5.1 頂點動畫430
35.5.2 根坐標系運動430
35.5.3 關節物體431
35.5.4 骨架動畫432
35.6 動力學433
35.6.1 粒子433
35.6.2 微分方程公式434
35.6.3 分段常量近似435
35.6.4 常見的力的模型436
35.6.5 粒子碰撞443
35.6.6 動力學微分方程446
35.6.7 求解常微分方程的數值方法450
35.7 動力學求解的穩定性453
35.8 討論454

第36章 可見性判定455
36.1 引言455
36.1.1 可見性函數456
36.1.2 基本可見性459
36.1.3 (二值)覆蓋459
36.1.4 目前的實踐和動機460
36.2 光線投射460
36.2.1 BSP光線多邊形求交461
36.2.2 光線測試的並行度評估463
36.3 深度緩存464
36.3.1 通用深度緩存編碼467
36.4 列表優先級算法469
36.4.1 畫家算法470
36.4.2 深度排序算法471
36.4.3 聚類和BSP排序471
36.5 視域剔除和裁剪472
36.5.1 視域剔除472
36.5.2 裁剪473
36.5.3 全視域體裁剪474
36.6 背面剔除475
36.7 層次遮擋剔除476
36.8 基於分區的保守可見性477
36.8.1 穿刺樹478
36.8.2 入口和鏡子479
36.9 部分覆蓋480
36.9.1 空間反走樣(xy)481
36.9.2 散焦(uv)485
36.9.3 運動模糊(t)486
36.9.4 覆蓋作為材質屬性(α)487
36.10 討論和延伸閱讀487
36.11 練習488

第37章 空間數據結構489
37.1 引言489
37.1.1 動因舉例490
37.2 程序界面491
37.2.1 求交方法492
37.2.2 提取關鍵字和包圍體495
37.3 數據結構的特徵分析499
37.3.1 一維鍊錶舉例499
37.3.2 一維樹舉例500
37.4 多維數據結構概述501
37.5 列表502
37.6 樹504
37.6.1 二叉空間剖分樹505
37.6.2 構建BSP樹:八叉樹、四叉樹、BSP樹、kd樹509
37.6.3 包圍體層次結構512
37.7 網格513
37.7.1 構造513
37.7.2 光線求交515
37.7.3 選擇網格分辨率518
37.8 討論和延伸閱讀520

第38章 現代圖形硬件522
38.1 引言522
38.2 NVIDIA GeForce 9800 GTX 523
38.3 體系結構與實現525
38.3.1 GPU體系結構526
38.3.2 GPU實現528
38.4 並行化528
38.5 可編程性531
38.6 紋理、內存和時延533
38.6.1 紋理映射534
38.6.2 內存基礎537
38.6.3 應對時延539
38.7 局部性541
38.7.1 訪問的局部性541
38.7.2 高速緩存543
38.7.3 分歧545
38.8 其他組織方案548
38.8.1 延遲著色548
38.8.2 分片繪製549
38.8.3 Larrabee:GPU和CPU的混合體551
38.9 GPU作為計算引擎553
38.10 討論和延伸閱讀554
38.11 練習554
參考文獻