計(jì)算機(jī)圖形學(xué)實(shí)踐教程
定 價(jià):39 元
- 作者:孔令德 著
- 出版時(shí)間:2013/3/1
- ISBN:9787302297512
- 出 版 社:清華大學(xué)出版社
- 中圖法分類(lèi):TP312
- 頁(yè)碼:349
- 紙張:膠版紙
- 版次:2
- 開(kāi)本:16開(kāi)
讀者對(duì)象:不僅可以作為學(xué)習(xí)《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程 (Visual C++版) (第2版)》的輔助教材, 也可作為上機(jī)實(shí)踐教材, 還可供從事游戲開(kāi)發(fā)的程序員自學(xué)使用
《高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)教材精選·圖形圖像與多媒體技術(shù):計(jì)算機(jī)圖形學(xué)實(shí)踐教程(Visual C++版)(第2版)》是《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(Visual C++版)(第2版)》的姊妹篇。編寫(xiě)原則是將計(jì)算機(jī)圖形學(xué)的基本原理與其體編程實(shí)踐相結(jié)合起來(lái)。本書(shū)選用面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言Visual C++6.O的MFC框架作為開(kāi)發(fā)平臺(tái),可以更好地展示真彩色以及對(duì)圖形的交互式操作。
《高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)教材精選·圖形圖像與多媒體技術(shù):計(jì)算機(jī)圖形學(xué)實(shí)踐教程(Visual C++版)(第2版)》共給出60個(gè)案例,內(nèi)容包括直線(xiàn)中點(diǎn)Bresenham算法、多邊形有效邊表填充算法、三維圖形幾何變換算法、透視投影算法、地理劃分球面動(dòng)態(tài)隱線(xiàn)算法、Z-Buffer算法、球面光源和材質(zhì)交互算法、球面Phong明暗處理算法、簡(jiǎn)單透明模型算法、簡(jiǎn)單陰影算法、立方體圖像紋理映射算法、圓環(huán)面圖像紋理映射算法、三維紋理映射算法、球面幾何紋理映射反走樣算法等。
《高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)教材精選·圖形圖像與多媒體技術(shù):計(jì)算機(jī)圖形學(xué)實(shí)踐教程(Visual C++版)(第2版)》的所有案例全部由筆者獨(dú)立開(kāi)發(fā),具有自主知識(shí)產(chǎn)權(quán)。在第1版的基礎(chǔ)上新增了Sutherland Hodgman多邊形裁剪算法、球面光源與材質(zhì)交互算法、簡(jiǎn)單透明模型算法、簡(jiǎn)單陰影算法、三維紋理映射算法、球面幾何紋理映射反走樣算法等案例,豐富了計(jì)算機(jī)圖形學(xué)精品課程的建設(shè)內(nèi)容。
本書(shū)使用類(lèi)結(jié)構(gòu)編寫(xiě),代碼統(tǒng)一,注釋規(guī)范,讀者可以很容易地按照本書(shū)提供的源程序開(kāi)發(fā)自己的圖形學(xué)作品。
本書(shū)不僅可以作為學(xué)習(xí)《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(Visual C++版)(第2版)》的輔助教材,也可作為上機(jī)實(shí)踐教材,還可供從事游戲開(kāi)發(fā)的程序員自學(xué)使用。
《高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)教材精選·圖形圖像與多媒體技術(shù):計(jì)算機(jī)圖形學(xué)實(shí)踐教程(Visual C++版)(第2版)》給出60個(gè)案例,內(nèi)容包括直線(xiàn)中點(diǎn)Bresenham算法、多邊形有效邊表填充算法、三維圖形幾何變換算法、透視投影算法、地理劃分球面動(dòng)態(tài)隱線(xiàn)算法、Z-Buffer算法、球面光源和材質(zhì)交互算法、球面Phong明暗處理算法、簡(jiǎn)單透明模型算法、簡(jiǎn)單陰影算法、立方體圖像紋理映射算法、圓環(huán)面圖像像紋理映射算法、三維紋理映射算法、球面幾何紋理映射反走樣算法等的實(shí)現(xiàn)步驟,并提供了全部源代碼! 陡叩葘W(xué)校計(jì)算機(jī)專(zhuān)業(yè)教材精選·圖形圖像與多媒體技術(shù):計(jì)算機(jī)圖形學(xué)實(shí)踐教程(Visual C++版)(第2版)》使用類(lèi)架構(gòu)編寫(xiě),包括基礎(chǔ)類(lèi)、變換類(lèi)、消隱類(lèi)、渲染類(lèi)等,采用“搭積本”的方式構(gòu)造了三維光照?qǐng)鼍,讀者只要修改物體的數(shù)據(jù)結(jié)構(gòu)(點(diǎn)表與面表)就可以繪制出真實(shí)感圖形;A(chǔ)類(lèi)包括二維點(diǎn)類(lèi)CP2、二維紋理類(lèi)CT2、三維點(diǎn)類(lèi)CP3、三維紋理CT3、表面類(lèi)CFace、顏色類(lèi)CRGB、矢量類(lèi)CVector等,使用基礎(chǔ)類(lèi)可以完成物體的基礎(chǔ)設(shè)置。CTransform變換類(lèi)可以對(duì)物體實(shí)施二維或三維變換。CZbuffer消隱類(lèi)可以對(duì)表面模型進(jìn)行深度消隱。渲染類(lèi)包括材質(zhì)類(lèi)CMaterial、光源類(lèi)CLiglit、光照類(lèi)CLighting等。綜合使用以上類(lèi)可以完全實(shí)現(xiàn)本書(shū)的姊妹篇《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(VisualC++版)(第2版)》中講解的所有計(jì)算機(jī)圖形學(xué)原理。綜合本書(shū)的所有案例,相當(dāng)于為讀者提供了一個(gè)使用MFC開(kāi)發(fā)的小型“OpenGL”,引導(dǎo)讀者從零開(kāi)始逐步掌握機(jī)算機(jī)圖形學(xué)原理與編程實(shí)現(xiàn)方法。
本書(shū)是《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(Visual C++版)(第2版)》配套的實(shí)踐教程。對(duì)于主教材中講解的每個(gè)原理,本書(shū)均給出了配套的算法實(shí)現(xiàn)源代碼!队(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(Visual C++版)(第2版)》完善了光照模型、新增了簡(jiǎn)單透明模型、簡(jiǎn)單陰影模型以及圖像紋理與幾何紋理等內(nèi)容。相應(yīng)地,本書(shū)增加了球面Phong明暗處理、簡(jiǎn)單透明模型、簡(jiǎn)單陰影、立方體函數(shù)紋理映射、長(zhǎng)方體圖像紋理映射、圓柱面圖像紋理映射、圓環(huán)面圖像紋理映射、三維紋理映射、球面幾何紋理映射、球面幾何紋理映射反走樣等算法,共計(jì)60個(gè)案例。60個(gè)案例的源代碼使用類(lèi)的架構(gòu)建設(shè),教師每講解完一個(gè)原理就定義一個(gè)類(lèi),該類(lèi)可以包含到后續(xù)案例中使用,不必每個(gè)案例都從零開(kāi)始建設(shè)。本書(shū)提供的主要原理級(jí)類(lèi)模塊包括:CLine直線(xiàn)類(lèi)、CALine反走樣直線(xiàn)類(lèi)、CFill有效邊表填充類(lèi)、CTransform幾何變換類(lèi)、CZBuffer深度緩沖類(lèi)、CMaterial材質(zhì)類(lèi)、CLight光源類(lèi)、CLighting光照類(lèi)等。為了支持原理類(lèi)的運(yùn)行,定義了一些必要的基礎(chǔ)類(lèi),具體包括:CP2二維點(diǎn)類(lèi)、CP3三維點(diǎn)類(lèi)、CFace表面類(lèi)、CVector矢量類(lèi)和CRGB顏色類(lèi)等;谝陨项(lèi)模塊,讀者可以學(xué)會(huì)對(duì)物體施加光照,改變材質(zhì)或進(jìn)行紋理映射。在場(chǎng)景中使用鼠標(biāo)、鍵盤(pán)來(lái)旋轉(zhuǎn)物體或按下“動(dòng)畫(huà)”圖標(biāo)按鈕來(lái)播放物體旋轉(zhuǎn)的動(dòng)畫(huà),基本達(dá)到OpenGL或3ds max渲染的圖形效果。
本書(shū)使用“案例需求”、“案例分析”、“算法設(shè)計(jì)”、“案例設(shè)計(jì)”和“案例總結(jié)”的五部曲編寫(xiě),講解清晰、注釋清晰。筆者在個(gè)人網(wǎng)站:http://www.klingde.com上提供了全部60個(gè)案例源代碼,供讀者教學(xué)之用。每個(gè)案例都經(jīng)過(guò)了嚴(yán)格測(cè)試,讀者只要編譯、連接、運(yùn)行就可以看到動(dòng)畫(huà)效果。筆者對(duì)該網(wǎng)站所提供的案例源代碼享有著作權(quán),請(qǐng)讀者一起維護(hù)知識(shí)產(chǎn)權(quán)。感謝國(guó)內(nèi)高校教師對(duì)筆者第1版中43個(gè)案例的肯定,敬請(qǐng)教學(xué)一線(xiàn)的計(jì)算機(jī)圖形教師對(duì)本書(shū)提供的案例提出寶貴的修改建議。筆者E-mail: klingde@163.com, QQ: 997796978.
本書(shū)得到2011年山西省重點(diǎn)教改項(xiàng)目“圖形圖像處理系列課程實(shí)踐教學(xué)資源與平臺(tái)的建設(shè)”的資助。本書(shū)所提供的60個(gè)實(shí)踐教學(xué)資源已經(jīng)于2012年底榮獲山西省教學(xué)成果一等獎(jiǎng),獲獎(jiǎng)項(xiàng)目名稱(chēng)為:計(jì)算機(jī)圖形學(xué)實(shí)踐教學(xué)資源庫(kù)的建設(shè)。
孔令德2012年10月第1版前言
計(jì)算機(jī)圖形學(xué)是交互式圖形開(kāi)發(fā)的基本理論,同時(shí)也是一門(mén)實(shí)踐性的學(xué)科。筆者積累了十多年的計(jì)算機(jī)圖形學(xué)講授經(jīng)驗(yàn),使用Visual C++6.0的MFC框架開(kāi)發(fā)了涉及“基本圖形的掃描轉(zhuǎn)換”、“多邊形填充”、“二維變換和裁剪”、“三維變換和投影”、“自由曲線(xiàn)和曲面”、“分形幾何”、“動(dòng)態(tài)消隱”和“真實(shí)感圖形”等章節(jié)內(nèi)容的43個(gè)案例。
本書(shū)是《計(jì)算機(jī)圖形學(xué)基礎(chǔ)教程(Visual C++版)》(ISBN 978-7-302-17082-2)的配套實(shí)踐教程。對(duì)于Visual C++的MFC框架,本書(shū)從使用者的角度進(jìn)行了詳細(xì)操作說(shuō)明。本書(shū)的程序給出了*.h文件和*.cpp文件,算法編寫(xiě)規(guī)范,注釋清晰,讀者可以很容易地按照本書(shū)提供的源程序一步一步地完成上機(jī)實(shí)踐。
學(xué)習(xí)完本書(shū),讀者可以建立三維場(chǎng)景,對(duì)形體施加光照,改變材質(zhì)或?qū)崿F(xiàn)紋理映射。在場(chǎng)景中使用鼠標(biāo)、鍵盤(pán)來(lái)控制形體的旋轉(zhuǎn)和動(dòng)畫(huà),基本達(dá)到OpenGL或3DS生成的圖形效果。
本書(shū)中有許多案例是筆者工作的基礎(chǔ),如有效邊表填充算法、透視投影變換、Gouraud明暗處理、Z-Buffer消隱算法和光照模型等,希望讀者認(rèn)真體會(huì)和理解。
筆者負(fù)責(zé)主持山西省精品課程“C++程序設(shè)計(jì)”和院級(jí)精品課程“計(jì)算機(jī)圖形學(xué)”,本書(shū)是面向?qū)ο笳Z(yǔ)言和計(jì)算機(jī)圖形學(xué)原理相結(jié)合形成的產(chǎn)物,是筆者十多年教學(xué)科研工作成果的總結(jié)。
孔令德
案例1 金剛石圖案算法
案例2 直線(xiàn)中點(diǎn)Bresenham算法
案例3 圓中點(diǎn)Bresenham算法
案例4 橢圓中點(diǎn)Bresenham算法
案例5 Wu反走樣直線(xiàn)算法
案例6 多邊形有效邊表填充算法
案例7 多邊形邊緣填充算法
案例8 四鄰接點(diǎn)種子填充算法
案例9 區(qū)域八鄰接點(diǎn)種子填充算法
案例10 掃描線(xiàn)種子填充算法
案例11 二維圖形幾何變換算法
案例12 Cohen-Sutherland直線(xiàn)段裁剪算法
案例13 中點(diǎn)分割直線(xiàn)段裁剪算法
案例14 Liang-Barsky直線(xiàn)段裁剪算法
案例15 Sutherland-Hodgman多邊形裁剪算法
案例16 三維圖形幾何變換算法
案例17 正交投影算法
案例18 三視圖算法
案例19 透視投影算法
案例20 n次Bczier曲線(xiàn)方程算法
案例21 n次Bezier曲線(xiàn)de Casteljau算法
案例22 雙三次Bezier曲面算法
案例23 三次B樣條曲線(xiàn)算法
案例24 雙三次B樣條曲面算法
案例25 Cantor集算法
案例26 Koch曲線(xiàn)算法
案例27 Peano-Hilbert曲線(xiàn)算法
案例28 Sierpinski墊片算法
案例29 Sierpinski地毯算法
案例30 Mcnger海綿算法
案例31 C字曲線(xiàn)算法
案例32 Cayley樹(shù)算法
案例33 Koch曲線(xiàn)L系統(tǒng)模型算法
案例34 分形草L系統(tǒng)模型算法
案例35 Peano-Hilbert曲線(xiàn)L系統(tǒng)模型算法
案例36 灌木叢L系統(tǒng)模型算法
案例37 Koch曲線(xiàn)IFS算法
案例38 正二十面體動(dòng)態(tài)隱線(xiàn)算法
案例39 地理劃分球面動(dòng)態(tài)隱線(xiàn)算法
案例40 遞歸劃分球面動(dòng)態(tài)隱線(xiàn)算法
案例41 圓柱面動(dòng)態(tài)隱線(xiàn)算法
案例42 圓錐面動(dòng)態(tài)隱線(xiàn)算法
案例43 圓環(huán)面動(dòng)態(tài)隱線(xiàn)算法
案例44 Z-Buffer算法
案例45 畫(huà)家算法
案例46 原色系統(tǒng)算法
案例47 顏色漸變立方體線(xiàn)框模型算法
案例48 RGB顏色模型算法
案例49 HSV顏色模型算法
案例50 球面光源與材質(zhì)交互算法
案例51 球面Phong明暗處理算法
案例52 簡(jiǎn)單透明模型算法
案例53 簡(jiǎn)單陰影算法
案例54 立方體函數(shù)紋理映射算法
案例55 長(zhǎng)方體圖像紋理映射算法
案例56 圓柱面圖像紋理映射算法
案例57 圓環(huán)面圖像紋理映射算法
案例58 三維紋理映射算法
案例59 球面幾何紋理映射算法
案例60 球面幾何紋理反走樣算法
參考文獻(xiàn)