本書是一本內(nèi)容豐富、取材新穎的計算機(jī)圖形學(xué)著作,在前一版的基礎(chǔ)上進(jìn)行了全面擴(kuò)充,增加了許多新的內(nèi)容,覆蓋了近年來計算機(jī)圖形學(xué)的最新發(fā)展和成就。全書層次分明、重點(diǎn)突出,并附有使用OpenGL編寫的大量程序及各種效果圖,是一本難得的優(yōu)秀教材。全書共分為24章及3個附錄,全面系統(tǒng)地講解了計算機(jī)圖形學(xué)的基本概念和相關(guān)技術(shù)。作者首先對計算機(jī)圖形學(xué)進(jìn)行綜述;然后講解二維圖形的對象表示、算法及應(yīng)用,三維圖形的相關(guān)技術(shù)、建模和變換等;接著介紹光照模型、顏色模型和動畫技術(shù)。本書還新增了有關(guān)分層建模與動畫的介紹,以及對OpenGL的全面介紹;最后的附錄給出了計算機(jī)圖形學(xué)中用到的基本數(shù)學(xué)概念、圖形文件格式及OpenGL的相關(guān)內(nèi)容等。
Donald Hearn從1985年開始任教于美國伊利諾伊大學(xué)Urbana-Champaigh分校的計算機(jī)科學(xué)系。Hearn博士擔(dān)任過多門課程的教學(xué)工作,包括計算機(jī)圖形學(xué)、科學(xué)計算可視化、計算科學(xué)、數(shù)學(xué)和應(yīng)用科學(xué)等。他還指導(dǎo)過多個研究項(xiàng)目并在相關(guān)領(lǐng)域發(fā)表了許多學(xué)術(shù)論文。M. Pauline Baker是美國印第安納大學(xué)-普度大學(xué)Indianapolis聯(lián)合分校(IUPUI)信息學(xué)院的教授。Baker教授主持印第安納大學(xué)可視化和交互空間滲透技術(shù)實(shí)驗(yàn)室的相關(guān)工作,也是伊利諾伊大學(xué)美國國家超級計算應(yīng)用中心(NCSA)的主任。Baker教授在康奈爾大學(xué)獲得心理學(xué)學(xué)士學(xué)位,在Syracuse大學(xué)獲得教育學(xué)碩士學(xué)位,并在伊利諾伊大學(xué)獲得計算機(jī)科學(xué)博士學(xué)位。
蔡士杰,南京大學(xué)計算機(jī)科學(xué)與技術(shù)系教授,博士生導(dǎo)師。楊若瑜,南京大學(xué)計算機(jī)科學(xué)與技術(shù)系副教授、碩士生導(dǎo)師,主要研究方向?yàn)閳D形識別、計算機(jī)視覺及三維建模和仿真,主持和參與多個研究或應(yīng)用型項(xiàng)目。
目錄
第1章 計算機(jī)圖形學(xué)綜述
1.1 圖和表
1.2 計算機(jī)輔助設(shè)計
1.3 虛擬現(xiàn)實(shí)環(huán)境
1.4 數(shù)據(jù)可視化
1.5 教學(xué)與培訓(xùn)
1.6 計算機(jī)藝術(shù)
1.7 娛樂
1.8 圖像處理
1.9 圖形用戶界面
1.10 小結(jié)
參考文獻(xiàn)
第2章 計算機(jī)圖形硬件
2.1 視頻顯示設(shè)備
2.2 光柵掃描系統(tǒng)
2.3 圖形工作站和觀察系統(tǒng)
2.4 輸入設(shè)備
2.5 硬拷貝設(shè)備
2.6 圖形網(wǎng)絡(luò)
2.7 因特網(wǎng)上的圖形
2.8 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第3章 計算機(jī)圖形軟件
3.1 坐標(biāo)表示
3.2 圖形功能
3.3 軟件標(biāo)準(zhǔn)
3.4 其他圖形軟件包
3.5 OpenGL簡介
3.6小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第4章 輸出圖元
4.1 坐標(biāo)系
4.2 在OpenGL中指定二維世界坐標(biāo)系
4.3 OpenGL畫點(diǎn)函數(shù)
4.4 OpenGL畫線函數(shù)
4.5 OpenGL曲線函數(shù)
4.6 填充區(qū)圖元
4.7 多邊形填充區(qū)
4.8 OpenGL多邊形填充區(qū)函數(shù)
4.9 OpenGL頂點(diǎn)數(shù)組
4.10 像素陣列圖元
4.11 OpenGL像素陣列函數(shù)
4.12 字符圖元
4.13 OpenGL字符函數(shù)
4.14 圖形分割
4.15 OpenGL顯示表
4.16 OpenGL顯示窗口重定形函數(shù)
4.17 小結(jié)
示例程序
參考文獻(xiàn)
練習(xí)題
附加綜合題
第5章 圖元的屬性
5.1 OpenGL狀態(tài)變量
5.2 顏色和灰度
5.3 OpenGL顏色函數(shù)
5.4點(diǎn)的屬性
5.5 OpenGL點(diǎn)屬性函數(shù)
5.6 線的屬性
5.7 OpenGL線屬性函數(shù)
5.8 曲線屬性
5.9 填充區(qū)屬性
5.10 OpenGL填充區(qū)屬性函數(shù)
5.11 字符屬性
5.12 OpenGL字符屬性函數(shù)
5.13 OpenGL反走樣函數(shù)
5.14 OpenGL查詢函數(shù)
5.15 OpenGL屬性組
5.16 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第6章 實(shí)現(xiàn)圖元及屬性的算法
6.1 畫線算法
6.2 并行畫線算法
6.3 設(shè)定幀緩存值
6.4 圓生成算法
6.5 橢圓生成算法
6.6 其他曲線
6.7 并行曲線算法
6.8 像素編址和對象的幾何要素
6.9 直線段和曲線屬性的實(shí)現(xiàn)
6.10 通用多邊形掃描線填充算法
6.11 凸多邊形的掃描線填充
6.12 曲線邊界區(qū)域的掃描線填充
6.13 不規(guī)則邊界區(qū)域的填充方法
6.14 填充模式的實(shí)現(xiàn)方法
6.15 反走樣的實(shí)現(xiàn)方法
6.16 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第7章 二維幾何變換
7.1 基本的二維幾何變換
7.2 矩陣表示和齊次坐標(biāo)
7.3 逆變換
7.4 二維復(fù)合變換
7.5 其他二維變換
7.6 幾何變換的光柵方法
7.7 OpenGL光柵變換
7.8 二維坐標(biāo)系間的變換
7.9 OpenGL二維幾何變換函數(shù)
7.10 OpenGL幾何變換程序示例
7.11 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第8章二維觀察
8.1 二維觀察流水線
8.2 裁剪窗口
8.3 規(guī)范化和視口變換
8.4 OpenGL二維觀察函數(shù)
8.5 裁剪算法
8.6 二維點(diǎn)裁剪
8.7 二維線段裁剪
8.8 多邊形填充區(qū)裁剪
8.9 曲線的裁剪
8.10 文字的裁剪
8.11 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第9章 三維幾何變換
9.1 三維平移
9.2 三維旋轉(zhuǎn)
9.3 三維縮放
9.4 三維復(fù)合變換
9.5 其他三維變
9.6 三維坐標(biāo)系間的變換
9.7 仿射變換
9.8 OpenGL幾何變換函數(shù)
9.9 OpenGL幾何變換編程示例
9.10 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第10章 三維觀察
10.1 三維觀察概念綜述
10.2 三維觀察流水線
10.3 三維觀察坐標(biāo)系參數(shù)
10.4 世界坐標(biāo)系到觀察坐標(biāo)系的變換
10.5 投影變換
10.6 正投影
10.7 斜投影
10.8 透視投影
10.9 視口變換和三維屏幕坐標(biāo)系
10.10 OpenGL三維觀察函數(shù)
10.11 三維裁剪算法
10.12 OpenGL任選裁剪平面
10.13 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第11章 層次建模
11.1 基本建模概念
11.2 建模軟件包
11.3 通用層次建模方法
11.4 使用OpenGL顯示表的層次建模
11.5 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第12章 計算機(jī)動畫
12.1 計算機(jī)動畫的光柵方法
12.2 動畫序列的設(shè)計
12.3 傳統(tǒng)動畫技術(shù)
12.4 通用計算機(jī)動畫功能
12.5 計算機(jī)動畫語言
12.6 關(guān)鍵幀系統(tǒng)
12.7 運(yùn)動的描述
12.8 角色動畫
12.9 周期性運(yùn)動
12.10 OpenGL動畫子程序
12.11 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第13章 三維對象的表示
13.1 多面體
13.2 OpenGL多面體函數(shù)
13.3 曲面
13.4 二次曲面
13.5 超二次曲面
13.6 OpenGL二次曲面和三次曲面函數(shù)
13.7 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第14章樣條表示
14.1 插值和逼近樣條
14.2 參數(shù)連續(xù)性條件
14.3 幾何連續(xù)性條件
14.4 樣條描述
14.5 樣條曲面
14.6 修剪樣條曲面
14.7 三次樣條插值方法
14.8 Bézier樣條曲線
14.9 Bézier曲面
14.10 B樣條曲線
14.11 B樣條曲面
14.12 beta樣條
14.13 有理樣條
14.14 樣條表示之間的轉(zhuǎn)換
14.15 樣條曲線和曲面的顯示
14.16 OpenGL的逼近樣條函數(shù)
14.17 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第15章 其他三維對象的表示
15.1 柔性對象
15.2 掃描表示法
15.3 結(jié)構(gòu)實(shí)體幾何法
15.4 八叉樹
15.5 BSP樹
15.6 基于物理的方法
15.7 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第16章 可見面判別算法
16.1 可見面判別算法的分類
16.2 后向面判別
16.3 深度緩存算法
16.4 A緩存算法
16.5 掃描線算法
16.6 深度排序算法
16.7 BSP樹算法
16.8 區(qū)域細(xì)分算法
16.9 八叉樹算法
16.10 光線投射算法
16.11 可見性檢測算法的比較
16.12 曲面
16.13 線框圖可見性算法
16.14 OpenGL可見性檢查函數(shù)
16.15 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第17章 光照模型與面繪制算法
17.1 光源
17.2 表面光照效果
17.3 基本光照模型
17.4 透明表面
17.5 霧氣效果
17.6 陰影
17.7 照相機(jī)參數(shù)
17.8 光強(qiáng)度顯示
17.9 半色調(diào)模式和抖動技術(shù)
17.10 多邊形繪制算法
17.11 OpenGL光照和表面繪制函數(shù)
17.12 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第18章 紋理與表面細(xì)節(jié)添加方法
18.1 用多邊形模擬表面細(xì)節(jié)
18.2 紋理映射
18.3 凹凸映射
18.4 幀映射
18.5 OpenGL紋理函數(shù)
18.6 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第19章 顏色模型和顏色應(yīng)用
19.1 光的特性
19.2 顏色模型
19.3 標(biāo)準(zhǔn)基色和色度圖
19.4 RGB顏色模型
19.5 YIQ顏色模型
19.6 CMY和CMYK顏色模型
19.7 HSV顏色模型
19.8 HLS顏色模型
19.9 顏色選擇及其應(yīng)用
19.10 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第20章 圖形用戶界面和交互輸入方法
20.1 圖形數(shù)據(jù)的輸入
20.2 輸入設(shè)備的邏輯分類
20.3 圖形數(shù)據(jù)的輸入功能
20.4 交互式構(gòu)圖技術(shù)
20.5 虛擬現(xiàn)實(shí)環(huán)境
20.6 OpenGL支持交互式輸入設(shè)備的函數(shù)
20.7 OpenGL的菜單函數(shù)
20.8 圖形用戶界面的設(shè)計
20.9 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第21章 全局光照
21.1 光線跟蹤方法
21.2 輻射度光照模型
21.3 環(huán)境映射
21.4 光子映射
21.5 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第22章 可編程著色器
22.1 著色語言的發(fā)展歷史
22.2 OpenGL渲染流水線
22.3 OpenGL著色語言
22.4 著色器效果
22.5 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第23章 基于算法的建模
23.1 分形幾何方法
23.2 粒子系統(tǒng)
23.3 形狀語法和其他過程方法
23.4 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
第24章 數(shù)據(jù)集可視化
24.1 標(biāo)量場的可視化表示
24.2 向量場的可視化表示
24.3 張量場的可視化表示
24.4 多變量數(shù)據(jù)場的可視化表示
24.5 小結(jié)
參考文獻(xiàn)
練習(xí)題
附加綜合題
索引
OpenGL函數(shù)索引