作 者:(美)赫恩//巴克//卡裡瑟斯 著作 蔡士傑//楊若瑜 譯者
定 價:89
出 版 社:電子工業出版社
出版日期:2014年11月01日
裝 幀:平裝
ISBN:9787121246142
●目 錄第1章 計算機圖形學綜述1.1 圖和表1.2 計算機輔助設計1.3 虛擬現實環境1.4 數據可視化1.5 教學與培訓1.6 計算機藝術1.7 娛樂1.8 圖像處理1.9 圖形用戶界面1.10 小結參考文獻第2章 計算機圖形硬件2.1 視頻顯示設備2.1.1 刷新式CRT2.1.2 光柵掃描顯示器2.1.3 隨機掃描顯示器2.1.4 彩色CRT監視器2.1.5 平板顯示器2.1.6 三維觀察設備2.1.7 立體感和虛擬現實繫統2.2 光柵掃描繫統2.2.1 視頻控制器2.2.2 光柵掃描顯示處理器2.3 圖形工作站和觀察繫統2.4 輸入設備2.4.1 鍵盤、 按鍵盒和旋鈕2.4.2 鼠標設備2.4.3 跟蹤球和空間球2.4.4 操縱杆2.4.5 數據手套2.4.6 數字化儀2.4.7 圖像掃描儀2.4.8 觸摸板2.4.9 光筆2.4.10 語音繫統2.5 硬拷貝設備2.6 圖形網絡2.7 因特網上的圖形2.8 小結參考文獻練習題附加綜合題第3章 計算機圖形軟件3.1 坐標表示3.2 圖形功能3.3 軟件標準3.4 其他圖形軟件包3.5 OpenGL簡介3.5.1 基本的OpenGL語法3.5.2 相關庫3.5.3 頭文件3.5.4 使用GLUT進行顯示窗口管理3.5.5 一個完整的OpenGL程序3.5.6 OpenGL的出錯處理3.6 小結參考文獻練習題附加綜合題第4章 4.1 坐標繫統4.1.1 屏幕坐標4.1.2 絕對和相對坐標描述4.2 OpenGL中指定二維世界坐標繫統4.3 OpenGL畫點函數4.4 OpenGL畫線函數4.5 OpenGL曲線函數4.6 填4.7 多邊形填充區4.7.1 多邊形分類4.7.2 識別凹多邊形4.7.3 分割凹多邊形4.7.4 將凸多邊形分割成三角形集4.7.5 內-外測試4.7.6 多邊形表4.7.7 平面方程4.7.8 前向面與後向面4.8 OpenGL多邊形填充區函數4.9 OpenGL頂點數組4.10 像素4.11 OpenGL像素陣列函數4.11.1 OpenGL位圖函數4.11.2 OpenGL像素圖函數4.11.3 OpenGL光柵操作4.12 4.13 OpenGL字符函數4.14 圖形分割4.15 OpenGL顯示表4.15.1 創建和命名OpenGL顯示表4.15.2 執行OpenGL顯示表4.15.3 刪除OpenGL顯示表4.16 OpenGL顯示窗口重定形函數4.17 小結示例程序參考文獻練習題附加綜合題第5章的屬性5.1 OpenGL狀態變量5.2 顏色和灰度5.2.1 RGB顏色分量5.2.2 顏色表5.2.3 灰度5.2.4 其他顏色參數5.3 OpenGL顏色函數5.3.1 OpenGL的RGB和RGBA顏色模型5.3.2 OpenGL 顏色索引模式5.3.3 OpenGL顏色調和5.3.4 OpenGL顏色數組5.3.5 其他OpenGL顏色函數5.4 點的屬性5.5 OpenGL點屬性函數5.6 線的屬性5.6.1 線寬5.6.2 線型5.6.3 畫筆或畫刷的選擇5.7 OpenGL線屬性函數5.7.1 OpenGL線寬函數5.7.2 OpenGL線型函數5.7.3 其他OpenGL線效果5.8 曲線屬性5.9 填充區屬性5.9.1 填充模式5.9.2 顏色調和填充區域5.10 OpenGL填充區屬性函數5.10.1 OpenGL填充圖案函數5.10.2 OpenGL紋理和插值圖案5.10.3 OpenGL線框圖方法5.10.4 OpenGL前向面函數5.11 字符屬性5.12 OpenGL字符屬性函數5.13 OpenGL反走樣函數5.14 OpenGL詢問函數5.15 OpenGL屬性組5.16 小結參考文獻練習題附加綜合題第6章 及屬性的算法6.1 畫線算法6.1.1 直線方程6.1.2 DDA算法6.1.3 Bresenham畫線算法6.1.4 顯示折線6.2 並行畫線算法6.3 幀緩存值的裝載6.4 圓生成算法6.4.1 圓的特性6.4.2 中點圓算法6.5 橢圓生成算法6.5.1 橢圓的特征6.5.2 中點橢圓算法6.6 其他曲線6.6.1 圓錐剖切線6.6.2 多項式和樣條曲線6.7 並行曲線算法6.8 像素編址和對像的幾何要素6.8.1 屏幕網格坐標6.8.2 保持顯示對像的幾何特性6.9 直線段和曲線屬性的實現6.9.1 線寬6.9.2 線型6.9.3 畫筆或畫刷的選項6.9.4 曲線屬性6.10 通用掃描線填充算法6.11 凸多邊形的掃描線填充6.12 曲線邊界區域的掃描線填充6.13 不規則邊界區域的填充方法6.13.1 邊界填充算法6.13.2 泛濫填充算法6.14 填充模式的實現方法6.14.1 填充模式6.14.2 顏色調和填充區域6.15 反走樣的實現方法6.15.1 直線段的過取樣6.15.2 子像素的加權掩模6.15.3 直線段的區域取樣6.15.4 過濾技術6.15.5 像素移相6.15.6 直線亮度差的校正6.15.7 區域邊界的反走樣6.16 小結參考文獻練習題附加綜合題第7章 二維幾何變換7.1 基本的二維幾何變換7.1.1 二維平移7.1.2 二維旋轉7.1.3 二維縮放7.2 矩陣表示和齊次坐標7.2.1 齊次坐標7.2.2 二維平移矩陣7.2.3 二維旋轉矩陣7.2.4 二維縮放矩陣7.3 逆變換7.4 二維復合變換7.4.1 復合二維平移7.4.2 復合二維旋轉7.4.3 復合二維縮放7.4.4 通用二維基準點旋轉7.4.5 通用二維基準點縮放7.4.6 通用二維定向縮放7.4.7 矩陣合並特性7.4.8 通用二維復合變換和計算效率7.4.9 二維剛體變換7.4.10 構造二維旋轉矩陣7.4.11 二維復合矩陣編程例7.5 其他二維變換7.5.1 反射7.5.2 錯切7.6 幾何變換的光柵方法7.7 OpenGL光柵變換7.8 二維坐標繫間的變換7.9 OpenGL二維幾何變換函數7.9.1 基本的OpenGL幾何變換7.9.2 OpenGL矩陣操作7.10 OpenGL幾何變換編程示例7.11 小結參考文獻練習題附加綜合題第8章 二維觀察8.1 二維觀察流水線8.2 裁剪窗口8.2.1 觀察坐標繫裁剪窗口8.2.2 世界坐標繫裁剪窗口8.3 規範化和視口變換8.3.1 裁剪窗口到規範化視口的映射8.3.2 裁剪窗口到規範化正方形的映射8.3.3 字符串的顯示8.3.4 分畫面效果和多輸出設備8.4 OpenGL二維觀察函數8.4.1 OpenGL投影模式8.4.2 GLU裁剪窗口函數8.4.3 OpenGL視口函數8.4.4 建立GLUT顯示窗口8.4.5 設定GLUT顯示窗口的模式和顏色8.4.6 GLUT顯示窗口標識8.4.7 刪除GLUT顯示窗口8.4.8 當前GLUT顯示窗口8.4.9 修改GLUT顯示窗口的位置和大小8.4.10 管理多個GLUT顯示窗口8.4.11 GLUT子窗口8.4.12 顯示窗口屏幕光標形狀的選擇8.4.13 在GLUT顯示窗口中觀察圖形對像8.4.14 執行應用程序8.4.15 其他GLUT函數8.4.16 OpenGL的二維觀察程序例8.5 裁剪算法8.6 二維點裁剪8.7 二維線裁剪8.7.1 Cohen?Sutherland線段裁剪算法8.7.2 梁友棟?Barsky線段裁剪算法8.7.3 Nicholl?Lee?Nicholl線段裁剪算法8.7.4 非矩形多邊形裁剪窗口的線段裁剪8.7.5 非線性裁剪窗口邊界的線裁剪8.8 多邊形填充區裁剪8.8.1 Sutherland?Hodgman多邊形裁剪8.8.2 Weiler?Atherton多邊形裁剪8.8.3 非矩形的多邊形窗口的多邊形裁剪8.8.4 非線性裁剪窗口邊界的多邊形裁剪8.9 曲線的裁剪8.10 文字的裁剪8.11 小結參考文獻練習題附加綜合題第9章 三維幾何變換9.1 三維平移9.2 三維旋轉9.2.1 三維坐標軸旋轉9.2.2 一般三維旋轉9.2.3 三維旋數方法9.3 三維縮放9.4 三維復合變換9.5 其他三維變換9.5.1 三維反射9.5.2 三維錯切9.6 三維坐標繫間的變換9.7 仿射變換9.8 OpenGL幾何變換函數9.8.1 OpenGL矩陣棧9.9 OpenGL幾何變換編程例9.10 小結參考文獻練習題附加綜合題第10章 三維觀察10.1 三維觀察概念綜述10.1.1 三維場景觀察10.1.2 投影10.1.3 深度提示10.1.4 可見線和可見面的判定10.1.5 面繪制10.1.6 拆散和剖切面視圖10.1.7 三維和立體視圖10.2 三維觀察流水線10.3 三維觀察坐標繫參數10.3.1 觀察平面法向量10.3.2 觀察向上向量10.3.3 uvn觀察坐標繫10.3.4 生成三維觀察效果10.4 世界坐標繫到觀察坐標繫的變換10.5 投影變換10.6 正投影10.6.1 軸測和等軸測正投影10.6.2 正投影坐標繫10.6.3 裁剪窗口和正投影觀察體10.6.4 正投影的規範化變換10.7 斜投影10.7.1 繪圖和設計中的斜平行投影10.7.2 斜等測和斜二測斜平行投影10.7.3 斜平行投影向量10.7.4 裁剪窗口和斜平行投影觀察體10.7.5 斜平行投影變換矩陣10.7.6 斜平行投影的規範化變換10.8 透視投影10.8.1 透視投影變換坐標繫10.8.2 透視投影公式: 特殊情況10.8.3 透視投影的滅點10.8.4 透視投影觀察體10.8.5 透視投影變換矩陣10.8.6 對稱的透視投影錐體10.8.7 斜透視投影稜臺10.8.8 規範化透視投影變換坐標10.9 視口變換和三維屏幕坐標繫10.10 OpenGL三維觀察函數10.10.1 OpenGL觀察變換函數10.10.2 OpenGL正交投影函數10.10.3 OpenGL對稱透視投影稜臺10.10.4 OpenGL通用透視投影函數10.10.5 OpenGL視口和顯示窗口10.10.6 OpenGL三維觀察程序示例10.11 三維裁剪算法10.11.1 三維齊次坐標繫中的裁剪10.11.2 三維區域碼10.11.3 三維點和線的裁剪10.11.4 三維多邊形裁剪10.11.5 三維曲面裁剪10.11.6 任意裁剪平面10.12 OpenGL任選裁剪平面10.13 小結參考文獻練習題附加綜合題第11章 層次建模11.1 基本建模概念11.1.1 繫統表示11.1.2 符號層次11.2 建模軟件包11.3 通用層次建模方法11.3.1 局部坐標11.3.2 建模變換11.3.3 創建層次結構11.4 使用OpenGL顯示列表的層次建模11.5 小結參考文獻練習題附加綜合題第12章 計算機動畫12.1 計算機動畫的光柵方法12.1.1 雙緩存12.1.2 用光柵操作生成動畫12.2 動畫序列的設計12.3 傳統動畫技術12.4 通用計算機動畫功能12.5 計算機動畫語言12.6 關鍵幀繫統12.6.1 變形12.6.2 模擬加速度12.7 運動的描述12.7.1 直接運動描述12.7.2 目標導向繫統12.7.3 運動學和動力學12.8 角色動畫12.8.1 關節鏈形體動畫12.8.2 運動捕捉12.9 周期性運動12.10 OpenGL動畫子程序12.11 小結參考文獻練習題附加綜合題第13章 三維對像的表示13.1 多面體13.2 OpenGL多面體函數13.2.1 OpenGL多邊形填充函數13.2.2 GLUT規則多面體函數13.2.3 GLUT多面體程序示例13.3 曲面13.4 二次曲面13.4.1 球面13.4.2 橢球面13.4.3 環面13.5 超二次曲面13.5.1 超橢圓13.5.2 超橢球面13.6 OpenGL二次曲面和三次曲面函數13.6.1 GLUT二次曲面函數13.6.2 OpenGL三次曲面茶壺函數13.6.3 GLU二次曲面函數13.6.4 使用GLUT和GLU二次曲面函數的程序示例13.7 小結參考文獻練習題附加綜合題第14章 樣條表示14.1 插值和逼近樣條14.2 參數連續性條件14.3 幾何連續性條件14.4 樣條描述14.5 樣條曲面14.6 修剪樣條曲面14.7 三次樣條插值方法14.7.1 自然三次樣條14.7.2 Hermite插值14.7.3 Cardinal樣條14.7.4 Kochanek?Bartels樣條14.8 Bézier樣條曲線14.8.1 Bézier曲線公式14.8.2 Bézier曲線生成程序示例14.8.3 Bézier曲線的特性14.8.4 使用Bézier曲線的設計技術14.8.5 三次Bézier曲線14.9 Bézier曲面14.10 B樣條曲線14.10.1 B樣條曲線公式14.10.2 均勻周期性B樣條曲線14.10.3 三次周期性B樣條曲線14.10.4 開放均勻的B樣條曲線14.10.5 非均勻B樣條曲線14.11 B樣條曲面14.12 Beta樣條14.12.1 Beta樣條連續性條件14.12.2 三次周期性Beta樣條曲線的矩陣表示14.13 有理樣條14.14 樣條表示之間的轉換14.15 樣條曲線和曲面的顯示14.15.1 Horner規則14.15.2 向前差分計算14.15.3 細分方法14.16 OpenGL的逼近樣條函數14.16.1 OpenGL的Bézier樣條曲線函數14.16.2 OpenGL的Bézier樣條曲面函數14.16.3 GLU的B樣條曲線函數14.16.4 GLU的B樣條曲面函數14.16.5 GLU曲面修剪函數14.17 小結參考文獻練習題附加綜合題第15章 其他三維對像的表示15.1 柔性對像15.2 掃描表示法15.3 結構實體幾何法15.4 八叉樹15.5 BSP樹15.6 基於物理的方法15.7 小結參考文獻練習題附加綜合題第16章 可見面判別算法16.1 可見面判別算法的分類16.2 後向面判別16.3 深度緩存算法16.4 A緩存算法16.5 掃描線算法16.6 深度排序算法16.7 BSP樹算法16.8 區域細分算法16.9 八叉樹算法16.10 光線投射算法16.11 可見性檢測算法的比較16.12 曲面16.12.1 曲面表示16.12.2 曲面的層位線顯示16.13 線框圖可見性算法16.13.1 線框面可見性算法16.13.2 線框圖深度提示算法16.14 OpenGL可見性檢查函數16.14.1 OpenGL多邊形剔除函數16.14.2 OpenGL深度緩存函數16.14.3 OpenGL線框面可見性方法16.14.4 OpenGL深度提示函數16.15 小結參考文獻練習題附加綜合題第17章 光照模型與面繪制算法17.1 光源17.1.1 點光源17.1.2 無窮遠光源17.1.3 輻射強度衰減17.1.4 方向光源和投射效果17.1.5 角強度衰減17.1.6 擴展光源和Warn模型17.2 表面光照效果17.3 基本光照模型17.3.1 環境光17.3.2 漫反射17.3.3 鏡面反射和Phong模型17.3.4 漫反射和鏡面反射的合並17.3.5 多光源的漫反射和鏡面反射17.3.6 表面的光發射17.3.7 考慮強度衰減和高光的基本光照模型17.3.8 RGB顏色考慮17.3.9 其他顏色表示17.3.10 亮度17.4 透明表面17.4.1 半透明材料17.4.2 光折射17.4.3 基本的透明模型17.5 霧氣效果17.6 陰影17.7 照相機參數17.8 光強度顯示17.8.1 分配繫統強度等級17.8.2 gamma校正與視頻查找表17.8.3 顯示連續色調的圖像17.9 半色調模式和抖動技術17.9.1 半色調近似17.9.2 抖動技術17.10 多邊形繪制算法17.10.1 恆定強度的明暗處理17.10.2 Gouraud明暗處理17.10.3 Phong明暗處理17.10.4 快速Phong明暗處理17.11 OpenGL光照和表面繪制函數17.11.1 OpenGL點光源函數17.11.2 指定一個OpenGL光源位置和類型17.11.3 指定OpenGL光源顏色17.11.4 指定OpenGL光源的輻射強度衰減繫數17.11.5 OpenGL方向光源(投射光源)17.11.6 OpenGL全局光照參數17.11.7 OpenGL表面特性函數17.11.8 OpenGL光照模型17.11.9 OpenGL霧氣效果17.11.10 OpenGL透明性函數17.11.11 OpenGL表面繪制函數17.11.12 OpenGL半色調操作17.12 小結參考文獻練習題附加綜合題第18章 紋理與表面細節添加方法18.1 用多邊形模擬表面細節18.2 紋理映射18.2.1 線性紋理圖案18.2.2 表面紋理圖案18.2.3 體紋理圖案18.2.4 紋理縮減圖案18.2.5 過程式紋理映射方法18.3 凹凸映射18.4 幀映射18.5 OpenGL紋理函數18.5.1 OpenGL線紋理函數18.5.2 OpenGL表面紋理函數18.5.3 OpenGL體紋理函數18.5.4 OpenGL紋理圖案的顏色選項18.5.5 OpenGL紋理映射選項18.5.6 OpenGL紋理環繞18.5.7 復制幀緩存中的OpenGL紋理圖案18.5.8 OpenGL紋理坐標數組18.5.9 OpenGL紋理圖案命名18.5.10 OpenGL紋理子圖案18.5.11 OpenGL紋理縮減圖案18.5.12 OpenGL紋理邊界18.5.13 OpenGL代理紋理18.5.14 二次曲面的自動紋理映射18.5.15 齊次紋理坐標18.5.16 其他的OpenGL紋理選項18.6 小結參考文獻練習題附加綜合題第19章 顏色模型和顏色應用19.1 光的特性19.1.1 電磁頻譜19.1.2 顏色的心理學特征19.2 顏色模型19.2.1 基色19.2.2 直觀的顏色概念19.3 標準基色和色度圖19.3.1 XYZ顏色模型19.3.2 規範化的XYZ值19.3.3 CIE色度圖19.3.4 顏色範圍19.3.5 互補色19.3.6 主波長19.3.7 純度19.4 RGB顏色模型19.5 YIQ顏色模型19.5.1 YIQ參數19.5.2 RGB顏色空間和YIQ顏色空間之間的轉換19.5.3 YUV和YCrCb繫統19.6 CMY和CMYK顏色模型19.6.1 CMY參數19.6.2 CMY顏色空間和RGB顏色空間之間的轉換19.7 HSV顏色模型19.7.1 HSV參數19.7.2 選擇明暗、 色澤和色調19.7.3 HSV和RGB模型之間的轉換19.8 HLS顏色模型19.9 顏色選擇及其應用19.10 小結參考文獻練習題附加綜合題第20章 圖形用戶界面和交互輸入方法20.1 圖形數據的輸入20.2 輸入設備的邏輯分類20.2.1 定位設備20.2.2 筆劃設備20.2.3 字符串設備20.2.4 定值設備20.2.5 選擇設備20.2.6 拾取設備20.3 圖形數據的輸入功能20.3.1 輸入模式20.3.2 回顯反饋20.3.3 回調函數20.4 交互式構圖技術20.4.1 基本的定位方法20.4.2 拖曳20.4.3 約束20.4.4 網格20.4.5 橡皮條方法20.4.6 引力場20.4.7 交互式繪畫方法20.5 虛擬現實環境20.6 OpenGL支持交互式輸入設備的函數20.6.1 GLUT鼠標函數20.6.2 GLUT鍵盤函數20.6.3 GLUT數據板函數20.6.4 GLUT空間球函數20.6.5 GLUT按鈕盒函數20.6.6 GLUT撥號盤函數20.6.7 OpenGL拾取操作20.7 OpenGL的菜單功能20.7.1 創建GLUT菜單20.7.2 創建和管理多個GLUT菜單20.7.3 創建GLUT子菜單20.7.4 修改GLUT菜單20.8 圖形用戶界面的設計20.8.1 用戶對話20.8.2 窗口和圖符20.8.3 適應多種熟練程度的用戶20.8.4 一致性20.8.5 減少記憶量20.8.6 回退和出錯處理20.8.7 反饋20.9 小結參考文獻練習題附加綜合題第21章 全局光照21.1 光線跟蹤方法21.1.1 基本光線跟蹤算法21.1.2 光線與對像表面的求交計算21.1.3 光線-球面求交21.1.4 光線-多面體求交21.1.5 減少對像求交計算量21.1.6 空間分割方法21.1.7 模擬照相機的聚焦效果21.1.8 光線跟蹤反走樣21.1.9 分布式光線跟蹤21.2 輻射度光照模型21.2.1 輻射能術語21.2.2 基本輻射度模型21.2.3 逐步求精的輻射度方法21.3 環境映射21.4 光子映射21.5 小結參考文獻練習題附加綜合題第22章 可編程著色器22.1 著色語言的發展歷史22.1.1 Cook著色樹22.1.2 Perlin像素流編輯器22.1.3 RenderMan22.2 OpenGL渲染流水線22.2.1 固定功能流水線22.2.2 改變流水線結構22.2.3 頂點著色器22.2.4著色器22.2.5 幾何著色器22.2.6 曲面細分著色器22.3 OpenGL著色語言22.3.1 著色器結構22.3.2 在OpenGL中使用著色器22.3.3 基本數據類型22.3.4 矢量22.3.5 矩陣22.3.6 結構和數組22.3.7 控制結構22.3.8 GLSL函數22.3.9 與OpenGL的通信22.4 著色器效果22.4.1 一個Phong著色器22.4.2 紋理映射22.4.3 凹凸映射22.5 小結參考文獻練習題附加綜合題第23章 基於算法的建模23.1 分形幾何方法23.1.1 分形生成過程23.1.2 分形分類23.1.3 分形的維數23.1.4 確定性自相似分形幾何構造23.1.5 統計自相似分形的幾何構造23.1.6 仿射分形構造方法23.1.7 隨機中點位移方法23.1.8 地面圖控制23.1.9 自平方分形23.1.10 自逆分形23.2 粒子繫統23.3 形狀語法和其他過程方法23.4 小結參考文獻練習題附加綜合題第24章 數據集可視化24.1 標量場的可視化表示24.2 向量場的可視表示24.3 張量場的可視表示24.4 多變量數據場的可視表示24.5 小結參考文獻練習題附加綜合題附錄A 計算機圖形學的數學基礎附錄B 圖形文件格式附錄C OpenGL的世界參考文獻索引
本書是一本經典著作,這次版本更新增加了許多實踐內容,覆蓋了近年來計算機圖形學的近期新發展和成就,並附有使用OpenGL編寫的大量程序以及各種效果圖。本書共分24章,全面繫統地講解了計算機圖形學的基本概念和相關技術。作者首先對計算機圖形學進行綜述;然後講解了二維圖形的對像表示、算法及應用,三維圖形的相關技術、建模和變換等;接著介紹了層次建模、動畫技術、樣條曲線表示、紋理處理等方面的內容,最後光照模型、顏色模型和交互輸入法等。
(美)赫恩//巴克//卡裡瑟斯 著作 蔡士傑//楊若瑜 譯者
赫恩,從1985年開始任教於伊利諾伊大學Urbana-Champaign分校的計算機科學學院。Hearn博士擔任過多門課程的教學工作,其中包括計算機圖形學、科學計算可視化、計算科學、數學和應用科學等。他還指導過多個研究項目並在該領域發表了大量的學術論文。