出版時間:2010-3 出版社:機(jī)械工業(yè)出版社 作者:[美] Dave Shreiner 頁數(shù):519 譯者:李軍,徐波 [等]
Tag標(biāo)簽:無
前言
OpenGL是圖形硬件的一種軟件接口。從本質(zhì)上說,它是一個3D圖形和模型庫,具有高度 的可移植性,并且具有非常快的渲染速度。如今,OpenGL廣泛應(yīng)用于游戲、醫(yī)學(xué)影像、地理信息、氣象模擬等領(lǐng)域,是高性能圖形和交互性場景處理的行業(yè)標(biāo)準(zhǔn)。 OpenGL的前身是SGI公司開發(fā)的IRIS GL圖形函數(shù)庫。SGI是一家久負(fù)盛名的公司,在計算機(jī)圖形和動畫領(lǐng)域處于業(yè)界領(lǐng)先地位。IRIS GL最初是一個2D圖形函數(shù)庫,后來逐漸演化為SGI的高端IRIS圖形工作站所使用的3D編程API。后來,由于圖形技術(shù)的發(fā)展,SGI對IRIS GL的移植性進(jìn)行了改進(jìn)和提高,使它逐步發(fā)展成如今的OpenGL。在此期間,OpenGL得到了各大廠商的支持,從而成為一種廣泛流行的三維圖形標(biāo)準(zhǔn)。 OpenGL并不是一種編程語言,而更像是一個C運行時函數(shù)庫。它提供了一些預(yù)包裝的功能,幫助開發(fā)人員編寫功能強(qiáng)大的三維圖形應(yīng)用程序。OpenGL可以在多種操作系統(tǒng)平臺上運行,例如各種版本的Windows、UNIX/Linux、Mac OS和OS/2等。 OpenGL是一個開放的標(biāo)準(zhǔn),雖然它由SGI首創(chuàng),但是它的標(biāo)準(zhǔn)并不控制在SGI的手中,而是由OpenGL體系結(jié)構(gòu)審核委員會(ARB)掌管。ARB由SGC、DEC、IBM、Intel和Microsoft等著名公司于1992年創(chuàng)立,后來又陸續(xù)添加了nVidia、ATI等圖形芯片領(lǐng)域的巨擎。ARB每隔4年舉行一次會議,對OpenGL規(guī)范進(jìn)行維護(hù)和改善,并出臺計劃對OpenGL標(biāo)準(zhǔn)進(jìn)行升級,使OpenGL一直保持與時代同步。 2006年,SGI公司把OpenGL標(biāo)準(zhǔn)的控制從ARB移交給一個新的工作組—Khronos小組(www.khronos.org)。Khronos是一個由成員提供資金的行業(yè)協(xié)會,專注于開放媒體標(biāo)準(zhǔn)的創(chuàng)建和維護(hù)。目前,Khronos負(fù)責(zé)OpenGL的發(fā)展和升級。 《OpenGL編程指南》就是由Khronos小組編寫的官方指南,是OpenGL領(lǐng)域的權(quán)威著作,有“OpenGL紅寶書”之稱,曾經(jīng)幫助許多程序員走上了OpenGL專家之路。第7版在第6版的基礎(chǔ)上又有所改進(jìn),介紹了OpenGL 3.0和OpenGL 3.1的新的和更新的內(nèi)容。 本書歷經(jīng)多次版本升級,其中文版的翻譯也是一項延續(xù)性的工作,凝結(jié)了許多人的辛勤工作。徐波等曾承擔(dān)《OpenGL編程指南》第5版和第6版的主要翻譯工作。李軍在第6版的中文版的基礎(chǔ)上,負(fù)責(zé)了第7版新增內(nèi)容的翻譯和更新工作。參與第7版翻譯工作的還有劉金華、劉偉超、羅庚臣、劉二然、鄭芳菲、莊逸川、王世高、郭瑩、陳、鄧勇、何進(jìn)偉、賈曉斌、汪蔚和齊國濤。機(jī)械工業(yè)出版社華章分社的編輯為本書的出版付出了辛勤勞動,感謝他們!
內(nèi)容概要
本書對OpenGL以及OpenGL實用函數(shù)庫進(jìn)行了全面而又權(quán)威的介紹,素有“OpenGL紅寶書”之譽(yù)。本書的上一個版本覆蓋了到OpenGL 2.1版的內(nèi)容。本版涵蓋了OpenGL 3.0和3.1的最新特性。本書以清晰的語言描述了OpenGL的功能以及許多基本的計算機(jī)圖形技巧,例如創(chuàng)建和渲染3D模型、從不同的透視角度觀察物體、使用著色、光照和紋理貼圖使場景更加逼真等。另外,本書還深入探討了許多高級技巧,包括紋理貼圖、抗鋸齒、霧和大氣效果、NURBS、圖像處理子集等。此外,本書還對一些重要的主題進(jìn)行了討論,例如提高性能、OpenGL擴(kuò)展以及跨平臺技術(shù)等。本書內(nèi)容詳實,講解生動,圖文并茂,是OpenGL程序員的絕佳編程指南?! penGL是一種功能強(qiáng)大的軟件接口,既可以用于生成高質(zhì)量的計算機(jī)圖像,也可以用于編寫使用2D和3D物體、位圖和彩色圖像的交互式應(yīng)用程序?! ”緯鴮penGL以及OpenGL實用函數(shù)庫進(jìn)行了全面而又權(quán)威的介紹,素有“OpenGL紅寶書”之譽(yù)。本書的上一個版本覆蓋了截止OpenGL 2.1版的內(nèi)容。這一版涵蓋了OpenGL 3.0和3.1的最新特性。本書以清晰的語言描述了OpenGL的功能以及許多基本的計算機(jī)圖形技巧,例如創(chuàng)建和渲染3D模型、從不同的透視角度觀察物體、使用著色、光照和紋理貼圖使場景更加逼真等。本書還深入探討了許多高級技巧,包括紋理貼圖、抗鋸齒、霧和大氣效果、NURBS、圖像處理等。另外,本書還對一些重要的主題進(jìn)行了討論,例如提高性能、OpenGL擴(kuò)展以及跨平臺技術(shù)等。 本書進(jìn)行了一些更新,涵蓋了OpenGL 3.0和3.1的最新特性,包括: 使用幀緩沖區(qū)對象進(jìn)行離屏渲染和紋理更新?! 「鞣N新的緩沖區(qū)對象類型的示例,包括uniform緩沖區(qū)對象、變換反饋緩沖區(qū)和頂點數(shù)組對象?! ∈褂眉y理數(shù)組提高使用眾多紋理的性能?! ∈褂脠D元重啟和條件渲染來高效地進(jìn)行渲染?! 〗榻BOpenGL的廢棄機(jī)制,以及如何針對OpenGL未來版本驗證程序。 本書繼續(xù)對OpenGL著色語言(GLSL)展開討論,并解釋了使用這種語言創(chuàng)建復(fù)雜圖形效果并提升OpenGL計算威力的機(jī)制。OpenGL技術(shù)資料庫(OpenGL Technical Library)提供了大量的OpenGL教程和參考書籍,它可以幫助程序員深入理解OpenGL,完全釋放OpenGL的潛力。這個資料庫最初由SGI開發(fā),目前由Khronos OpenGL體系結(jié)構(gòu)審核委員會(ARB)工作組維護(hù),這是負(fù)責(zé)指導(dǎo)OpenGL以及相關(guān)技術(shù)發(fā)展和演變的行業(yè)協(xié)會。
作者簡介
Dave Shreiner 是ARM公司的圖形技術(shù)總監(jiān),長期擔(dān)任SGI核心OpenGL組的成員。他首次開設(shè)了OpenGL的商業(yè)培訓(xùn)課程,擁有二十多年的計算機(jī)圖形應(yīng)用開發(fā)經(jīng)驗。Dave定期參加SIGGRAPH和其他全球性的圖形工作會議。他是《OpenGL ES 2.0 Programming Guide》(Addison-Wesley,2009)和
書籍目錄
譯者序 前言 第1章 OpenGL簡介 第2章 狀態(tài)管理和繪制幾何物體 第3章 視圖 第4章 顏色 第5章 光照 第6章 混合、抗鋸齒、霧和多邊形偏移 第7章 顯示列表 第8章 繪制像素、位圖、字體和圖像 第9章 紋理貼圖 第10章 幀緩沖區(qū) 第11章 分格化和二次方程表面 第12章 求值器和NURBS 第13章 選擇和反饋 第14章 OpenGL高級技巧 第15章 OpenGL著色語言 附錄A GLUT(OpenGL實用工具庫)基礎(chǔ)知識 附錄B 狀態(tài)變量 附錄C 齊次坐標(biāo)和變換矩陣 附錄D OpenGL和窗口系統(tǒng) 術(shù)語表
章節(jié)摘錄
插圖:如果讀者剛開始涉足三維圖形編程,可能會對接下來的內(nèi)容感到吃力?,F(xiàn)在可以跳過這一部分內(nèi)容,但是在讀完本書的每一章時,都應(yīng)該重溫一下圖1-2。圖1-2顯示了Henry Ford在福特汽車公司所采用的裝配線方法,它也是OpenGL處理數(shù)據(jù)的方法。幾何數(shù)據(jù)(頂點、直線和多邊形)所經(jīng)歷的處理階段包括求值器和基于頂點的操作,而像素數(shù)據(jù)(像素、圖像和位圖)的處理過程則有所不同。在最終的像素數(shù)據(jù)寫入到幀緩沖區(qū)之前,這兩種類型的數(shù)據(jù)都將經(jīng)過相同的最終步驟(光柵化和基于片斷的操作)。下面,我們更為詳細(xì)地介紹OpenGL渲染管線的一些關(guān)鍵階段。1.5.1顯示列表任何數(shù)據(jù),不論它描述的是幾何圖元還是像素,都可以保存在顯示列表(display list)中,供當(dāng)前或以后使用。當(dāng)然,也可以不把數(shù)據(jù)保存在顯示列表中,而是立即對數(shù)據(jù)進(jìn)行處理,這種模式也叫做立即模式(immediate mode)。當(dāng)一個顯示列表執(zhí)行時,保存的數(shù)據(jù)就從顯示列表中取出,就像在立即模式下直接由應(yīng)用程序發(fā)送的那樣。關(guān)于顯示列表的詳細(xì)內(nèi)容,請參見第7章。1.5.2求值器所有的幾何圖元最終都要通過頂點來描述。參數(shù)化曲線和表面最初可能是通過控制點以及叫做基函數(shù)(basic function)的多項式函數(shù)進(jìn)行描述的。求值器提供了一種方法,根據(jù)控制點計算表示表面的頂點。這種方法是一種多項式映射,它可以根據(jù)控制點產(chǎn)生表面法線、紋理坐標(biāo)、顏色以及空間坐標(biāo)值。關(guān)于求值器的詳細(xì)內(nèi)容,請參閱第12章。1.5.3基于頂點的操作對于頂點數(shù)據(jù),接下來的一個步驟是“基于頂點的操作”,就是把頂點變換為圖元。有些類型的頂點數(shù)據(jù)(例如空間坐標(biāo))是通過一個4 x 4的浮點矩陣進(jìn)行變換的。空間坐標(biāo)從3D世界的一個位置投影到屏幕上的一個位置。有關(guān)變換矩陣的詳細(xì)內(nèi)容,請參閱第3章。如果啟用了高級特性,這個階段將更為忙碌。如果使用了紋理,這個階段還將生成并變換紋理坐標(biāo)。如果啟用了光照,就需要綜合變換后的頂點、表面法線、光源位置、材料屬性以及其他光照信息進(jìn)行光照計算,產(chǎn)生最終的顏色值。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載