計算機(jī)圖形學(xué)原理及實踐(原書第3版)(基礎(chǔ)篇)
定 價:99 元
叢書名:華章教育
- 作者:約翰·F.休斯
- 出版時間:2018/11/1
- ISBN:9787111611806
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP391.411
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是計算機(jī)圖形學(xué)領(lǐng)域的著作,系統(tǒng)全面地介紹了計算機(jī)圖形學(xué)領(lǐng)域的關(guān)鍵概念、算法、技術(shù)和應(yīng)用。本書先介紹了如何創(chuàng)建二維和三維圖像,接下來介紹了更為廣泛的話題,包括圖像表示和操縱、圖像和信號處理、圖像的縮放、紋理和紋理映射、交互技術(shù)、曲線分割、曲面分割、形狀的隱式表示、網(wǎng)格、光、材料和散射、顏色、光傳輸、概率和蒙特卡洛集成、動畫、空間數(shù)據(jù)結(jié)構(gòu)、現(xiàn)代圖形學(xué)硬件等內(nèi)容。
本書面向?qū)W生、研究人員和從業(yè)人員,介紹計算機(jī)圖形學(xué)的許多重要概念和思想。其中一些概念讀者并不陌生,它們早已出現(xiàn)在廣為流行的學(xué)術(shù)出版物、技術(shù)報告、教科書和行業(yè)報刊中。在某個概念出現(xiàn)一段時間后再將其寫入教科書的好處是,人們可以更充分地理解它的長遠(yuǎn)影響并將其置于一個更大的背景中予以領(lǐng)悟。本書將盡可能詳細(xì)地介紹這些概念(當(dāng)然也略過了一些曾經(jīng)火熱但現(xiàn)在已不再重要的概念),并以一種清晰、流暢的風(fēng)格將它們呈現(xiàn)給初學(xué)者。
本書屬于第二代圖形學(xué)教科書:我們并不將之前的所有工作全部認(rèn)定為天然合理的,而是按今天的理解重新審視它們,進(jìn)而更新其原有的陳述方式。
甚至一些最基本的問題也可能變得非常棘手。舉例來說,假如要設(shè)計一個適用于低光照環(huán)境(如電影院的暗環(huán)境)的程序。顯然,我們不能采用亮屏幕顯示器,這意味著在顯示程序中采用亮度對比來區(qū)分環(huán)境中的不同對象不再適宜。也許可以改用彩色顯示,但遺憾的是,在低光照環(huán)境中人們對顏色的感知同樣有所降低,某些顏色的文字要比其他顏色更易讀。在這種情況下,光標(biāo)是否仍容易被用戶看到呢?一種簡單的應(yīng)對方式是利用人眼對運動的感知能力,讓光標(biāo)持續(xù)抖動。于是,一個看似簡單的問題最后涉及交互界面設(shè)計、顏色理論以及人類感知等領(lǐng)域。
盡管上述例子很簡單,但仍隱含了某些假設(shè):采用圖形方式輸出(而不是通過觸覺或封閉良好的耳機(jī)來輸出);顯示設(shè)備既非常規(guī)的影院屏幕,也不是頭盔顯示器。其中也包含了一些顯式的假設(shè),例如采用光標(biāo)(也有一些用戶界面不使用光標(biāo))。上述每一種假設(shè)都是對用戶界面的一種選擇。
遺憾的是,這種多方面內(nèi)容相互交織的關(guān)系使得我們不可能完全按照某種順序來講述各主題,而且還能很好地介紹它們的研究動因和背景,也就是說,這些主題無法以線性方式展開。也許,我們可以先介紹它們涉及的所有相關(guān)的數(shù)學(xué)、感知理論或其他內(nèi)容,總之,將較為抽象的內(nèi)容和主題放在前面介紹,然后再介紹圖形學(xué)應(yīng)用。盡管這種內(nèi)容組織方式可能便于參考(讀者很容易找到講述一般化向量叉積的有關(guān)章節(jié)),但對一本教科書而言,其效果并不好,原因是那些涉及主題研究動因的應(yīng)用都要等到書的最后才會介紹。另一種展開方式是采取案例研究的思路,分別介紹各種不同的任務(wù)(難度不斷增大),然后根據(jù)問題的需要講述相關(guān)內(nèi)容。在某些情況下,這確實是一種自然的內(nèi)容演繹方式,但難以對各主題做出整體性、結(jié)構(gòu)化的呈現(xiàn)。本書是這兩種方式的折中:開始部分介紹了廣泛使用的數(shù)學(xué)知識和常規(guī)的符號標(biāo)記方式,然后逐個主題展開內(nèi)容,根據(jù)需要補(bǔ)充介紹必要的數(shù)學(xué)工具。熟悉數(shù)學(xué)的讀者完全可以跳過開始部分而不致錯過任何圖形學(xué)知識。其他人則可從這些章節(jié)中獲益良多。教師授課時可根據(jù)需要對其進(jìn)行取舍;谥黝}的章節(jié)安排方式可能會導(dǎo)致內(nèi)容上的重復(fù)。例如,本書從不同的細(xì)節(jié)層次對圖形流水線進(jìn)行了多次討論。與其讓讀者回頭參考之前的章節(jié),有時我們會再次陳述部分內(nèi)容,使對該問題的討論更為流暢。畢竟讓讀者返回500頁之前去查看一幅圖并非令人愜意的事。
對本教材的作者來說,另一個挑戰(zhàn)是選材的廣度。本書的第1版確實覆蓋了當(dāng)時圖形學(xué)出版物中的大部分內(nèi)容,第2版至少也約略提到了其中大部分的研究工作。本版教材不再追求內(nèi)容的覆蓋度,理由很簡單:當(dāng)本書第2版出版時,我們一只手就能拿起SIGGRAPH會議的全部論文集(這些論文幾乎包含了圖形學(xué)領(lǐng)域的代表性工作);如今,SIGGRAPH會議的全部論文集(僅僅是許多圖形學(xué)出版物中的一種)疊在一起高達(dá)數(shù)米。即使是電子版的教材也無法將全部內(nèi)容塞進(jìn)1000頁中。本書這一版旨在為讀者指明在哪里可以找到和復(fù)制當(dāng)今的大部分SIGGRAPH論文。下面是幾點說明:
●第一,計算機(jī)圖形學(xué)與計算機(jī)視覺的交叉面越來越大,但這并不能構(gòu)成讓我們將本書寫成計算機(jī)視覺教材的理由,盡管一些有該領(lǐng)域豐富知識的人已經(jīng)這樣做了。
●第二,計算機(jī)圖形學(xué)涉及編程,盡管許多圖形學(xué)應(yīng)用題目很大,但本書并沒有試圖講授編程和軟件工程。當(dāng)然,在書中我們也會簡要討論一些專門針對圖形學(xué)的編程方法(尤其是排錯)。
●第三,許多圖形學(xué)應(yīng)用都提供了用戶界面。在編寫本書時,大多數(shù)界面均基于Windows操作系統(tǒng),采用菜單和鼠標(biāo)進(jìn)行交互。不過基于觸覺的交互界面正變得越來越常見。交互界面的研究曾經(jīng)是圖形學(xué)的一部分,但如今已成為一個獨立的領(lǐng)域(盡管它仍和圖形學(xué)有很大的交叉)。我們假定讀者在編寫含用戶界面的程序方面已具備了一些經(jīng)驗,因此本書將不再對它們做深入討論(除了其實現(xiàn)過程與圖形學(xué)密切關(guān)聯(lián)的3D界面外)。
毋庸置疑,圖形學(xué)領(lǐng)域的研究論文區(qū)別很大:有些涉及很多的數(shù)學(xué)表述;有些介紹的是一個大規(guī)模的系統(tǒng),涉及各種復(fù)雜的工程因素的權(quán)衡;還有些涉及物理學(xué)、色彩理論、地形學(xué)、攝影學(xué)、化學(xué)、動物學(xué)等各個學(xué)科的知識。我們的目標(biāo)是讓讀者領(lǐng)會這些論文中的圖形學(xué)貢獻(xiàn),而其他的相關(guān)知識則需要讀者在課外自行學(xué)習(xí)。
歷史上的方法
在歷史上,圖形學(xué)大多為一些面向當(dāng)時急需解決的問題的專門方法。這么說并非對那些曾經(jīng)使用這些方法的人有所不敬,他們手頭有任務(wù),必須想辦法完成。其中
出版者的話
譯者序
前言
作者簡介
第1章 緒論1
1.1 計算機(jī)圖形學(xué)簡介1
1.1.1 計算機(jī)圖形學(xué)的世界3
1.1.2 應(yīng)用領(lǐng)域的現(xiàn)狀與前景3
1.1.3 關(guān)于用戶界面的思考5
1.2 簡要歷史6
1.3 一個光照的例子7
1.4 目標(biāo)、資源和適度的抽象8
1.4.1 深度理解與常見的做法9
1.5 圖形學(xué)中的常數(shù)和一些參數(shù)值的量級9
1.5.1 光能量和光子到達(dá)率9
1.5.2 顯示器的特性和眼睛的分辨率10
1.5.3 數(shù)碼相機(jī)的特性10
1.5.4 復(fù)雜應(yīng)用的處理需求10
1.6 圖形管線11
1.6.1 紋理映射與近似12
1.6.2 更為詳細(xì)的圖形管線13
1.7 圖形學(xué)與藝術(shù)、設(shè)計、感知的關(guān)系14
1.8 基本圖形系統(tǒng)16
1.8.1 圖形數(shù)據(jù)16
1.9 視為黑盒的多邊形繪制18
1.10 圖形系統(tǒng)中的交互18
1.11 不同類型的圖形應(yīng)用18
1.12 不同類型的圖形包19
1.13 構(gòu)建真實感繪制模塊:概述20
1.13.1 光線20
1.13.2 物體和材料21
1.13.3 接收來自場景中的光線22
1.13.4 圖像顯示22
1.13.5 人類視覺系統(tǒng)23
1.13.6 數(shù)學(xué)運算23
1.13.7 積分和采樣24
1.14 學(xué)習(xí)計算機(jī)圖形學(xué)24
第2章 2D圖形學(xué)簡介——基于WPF26
2.1 引言26
2.2 2D圖形流水線概述26
2.3 2D圖形平臺的演變27
2.3.1 從整數(shù)坐標(biāo)到浮點數(shù)坐標(biāo)27
2.3.2 即時模式與保留模式29
2.3.3 過程語言與描述性語言30
2.4 使用WPF定義2D場景31
2.4.1 XAML應(yīng)用程序結(jié)構(gòu)31
2.4.2 采用抽象坐標(biāo)系定義場景31
2.4.3 坐標(biāo)系的選擇范圍33
2.4.4 WPF畫布坐標(biāo)系34
2.4.5 使用顯示變換35
2.4.6 構(gòu)造并使用模塊化模板37
2.5 用WPF實現(xiàn)的2D圖形動態(tài)顯示42
2.5.1 基于描述性動畫的動態(tài)顯示42
2.5.2 基于過程代碼的動態(tài)顯示44
2.6 支持各種形狀系數(shù)45
2.7 討論和延伸閱讀46
第3章 一個古老的繪制器47
3.1 一幅丟勒的木刻畫47
3.2 可見性49
3.3 實現(xiàn)49
3.3.1 繪圖52
3.4 程序55
3.5 局限性57
3.6 討論和延伸閱讀59
3.7 練習(xí)60
第4章 2D圖形測試平臺62
4.1 引言62
4.2 測試平臺的細(xì)節(jié)63
4.2.1 使用2D測試平臺63
4.2.2 割角63
4.2.3 基于測試平臺的程序的結(jié)構(gòu)64
4.3 C#代碼68
4.3.1 坐標(biāo)系70
4.3.2 WPF數(shù)據(jù)依賴71
4.3.3 事件處理71
4.3.4 其他幾何物體73
4.4 動畫73
4.5 交互74
4.6 測試平臺的一個應(yīng)用程序74
4.7 討論77
4.8 練習(xí)77
第5章 人類視覺感知簡介78
5.1 引言78
5.2 視覺系統(tǒng)79
5.3 眼睛82
5.3.1 眼睛的生理機(jī)能82
5.3.2 眼睛中的光感受器83
5.4 恒常性及其影響85
5.5 延續(xù)性87
5.6 陰影88
5.7 討論和延伸閱讀89
5.8 練習(xí)90
第6章 固定功能的3D圖形平臺和層次建模簡介92
6.1 引言92
6.1.1 WPF 3D部分的設(shè)計92
6.1.2 對光與物體交互的物理過程的近似93
6.1.3 WPF 3D概述93
6.2 網(wǎng)格和光照屬性94
6.2.1 場景設(shè)計94
6.2.2 生成更真實的光照98
6.2.3 固定功能繪制中的“光照”與“著色”101
6.3 曲面表示和繪制102
6.3.1 基于插值的著色處理(Gouraud著色)102
6.3.2 將表面設(shè)置為多面體表面和平滑表面104
6.4 WPF中的表面紋理105
6.4.1 基于分片拼接的紋理映射106
6.4.2 基于拉伸的紋理映射107
6.5 WPF反射模型107
6.5.1 顏色設(shè)置107
6.5.2 光源幾何108
6.5.3 反射率108
6.6 基于場景圖進(jìn)行層次建模112
6.6.1 模塊化建模的動因112
6.6.2 自頂向下的部件層次結(jié)構(gòu)設(shè)計113
6.6.3 自下而上的構(gòu)建和組合114
6.6.4 構(gòu)件的重用118
6.7 討論120
第7章 2D和3D空間中的基礎(chǔ)數(shù)學(xué)與幾何121
7.1 引言121
7.2 記號121
7.3 集合121
7.4 函數(shù)122
7.4.1 反正切函數(shù)123
7.5 坐標(biāo)124
7.6 坐標(biāo)運算124
7.6.1 向量126
7.6.2 如何理解向量127
7.6.3 向量長度127
7.6.4 向量運算127
7.6.5 矩陣乘法130
7.6.6 其他類型的向量131
7.6.7 隱式直線132
7.6.8 平面直線的隱式描述133
7.6.9 能否采用y=mx+b134
7.7 直線求交134
7.7.1 參數(shù)化參數(shù)化直線求交134
7.7.2 參數(shù)化隱式直線求交135
7.8 更一般的求交計算135
7.8.1 光線平面求交136
7.8.2 光線球求交137
7.9 三角形138
7.9.1 重心坐標(biāo)138
7.9.2 空間三角形139
7.9.3 半平面和三角形140
7.10 多邊形141
7.10.1 內(nèi)/外測試141
7.10.2 非簡單多邊形的內(nèi)部143
7.10.3 平面多邊形的符號面積:分而治之143
7.10.4 空間多邊形的法向量144
7.10.5 更一般多邊形的符號面積145
7.10.6 傾斜原理145
7.10.7 重心坐標(biāo)的模擬146
7.11 討論147
7.12