出版時(shí)間:2012-7 出版社:電子工業(yè)出版社 作者:(美) Edward Angel (美) Dave Shre 頁(yè)數(shù):760
Tag標(biāo)簽:無(wú)
前言
第六版新增內(nèi)容 ●全書(shū)使用基于著色器的新版本OpenGL ●不再使用在OpenGL 3.1中所棄用的OpenGL函數(shù) ●在OpenGL應(yīng)用程序代碼和著色器中均增加了實(shí)現(xiàn)變換和觀察的細(xì)節(jié)描述 ●保持與OpenGL 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ì)這些概念。這曾是一個(gè)我們不能抗拒的挑戰(zhàn),在SIGGRAPH的課程教學(xué)中,我們從半天的短期課程開(kāi)始,這使我們確信可以教會(huì)以前沒(méi)有圖形編程經(jīng)驗(yàn)的人如何編寫(xiě)一個(gè)基于著色器的實(shí)用程序,只不過(guò)比早期版本的OpenGL多一點(diǎn)點(diǎn)工作而已?! ≡诰帉?xiě)這一版的時(shí)候,我們找到了一些其他理由,這使我們確信這種教學(xué)方法不僅是可能的,而且對(duì)學(xué)生學(xué)習(xí)計(jì)算機(jī)圖形學(xué)甚至更好。就在不久前,我們宣講了OpenGL帶來(lái)的優(yōu)勢(shì),它適用于Windows、Linux 以及Mac OS X,這樣就可以講授一門(mén)讓學(xué)生在喜愛(ài)的操作系統(tǒng)環(huán)境中編程的課程。學(xué)生們現(xiàn)在可以用OpenGL ES和WebGL開(kāi)發(fā)手機(jī)和Web瀏覽器上的應(yīng)用軟件,這將激勵(lì)學(xué)習(xí)計(jì)算機(jī)圖形學(xué)的學(xué)生和教師,并開(kāi)辟許多新的教育和商業(yè)機(jī)會(huì)?! ∥覀冋J(rèn)為對(duì)于學(xué)習(xí)經(jīng)驗(yàn)來(lái)說(shuō)尤為重要的是,讀者應(yīng)該知道在這些OpenGL的新版本中棄用了先前版本中的大部分默認(rèn)函數(shù)以及固定功能的繪制流水線。乍看起來(lái),這種棄用機(jī)制似乎使第一節(jié)課程的教學(xué)更加困難,也可能稍微困難些,但是我們認(rèn)為會(huì)更好。因?yàn)榇蠖鄶?shù)學(xué)生過(guò)于依賴這些函數(shù),而并不太在意課本或教師要講授給他們什么。為什么當(dāng)學(xué)生使用繪制透視投影圖或執(zhí)行光照計(jì)算的OpenGL內(nèi)置函數(shù)就感到畏懼呢?現(xiàn)在,這些函數(shù)沒(méi)有了,學(xué)生們不得不自己編寫(xiě)著色器來(lái)完成這些任務(wù),這樣他們就必須首先理解計(jì)算機(jī)圖形學(xué)的基本原理和相關(guān)的數(shù)學(xué)基礎(chǔ)?! ∽皂斚蛳碌姆椒ā D形學(xué)的新進(jìn)展以及本書(shū)前5個(gè)版本的成功一直鞭策著我們堅(jiān)持采用自頂向下的、面向程序設(shè)計(jì)的方法來(lái)介紹計(jì)算機(jī)圖形學(xué)。雖然許多計(jì)算機(jī)科學(xué)與工程系現(xiàn)在開(kāi)設(shè)了多門(mén)計(jì)算機(jī)圖形學(xué)課程,但是大多數(shù)學(xué)生只選修一門(mén)。在學(xué)生們學(xué)習(xí)了程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)、算法、軟件工程和基礎(chǔ)數(shù)學(xué)以后給他們安排一門(mén)圖形學(xué)課程,應(yīng)允許教師以內(nèi)容充實(shí)并且有趣的方式按上述已學(xué)課程來(lái)組織計(jì)算機(jī)圖形學(xué)課程,我們希望這些學(xué)生學(xué)習(xí)這門(mén)課程時(shí)盡可能早地編寫(xiě)出三維應(yīng)用程序。底層的算法,例如繪制線段或者填充多邊形,可以在學(xué)生們編寫(xiě)了圖形程序之后再考慮?! ∮?jì)算機(jī)教育的先驅(qū)John Kemeny曾經(jīng)把自頂向下的編程方法與我們熟悉的汽車來(lái)類比:你沒(méi)有必要知道汽車罩下面是什么,但是如果知道內(nèi)部的工作原理,你就會(huì)去駕駛汽車而不是坐在汽車后座上。同樣的類比適用于講授計(jì)算機(jī)圖形學(xué)的方法。第一種方法(算法的方法)是把汽車工作原理的方方面面都交代清楚:發(fā)動(dòng)機(jī)、傳動(dòng)裝置、燃燒過(guò)程等;第二種方法(概覽的方法)是雇一名司機(jī),自己坐在后面觀光;第三種方法(本書(shū)采用的編程方法)是教會(huì)你如何駕駛并把車開(kāi)到你想要去的地方,正如一句過(guò)時(shí)的租賃廣告詞說(shuō)的那樣:“讓我們把你放在駕駛員的位子上去”。 使用OpenGL和C++語(yǔ)言編程 當(dāng)本書(shū)的第一作者Edward Angel在25年前開(kāi)始講授計(jì)算機(jī)圖形學(xué)的時(shí)候,當(dāng)時(shí)以面向編程的方式講授這門(mén)課程并編寫(xiě)相應(yīng)教材的最大障礙是缺乏一個(gè)廣泛接受的圖形庫(kù)或者應(yīng)用程序編程接口(API)。遇到的困難包括:高成本、可用性受限、缺乏通用性以及高復(fù)雜性。OpenGL的開(kāi)發(fā)解決了我們中很多人在其他API(例如GKS和PHIGS)中遇到的以及在使用自己編寫(xiě)的軟件作為替代時(shí)所面臨的大多數(shù)困難,今天所有的平臺(tái)都支持OpenGL,它已和Microsoft Windows以及Mac OS X操作系統(tǒng)集成在一起。實(shí)際上所有的圖形卡都有驅(qū)動(dòng)程序,在大多數(shù)Linux發(fā)行版中也都包含一個(gè)稱為Mesa的OpenGL API。 一門(mén)圖形學(xué)的課程遠(yuǎn)遠(yuǎn)不能僅講授如何使用一種特定的API,一種好的API應(yīng)使得講授圖形學(xué)中的一些關(guān)鍵內(nèi)容變得更容易,這些內(nèi)容包括三維圖形學(xué)、光照和明暗處理、客戶/服務(wù)器圖形系統(tǒng)、建模以及實(shí)現(xiàn)算法。我們相信,OpenGL的擴(kuò)展功能以及良好定義的結(jié)構(gòu)可以為講授圖形學(xué)理論和實(shí)踐這兩方面提供了更好的基礎(chǔ),而且OpenGL同樣也可以為講授包括紋理映射、圖像融合以及可編程著色器在內(nèi)的一些高級(jí)概念提供更好的基礎(chǔ)?! 〈蠹s15年以前Edward Angel就開(kāi)始在授課時(shí)使用OpenGL,結(jié)果令他欣喜若狂。在那個(gè)學(xué)期的期中之前,所有的學(xué)生就都能編寫(xiě)出中等復(fù)雜程度的三維圖形程序,而編寫(xiě)這樣的程序需要理解三維顯示和事件驅(qū)動(dòng)輸入。在這之前幾年的計(jì)算機(jī)圖形學(xué)教學(xué)中,Edward Angel從未收到過(guò)如此好的教學(xué)效果,那次課程孕育出了本書(shū)的第一版?! ”緯?shū)是關(guān)于計(jì)算機(jī)圖形學(xué)的教科書(shū),并不是OpenGL使用手冊(cè)。因此,沒(méi)有把OpenGL API的方方面面都一一介紹,而是僅僅解釋了對(duì)于掌握本書(shū)內(nèi)容來(lái)說(shuō)必要的那些部分。因而,本書(shū)在介紹OpenGL時(shí)的定位是允許其他API用戶毫無(wú)困難地閱讀本書(shū)的內(nèi)容?! ∨c前幾個(gè)版本相比,這一版使用C++代替C語(yǔ)言作為占主導(dǎo)地位的編程語(yǔ)言,主要原因是必須用OpenGL著色語(yǔ)言(GLSL)來(lái)編寫(xiě)著色器,而著色器是控制GPU的程序。GLSL是一個(gè)類似于C的語(yǔ)言,包括向量和矩陣的原子數(shù)據(jù)類型,以及操作它們的基本運(yùn)算符的重載。OpenGL的所有現(xiàn)代版本要求每一個(gè)應(yīng)用程序提供兩個(gè)著色器,因此學(xué)生需要使用這些特征,它們可以支持C++。只通過(guò)使用C++的這部分(簡(jiǎn)單類、構(gòu)造函數(shù)、重載操作符)內(nèi)容,我們就可以實(shí)現(xiàn)基本圖形概念,如變換和光照,無(wú)論是OpenGL應(yīng)用程序還是著色器幾乎都是完全相同的代碼。此外,使用本書(shū)網(wǎng)站提供的簡(jiǎn)單矩陣類和向量類可以編寫(xiě)出更加清晰、簡(jiǎn)潔的代碼。學(xué)習(xí)Java或C語(yǔ)言的學(xué)生理解本書(shū)中的代碼應(yīng)該沒(méi)什么困難?! ∵m用的讀者 本書(shū)適用于計(jì)算機(jī)科學(xué)和工程專業(yè)的高年級(jí)本科生和一年級(jí)研究生,以及具有良好程序設(shè)計(jì)能力的其他專業(yè)學(xué)生。本書(shū)對(duì)于許多專業(yè)人員也是有價(jià)值的。我們已經(jīng)成功地為專業(yè)人員講授了100多次短期課程,從這些非傳統(tǒng)意義的學(xué)生身上獲得的經(jīng)驗(yàn)極大地影響了本書(shū)的內(nèi)容?! ≡陂喿x本書(shū)之前,讀者應(yīng)該熟練掌握C++、Java或者C語(yǔ)言,理解鏈表和樹(shù)等基本數(shù)據(jù)結(jié)構(gòu)并具有線性代數(shù)和三角學(xué)的初步知識(shí)。我們發(fā)現(xiàn)計(jì)算機(jī)科學(xué)專業(yè)學(xué)生的數(shù)學(xué)背景相差很大,不管是本科生還是研究生都是如此。因此,本書(shū)包含了很多計(jì)算機(jī)基礎(chǔ)圖形學(xué)所需的線性代數(shù)和幾何學(xué)知識(shí)。 本書(shū)的內(nèi)容組織 本書(shū)內(nèi)容組織如下:第l章概覽整個(gè)圖形學(xué)領(lǐng)域并介紹了基于光學(xué)設(shè)備的圖像生成,這樣從一開(kāi)始就引入了三維圖形學(xué)的概念。第2章介紹OpenGL編程,雖然編寫(xiě)的第一個(gè)示例程序是二維的(每一章都有一個(gè)或者多個(gè)完整的編程示例),但是這個(gè)程序是嵌入在三維環(huán)境下編寫(xiě)的,并且可以擴(kuò)展到三維。這一章還介紹交互式圖形學(xué)以及基于事件驅(qū)動(dòng)的圖形程序開(kāi)發(fā)。第3章和第4章討論三維圖形學(xué)概念,第3章討論如何定義和處理三維對(duì)象,而第4章討論如何觀察它們。第5章介紹光線和材質(zhì)之間的相互作用以及明暗繪制。這5章應(yīng)該按順序講授,在一個(gè)總共15周的學(xué)期里,大約10周可以講完這些內(nèi)容?! 『竺娴?章可以按照任何順序閱讀。所有這6章都或多或少是開(kāi)放式的,讀者可以概覽,也可以深究其中的一些課題。第6章討論光柵化,對(duì)三維圖形繪制流水線中的每個(gè)基本步驟都給出了一種或兩種主要算法,這些基本步驟包括裁剪、直線段生成和多邊形填充。第7章介紹目前圖形硬件和OpenGL所支持的許多新的離散技術(shù),所有這些技術(shù)都需要與各種緩存打交道,這一章以簡(jiǎn)單討論計(jì)算機(jī)圖形學(xué)中的走樣問(wèn)題而結(jié)束。第6章和第7章討論了用于所有交互式圖形系統(tǒng)的標(biāo)準(zhǔn)觀察流水線?! 〉?章包含層級(jí)建模主題中的若干松散內(nèi)容,涉及從層級(jí)模型(封裝了各部分之間聯(lián)系的模型)的構(gòu)造到互聯(lián)網(wǎng)圖形繪制的高級(jí)方法。這一章包括對(duì)場(chǎng)景圖和開(kāi)放場(chǎng)景圖(OSG)的介紹。第9章介紹若干過(guò)程方法,包括粒子系統(tǒng)、分形和過(guò)程噪聲。第10章討論曲線和曲面,包括細(xì)分曲面。第11章介紹其他一些高繪制方法,進(jìn)一步討論了光線
內(nèi)容概要
《國(guó)外計(jì)算機(jī)科學(xué)教材系列:交互式計(jì)算機(jī)圖形學(xué)·基于OpenGL著色器的自頂向下方法(第6版)(英文版)》采用自頂向下的方法并輔以面向編程的方式,基于現(xiàn)代可編程GPU的著色器編程,使用C++語(yǔ)言、OpenGL著色語(yǔ)言(GLSL)并結(jié)合OpenGL系統(tǒng)地介紹了現(xiàn)代計(jì)算機(jī)圖形學(xué)的核心概念、原理和方法。本書(shū)是作者多年來(lái)教學(xué)與科研工作的總結(jié),涵蓋了基于OpenGL著色器的交互式圖形編程、三維可編程繪制流水線、變換與觀察、光照與明暗繪制、曲線曲面建模等基本的計(jì)算機(jī)圖形學(xué)內(nèi)容以及離散技術(shù)、層級(jí)建模、過(guò)程建模、光線跟蹤、并行繪制和體繪制等高級(jí)內(nèi)容,并為讀者進(jìn)一步深入學(xué)習(xí)和研究,在每章后面提供了相關(guān)的建議閱讀資料?! 秶?guó)外計(jì)算機(jī)科學(xué)教材系列:交互式計(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é)教材。
書(shū)籍目錄
CHAPTER GRAPHICS SYSTEiVtS AND MODELS 31 1.1 Applications of Computer Graphics 32 1.1.1 Display of Information 32 1.1.2 Design 33 1.1.3 S3mulation and Animation 33 1.1.4 User Interfaces 34 1.2 A Graphics System 35 1.2.1 Pixels and the Frame Buffer 35 1.2.2 The CPU and the GPU 36 1.2.3 Output Devices 37 1.2.4 Input Devices 39 1.2.5 Physical Input Devices 40 1.2.6 Logical Devices 42 1.2.7 Input Modes 43 1.3 Images: Physical and Synthetic 45 1.3.1 Objects and Viewers 45 1.3.2 Light and Images 46 1.3.3 Imaging Models 48 1.4 Imaging Systems 50 1.4.1 The Pinhole Camera 50 1.4.2 The Human Visual System 52 1.5 The Synthetic-Camera Model 53 1.6 The Programmer's Interface 55 1.6.1 The Pen-Plotter Model 57 1.6.2 Three-Dimensional APIs 58 1.6.3 A Sequence Of Images 61 1.6.4 The Modeling-Rendering Paradigm 62 1.7 Graphics Architectures 64 1.7.1 Display Processors 64 1.7.2 Pipeline Architectures 64 1.7.3 The Graphics Pipeline 65 1.7.4 Vertex Processing 66 1.7.5 Clipping and Primitive Assembly 66 1.7.6 Rasterization 67 1.7.7 Fragment Processing 67 1.8 Programmable Pipeline 67s 1,9 Performance Characteristics 68 Summary and Notes 69 Suggested Readings 70 Exercises 71 CHAPTER 2 GRAPHICS PROGRAMMING 2.1 The Sierpinski Gasket 73 2.2 Programming Two-Dimensional Applications 76 2.3 The OpenGL Application Programming Interface 80 2.3.1 Graphics Functions 81 2.3.2 The Graphics Pipeline and State Machines 83 2.3.3 The OpenGL Interface 83 2.3.4 Coordinate Systems 85 2.4 Primitives and Attributes 86 2.4.1 Polygon Basics 88 2.4.2 Polygons in OpenGL 89 2.4.3 Approximating a Sphere 90 2.4.4 Triangulation 92 2.4.5 Text 94 2.4.6 Curved Objects 95 2.4.7 Attributes 95 2.5 Color 97 2.5.1 RGB Color 99 2.5.2 Indexed Color 101 2.5.3 Setting of Color Attributes 102 2.6 Viewing 103 2.6.1 The Orthographic View 104 2.6.2 Two-Dimensional Viewing 107 2.7 Control Functions 108 2.7.1 Interaction with the Window System 108 2.7.2 Aspect Ratio and Viewports 109 2.7.3 The main,display,and init Functions 110 2.7.4 Program Structure 113 2.8 The Gasket Program 113 2.8.1 Rendering the Points 114 2.8.2 The Vertex Shader 115 2.8.3 The Fragment Shader 116 2.8.4 Combining the Parts 116 2.8.5 The initShacter Function 116 2.9 Polygons and Recursion 118 2.10 The Three-Dimensional Gasket 121 2.10.1 Use of Three-Dimensiohal Points 121 2.10.2 Use of Polygons in Three Dimensions 122 2.10.3 Hidden-Surface Removal 125 2.11 Adding Interaction 128 2.11.1 Using the Pointing Device 128 2.11.2 Window Events 131 2.11.3 Keyboard Events 132 2.11.4 The Idle Callback 133 2.11.5 Double Buffering 135 2.11.6 Window Management 136 2.12 Menus 136 Summary and Notes 138 Suggested Readings 139 Exercises 140 CHAPTER 3 GEOMETRIC OBJECTS AND TRANSFORMATIONS 145 3.1 Scalars, Points, and Vectors 146 3.1.1 Geometric Objects 146 3.1.2 Coordinate-Free Geometry 147 3.1.3 The Mathematical View: Vector and Affine Spaces 148 3.1.4 The Computer Science View 149 3.1.5 Geometric ADTs 149 3.1.6 Lines 150 3.1.7 Affine Sums 151 3.1.8 Convexity 152 3.1.9 Dot and Cross Products 152 3.1.10 Planes 153 3.2 Three-Dimensional Primitives 155 3.3 Coordinate Systems and Frames 156 3.3.1 Representations and N-Tuples 158 3.3.2 Change of Coordinate Systems 159 3.3.3 Example Change of Representation 162 …… CHAPTER 4 VIEWING CHAPTER 5 LISHTING AND SHADING CHAPTER 6 FROM VERTICES TO FRAGMENTS CHAPTER 7 DISCRETE TECHNIQUES CHAPTER 8 MODELING AND HIERARCHY CHAPTER 9 PROCEDURAL METHODS CHAPTER 10 CURVES AND SURFACES CHAPTER 11 ADVANCED REDERING APPENIX A SAMPLE PROGRAMS APPENIX B SPACER APPENIX C MATRICES APPENIX D SYNOPSIS OF OPENGL FUNCTIONS
章節(jié)摘錄
版權(quán)頁(yè): 插圖: If primitives are the what of an API-the primitive objects that can be displayed-then attributes are the how.That is,the attributes govern the way that a primitive appears on the display.Attribute functions allow us to perform operations ranging from choosing the color with which we display a line segment,to picking apattern with which to fill the inside of a polygon,to selecting a typeface for the titles on a graph.In OpenGL,we can set colors by passing the information from the application to the shader or by having a shader compute a color,for example,through a lighting model that uses data specifying light sources and properties of the surfaces in our model. Our synthetic camera must be described if we are to create an image. As we saw in Chapter I,we must describe the camera's position and orientation in our world and must select the equivalent of a lens.This process will not only fix the view but also allow us to clip out objects that are too close or too far away.The viewing functionsallow us to specify various views,although APIs differ in the degree of flexibility they provide in choosing a view.OpenGL doesnot provide any viewing functions but relies on the use of transformations in the shaders to provide the desired view. One of the characteristics of a good API is that it provides the user with a set of transformation functions that allows her to carry out transformations of objects,such as rotation,translation,and scaling.Our developments of viewing in Chapter 4 and of modeling in Chapter 8 will make heavy use of matrix transformations.In OpenGL,we carry out transformations by forming transformations in our applications and then applying them either in the application or in the shaders. For interactive applications, an API must provide a set of input functions to allow us to deal with the diverse forms of input that characterize modern graphics systems.We need functions to deal with devices such as keyboards,mice,and data tablets.Later in this chapter,we will introduce functions for working with different input modes and with a variety of input devices. In any real application,we also have to worry about handling the complexities of working in a multiprocessing,multiwindow environment-usually an environment where we are connected to a network and there are other users.The control functions enable us to communicate with the window system,to initialize our programs,and to deal with any errors that take place during the execution of our programs.
編輯推薦
《國(guó)外計(jì)算機(jī)科學(xué)教材系列:交互式計(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é)教材。
圖書(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ī)版