出版時(shí)間:2012-5 出版社:電子工業(yè)出版社 作者:Edward Angel,Dave Shreiner 頁(yè)數(shù):493 字?jǐn)?shù):903000
Tag標(biāo)簽:無(wú)
前言
第六版新增內(nèi)容 ●全書(shū)使用基于著色器的新版本OpenGL ●不再使用在OpenGL 3.1中所棄用的OpenGL函數(shù) ●在OpenGL應(yīng)用程序代碼和著色器中均增加了實(shí)現(xiàn)變換和觀察的細(xì)節(jié)描述 ●保持與penGL ES 2.0和WebGL的一致性 ●用C++代替了C ●增加了向量類和矩陣類以創(chuàng)建與OpenGL著色語(yǔ)言(GLSL)兼容的應(yīng)用程序代碼 ●討論了基于頂點(diǎn)的光照計(jì)算和基于片元的光照計(jì)算 ●增加了多邊形的三角細(xì)分和Delaunay三角剖分 ●介紹了體繪制 ●重新編寫(xiě)了所有示例程序的代碼以適合OpenGL 3.1 ●增加了新合著者,《OpenGL編程指南》的作者Dave Shreiner 本書(shū)是計(jì)算機(jī)圖形學(xué)的入門(mén)教材,重點(diǎn)介紹應(yīng)用程序的編寫(xiě)。本書(shū)于1997年首次出版,第一版在使用標(biāo)準(zhǔn)圖形庫(kù)和自頂向下的方法上多多少少是一場(chǎng)革命。在接下來(lái)的13年中,發(fā)行了5個(gè)版本,大多數(shù)計(jì)算機(jī)圖形學(xué)概論課以及幾乎所有的教科書(shū)都采用了本書(shū)的方法。 在過(guò)去的幾年中,圖形硬件的重大變化已經(jīng)導(dǎo)致了圖形軟件的重大變化。在OpenGL的前15年,新版本的發(fā)布一直保持向后兼容,基礎(chǔ)軟件的升級(jí)使代碼的可重用能力成為重要的優(yōu)點(diǎn),應(yīng)用軟件的開(kāi)發(fā)者和圖形學(xué)課程的教師都在受益。從所公布的OpenGL 3.0重大變化來(lái)看,其中一個(gè)關(guān)鍵的變化是從OpenGL 3.1開(kāi)始,許多先前版本中最常見(jiàn)的函數(shù)將被廢棄。相對(duì)于先前版本的這一根本變化反映出需要使用最新的可編程圖形處理單元(GPU)的功能變化,這些變化也是OpenGL ES 2.0和WebGL的一部分,OpenGL ES 2.0用于開(kāi)發(fā)手機(jī)和圖形輸入板等移動(dòng)終端設(shè)備的應(yīng)用軟件,而WebGL支持大多數(shù)最新的瀏覽器?! 【拖癖緯?shū)以前5個(gè)版本的作者(Edward Angel)以及《OpenGL編程指南》和《OpenGL ES 2.0編程指南》的作者(Dave Shreiner)一樣,我們面臨著如何反映這些變化的難題。我們撰寫(xiě)了多部書(shū)籍并在ACM SIGGRAPH中多年從事OpenGL導(dǎo)論課程的教學(xué),我們發(fā)現(xiàn)在高等教育界或高端游戲領(lǐng)域之外的應(yīng)用程序編程人員,幾乎沒(méi)有人了解這些變化,知道這些變化的人并不認(rèn)為我們可以在初級(jí)層次教會(huì)這些概念。
內(nèi)容概要
《交互式計(jì)算機(jī)圖形學(xué)——基于OpenGL著色器的自頂向下方法(第6版)
》采用自頂向下的方法并輔以面向編程的方式,基于現(xiàn)代可編程GPU的著色器編程,使用C++語(yǔ)言、OpenGL著色語(yǔ)言(GLSL)并結(jié)合OpenGL系統(tǒng)地介紹了現(xiàn)代計(jì)算機(jī)圖形學(xué)的核心概念、原理和方法?!督换ナ接?jì)算機(jī)圖形學(xué)——
基于OpenGL著色器的自頂向下方法(第6版)》是作者(安杰爾)多年來(lái)教學(xué)與科研工作的總結(jié),涵蓋了基于OpenGL著色器的交互式圖形編程、三維可編程繪制流水線、變換與觀察、光照與明暗繪制、曲線曲面建模等基本的計(jì)算機(jī)圖形學(xué)內(nèi)容以及離散技術(shù)、層級(jí)建模、過(guò)程建模、光線跟蹤、并行繪制和體繪制等高級(jí)內(nèi)容,并為讀者進(jìn)一步深入學(xué)習(xí)和研究,在每章后面提供了相關(guān)的建議閱讀資料。
本書(shū)第六版進(jìn)一步反映了計(jì)算機(jī)圖形學(xué)的最新發(fā)展現(xiàn)狀,面向圖形應(yīng)用開(kāi)發(fā)并輔以大量的示例和完整的源代碼,是一本“基礎(chǔ)性與先進(jìn)性、理論性與應(yīng)用性、科學(xué)性與通俗性”相結(jié)合的內(nèi)容全面而又系統(tǒng)的國(guó)外經(jīng)典計(jì)算機(jī)圖形學(xué)教材。
作者簡(jiǎn)介
作者:(美國(guó))愛(ài)德華?安杰爾 (Edward Angel) (美國(guó))戴夫?斯賴納 (Dave Shreiner) 譯者:張榮華 宋雨 劉書(shū)剛 等
書(shū)籍目錄
第1章 圖形系統(tǒng)和模型
1.1 計(jì)算機(jī)圖形學(xué)的應(yīng)用
1.2 圖形系統(tǒng)
1.3 物理圖像與合成圖像
1.4 成像系統(tǒng)
1.5 虛擬照相機(jī)模型
1.6 應(yīng)用程序編程接口
1.7 圖形繪制系統(tǒng)的體系結(jié)構(gòu)
1.8 可編程流水線
1.9 性能特征
小結(jié)和注釋
建議閱讀資料
習(xí)題
第2章 圖形學(xué)編程
2.1 Sierpiki鏤墊
2.2 編寫(xiě)二維圖形應(yīng)用程序
2.3 OpenGL應(yīng)用程序編程接口
2.4 圖元和屬性
2.5 顏色
2.6 觀察
2.7 控制函數(shù)
2.8 Sierpiki鏤墊繪制程序
2.9 多邊形和遞歸
2.10 三維Sierpiki鏤墊
2.11 增加交互性
2.12 菜單
小結(jié)和注釋
建議閱讀資料
習(xí)題
第3章 幾何對(duì)象和變換
3.1 標(biāo)量、點(diǎn)和向量
3.2 三維圖元
3.3 坐標(biāo)系和標(biāo)架
3.4 OpenGL中的標(biāo)架
3.5 矩陣和向量類
3.6 建模一個(gè)彩色立方體
3.7 仿射變換
3.8 平移、旋轉(zhuǎn)和縮放
3.9 變換的齊次坐標(biāo)表示
3.10 變換的級(jí)聯(lián)
3.11 OpenGL變換矩陣
3.12 使立方體旋轉(zhuǎn)起來(lái)
3.13 三維應(yīng)用程序的接口
3.14 四元數(shù)
小結(jié)和注釋
建議閱讀資料
習(xí)題
第4章 觀察
4.1 經(jīng)典觀察和計(jì)算機(jī)觀察
4.2 計(jì)算機(jī)觀察
4.3 定位照相機(jī)
4.4 平行投影
4.5 透視投影
4.6 OpenGL中的透視投影
4.7 透視投影變換矩陣
4.8 隱藏面消除
4.9 顯示網(wǎng)格
4.10 投影和陰影
小結(jié)和注釋
建議閱讀資料
習(xí)題
第5章 光照和明暗繪制
5.1 光線和材質(zhì)
5.2 光源
5.3 Phong反射模型
5.4 計(jì)算向量
5.5 多邊形的明暗繪制
5.6 通過(guò)遞歸細(xì)分逼近球面
5.7 指定光照參數(shù)
5.8 實(shí)現(xiàn)光照模型
5.9 球面模型的明暗繪制
5.10 基于每個(gè)片元的光照計(jì)算
5.11 全局光照
小結(jié)和注釋
建議閱讀資料
習(xí)題
第6章 從頂點(diǎn)到片元
6.1 圖形繪制流水線的基本實(shí)現(xiàn)策略
6.2 圖形繪制系統(tǒng)的四個(gè)主要任務(wù)
6.3 裁剪
6.4 線段的裁剪
6.5 多邊形的裁剪
6.6 其他圖元的裁剪
6.7 三維裁剪
6.8 光柵化
6.9 Bresenham算法
6.10 多邊形光柵化算法
6.11 隱藏面消除
6.12 反走樣
6.13 顯示方面的問(wèn)題
小結(jié)和注釋
建議閱讀資料
習(xí)題
第7章 離散技術(shù)
7.1 緩存
7.2 數(shù)字圖像
7.3 緩存的寫(xiě)操作
7.4 映射方法
7.5 紋理映射
7.6 OpenGL的紋理映射
7.7 紋理生成
7.8 環(huán)境貼圖
7.9 反射貼圖示例程序
7.10 凹凸映射
7.11 合成技術(shù)
7.12 采樣與走樣
小結(jié)和注釋
建議閱讀資料
習(xí)題
第8章 層級(jí)建模方法
8.1 圖符和實(shí)例
8.2 層級(jí)模型
8.3 機(jī)器人手臂
8.4 樹(shù)與樹(shù)的遍歷
8.5 使用樹(shù)形數(shù)據(jù)結(jié)構(gòu)
8.6 動(dòng)畫(huà)
8.7 圖形對(duì)象
8.8 場(chǎng)景圖
8.9 開(kāi)放場(chǎng)景圖
8.10 圖形和因特網(wǎng)
8.11 其他樹(shù)形結(jié)構(gòu)
小結(jié)和注釋
建議閱讀資料
習(xí)題
第9章 過(guò)程建模方法
9.1 基于算法的建模
9.2 基于物理的建模和粒子系統(tǒng)
9.3 牛頓粒子
9.4 求解粒子系統(tǒng)方程
9.5 約束條件
9.6 一個(gè)簡(jiǎn)單的粒子系統(tǒng)
9.7 基于語(yǔ)言的建模
9.8 遞歸方法和分形
9.9 過(guò)程噪聲
小結(jié)和注釋
建議閱讀資料
習(xí)題
第10章 曲線和曲面
10.1 曲線和曲面的表示形式
10.2 設(shè)計(jì)準(zhǔn)則
10.3 三次參數(shù)多項(xiàng)式曲線
10.4 插值
10.5 Hermite曲線和曲面
10.6 Bézier曲線和曲面
10.7 三次B樣條
10.8 普通B樣條
10.9 曲線和曲面的繪制
10.10 Utah茶壺模型
10.11 代數(shù)曲面
10.12 曲線和曲面的細(xì)分
10.13 從數(shù)據(jù)生成網(wǎng)格
小結(jié)和注釋
建議閱讀資料
習(xí)題
第11章 高級(jí)繪制
11.1 超越流水線繪制結(jié)構(gòu)
11.2 光線跟蹤
11.3 構(gòu)建一個(gè)簡(jiǎn)單的光線跟蹤器
11.4 繪制方程
11.5 輻射度方法
11.6 RenderMan
11.7 并行繪制
11.8 體繪制
11.9 等值面與步進(jìn)立方體
11.10 網(wǎng)格簡(jiǎn)化
11.11 直接體繪制
11.12 基于圖像的繪制
小結(jié)和注釋
建議閱讀資料
習(xí)題
附錄A 示例程序
A.1 著色器初始化函數(shù)
A.2 Sierpiki鏤墊程序
A.3 遞歸實(shí)現(xiàn)Sierpiki鏤墊程序
A.4 在著色器中實(shí)現(xiàn)立方體的旋轉(zhuǎn)
A.5 透視投影
A.6 旋轉(zhuǎn)著色的立方體
A.7 對(duì)球面模型執(zhí)行基于每個(gè)片元的光照計(jì)算
A.8 帶紋理的立方體旋轉(zhuǎn)程序
A.9 基于樹(shù)形結(jié)構(gòu)的機(jī)器人繪制程序
A.10 茶壺繪制程序
附錄B 空間
B.1 標(biāo)量
B.2 向量空間
B.3 仿射空間
B.4 Euclid空間
B.5 投影
B.6 GRAM?SCHMIDT正交化
建議閱讀資料
習(xí)題
附錄C 矩陣
C.1 定義
C.2 矩陣的運(yùn)算
C.3 行矩陣和列矩陣
C.4 秩
C.5 表示的變換
C.6 叉積
C.7 特征值和特征向量
C.8 向量和矩陣類
建議閱讀資料
習(xí)題
附錄D OpenGL函數(shù)一覽
D.1 初始化和窗口函數(shù)
D.2 頂點(diǎn)緩沖區(qū)對(duì)象
D.3 交互函數(shù)
D.4 屬性設(shè)置和功能開(kāi)啟函數(shù)
D.5 紋理和圖像函數(shù)
D.6 狀態(tài)和緩存操作函數(shù)
D.7 查詢函數(shù)
D.8 GLSL函數(shù)
參考文獻(xiàn)
章節(jié)摘錄
版權(quán)頁(yè):插圖:1.2.7 輸入模式計(jì)算機(jī)圖形學(xué)除了具有各種不同類型的輸入設(shè)備這個(gè)特征外,各種設(shè)備給應(yīng)用程序提供輸入的方式比只使用鍵盤(pán)的簡(jiǎn)單c和C++程序要多得多。物理和邏輯輸入設(shè)備向應(yīng)用程序提供輸入的方式可以從兩個(gè)方面來(lái)描述:測(cè)量過(guò)程和設(shè)備觸發(fā)器。一個(gè)設(shè)備的測(cè)量(measure)是這個(gè)設(shè)備返回給用戶程序的數(shù)據(jù)。設(shè)備的觸發(fā)器(trigger)是用戶向這個(gè)設(shè)備提供的一個(gè)物理輸入,通過(guò)它用戶能夠給計(jì)算機(jī)傳送觸發(fā)信號(hào)。例如,鍵盤(pán)的測(cè)量數(shù)據(jù)應(yīng)該包含一個(gè)字符串,觸發(fā)器可以是Re-turn或者Enter鍵。對(duì)于定位設(shè)備,測(cè)量數(shù)據(jù)包含定位設(shè)備的位置,相應(yīng)的觸發(fā)器可以是定位設(shè)備上的一個(gè)按鈕。我們可以通過(guò)三種不同的模式獲得一個(gè)設(shè)備的測(cè)量數(shù)據(jù),每種模式都是由測(cè)量過(guò)程和觸發(fā)器之間的關(guān)系來(lái)定義的。測(cè)量過(guò)程一旦開(kāi)始,輸入設(shè)備就會(huì)獲取測(cè)量數(shù)據(jù)并把它存儲(chǔ)在一個(gè)緩存、中,即使應(yīng)用程序可能還不能訪問(wèn)該緩存中的內(nèi)容。例如,不管應(yīng)用程序是否需要鼠標(biāo)輸入,窗口系統(tǒng)總是連續(xù)不斷地跟蹤鼠標(biāo)的位置。在請(qǐng)求模式(requestmode)下,除非設(shè)備被觸發(fā),否則設(shè)備的測(cè)量數(shù)據(jù)不會(huì)返回給程序。請(qǐng)求模式在非圖形應(yīng)用程序中是標(biāo)準(zhǔn)的輸入模式。這種模式是非圖形應(yīng)用程序使用的標(biāo)準(zhǔn)輸入模式。例如,如果一個(gè)典型的c程序需要字符輸人,使用像scanf這樣的函數(shù)。當(dāng)程序需要輸人時(shí),它在執(zhí)行到scanf語(yǔ)句時(shí)暫停并且等待,直到在終端上鍵人字符??梢酝ㄟ^(guò)退格來(lái)更正所鍵人的字符,并且可以花費(fèi)任意長(zhǎng)的時(shí)間來(lái)鍵人字符。數(shù)據(jù)存儲(chǔ)在一個(gè)鍵盤(pán)緩存中,只有當(dāng)我們按下一個(gè)特定的鍵,比如Enter鍵(觸發(fā)器),這個(gè)緩存中的內(nèi)容才會(huì)返回給我們的程序。對(duì)于像定位設(shè)備這樣的邏輯設(shè)備,可以把指向設(shè)備移到所需的位置上,然后用它的按鈕觸發(fā)它,這個(gè)觸發(fā)會(huì)讓?xiě)?yīng)用程序獲得定位設(shè)備的位置。在采樣模式(samplemode)下,輸人是即時(shí)的。只要在用戶程序中遇到了函數(shù)調(diào)用,就把測(cè)量數(shù)據(jù)返回給程序,因此不需要觸發(fā)器。在采樣模式中,用戶必須在函數(shù)調(diào)用之前就把定位設(shè)備放置好或者用鍵盤(pán)把數(shù)據(jù)輸入完畢,因?yàn)榫彺嬷械臏y(cè)量數(shù)據(jù)會(huì)立即返回給應(yīng)用程序。在支持請(qǐng)求模式和采樣模式的API中,這兩種模式的輸人有一個(gè)共同特征就是用戶必須識(shí)別出提供輸入的那個(gè)設(shè)備。因此,除了指定的這個(gè)輸人設(shè)備以外,我們忽略其他任何輸入設(shè)備提供的任何其他信息。請(qǐng)求模式和采樣模式對(duì)于通過(guò)程序來(lái)引導(dǎo)用戶的情形都是有用的,但對(duì)于用戶控制程序流程的情形就不是很有用了。例如,飛行模擬器或者計(jì)算機(jī)游戲可能有多個(gè)輸入設(shè)備,比如操縱桿、刻度盤(pán)、按鈕和開(kāi)關(guān),等等,我們?cè)谌魏螘r(shí)刻都可以使用其中的大多數(shù)設(shè)備。要編寫(xiě)控制飛行模擬器的程序,只利用采樣模式和請(qǐng)求模式輸入幾乎是不可能的,因?yàn)槲覀儾恢涝诜抡孢^(guò)程中的某個(gè)時(shí)刻飛行員會(huì)使用什么設(shè)備。更一般地,在現(xiàn)代計(jì)算環(huán)境中可能出現(xiàn)的人機(jī)交互有多種多樣,要處理這些交互方式,光有采樣輸入模式和請(qǐng)求輸入模式是不夠的。
編輯推薦
《交互式計(jì)算機(jī)圖形學(xué):基于OpenGL著色器的自頂向下方法(第6版)》第六版進(jìn)一步反映了計(jì)算機(jī)圖形學(xué)的最新發(fā)展現(xiàn)狀,面向圖形應(yīng)用開(kāi)發(fā)并輔以大量的示例和完整的源代碼,是一本“基礎(chǔ)性與先進(jìn)性、理論性與應(yīng)用性、科學(xué)性與通俗性”相結(jié)合的內(nèi)容全面而又系統(tǒng)的國(guó)外經(jīng)典計(jì)算機(jī)圖形學(xué)教材?!督换ナ接?jì)算機(jī)圖形學(xué):基于OpenGL著色器的自頂向下方法(第6版)》既可作為有一定C++編程基礎(chǔ)的計(jì)算機(jī)及相關(guān)專業(yè)高年級(jí)本科生或研究生的計(jì)算機(jī)圖形學(xué)教材,也適合于作為相關(guān)技術(shù)人員的參考書(shū)。
圖書(shū)封面
圖書(shū)標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
交互式計(jì)算機(jī)圖形學(xué) PDF格式下載
250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版