本書以數(shù)字媒體應(yīng)用開發(fā)為背景,介紹了使用OpenGL、DirectX、Unity3d等應(yīng)用開發(fā)工具所必需的理論知識。本書主要有:計(jì)算機(jī)圖形學(xué)的基本原理,包括圖形建模、圖形變換、光柵化、裁剪、消隱、曲線曲面理論、基本光照模型、紋理映射等;數(shù)字圖像的基礎(chǔ)知識,包括圖像幾何變換及圖像處理基本算法;應(yīng)用建模技術(shù),包括骨骼模型、水面模型、布料模型等。本書特點(diǎn)是從數(shù)字媒體開發(fā)工具出發(fā),聚焦于游戲、動漫及虛擬現(xiàn)實(shí)等數(shù)字媒體技術(shù)的基礎(chǔ)知識。 本書適合作為高等院校數(shù)字媒體、動畫類等相關(guān)專業(yè)教學(xué)用書,也可作為廣大讀者認(rèn)識和學(xué)習(xí)數(shù)字動畫知識的參考書,對于希望系統(tǒng)學(xué)習(xí)和研究動畫的人員具有參考價值。
從20世紀(jì)50年代開始,世界進(jìn)入了計(jì)算機(jī)時代,計(jì)算機(jī)開始應(yīng)用于工業(yè)領(lǐng)域。在初的應(yīng)用中,圖形圖像就是主要的應(yīng)用方向,如機(jī)械設(shè)計(jì)(CAD)和電視信號編碼等。圖形學(xué)科和圖像學(xué)科也在計(jì)算機(jī)應(yīng)用的早期就已經(jīng)建立起來并快速發(fā)展,對圖形圖像的應(yīng)用建立了理論基礎(chǔ)。在圖形圖像學(xué)科研究及應(yīng)用的發(fā)展過程中,建立了較完整的理論體系和技術(shù)標(biāo)準(zhǔn),為應(yīng)用的普及建立了技術(shù)基礎(chǔ)。隨著時代的發(fā)展,計(jì)算機(jī)的應(yīng)用逐漸從工業(yè)領(lǐng)域普及到了各個領(lǐng)域,特別開拓了以游戲、虛擬現(xiàn)實(shí)為代表的數(shù)字媒體領(lǐng)域,對社會文化的進(jìn)步起到了引領(lǐng)作用。當(dāng)今社會,從產(chǎn)業(yè)的規(guī)模、從業(yè)人員、消費(fèi)群體等多方面看,可以說已經(jīng)進(jìn)入了數(shù)字媒體時代。
圖形學(xué)科和圖像學(xué)科也是一個復(fù)合學(xué)科,包括多個細(xì)分領(lǐng)域,如算法、設(shè)備、交互、傳輸、軟件設(shè)計(jì)等。在應(yīng)用方面,以計(jì)算機(jī)動畫、動漫、數(shù)字電影、電子游戲、虛擬現(xiàn)實(shí)為代表的數(shù)字媒體也作為一個細(xì)分領(lǐng)域,占據(jù)了突出的地位。現(xiàn)今,數(shù)字媒體應(yīng)用已經(jīng)擁有數(shù)十億使用者,這樣的應(yīng)用規(guī)模也同時推動著數(shù)字媒體技術(shù)的發(fā)展,各種新技術(shù)、新算法不斷涌現(xiàn),可以預(yù)見的是,在將來,圖形圖像技術(shù)及應(yīng)用還會發(fā)展到更新的高度。
數(shù)字媒體領(lǐng)域既包括設(shè)計(jì),也包括技術(shù)工作。其特點(diǎn)一般是基于某種應(yīng)用軟件或應(yīng)用平臺進(jìn)行應(yīng)用的設(shè)計(jì)開發(fā),過程中必然會涉及圖形圖像的基礎(chǔ)原理和算法,掌握相關(guān)的知識是必要的。有關(guān)計(jì)算機(jī)圖形圖像理論的教材有很多種,但如果以數(shù)字媒體開發(fā)與應(yīng)用教學(xué)為目標(biāo),會發(fā)現(xiàn)合適的教材較少。多數(shù)教材講解基礎(chǔ)的算法、原理,而不能和應(yīng)用實(shí)踐聯(lián)系起來。還有一些教材是從圖形接口如DirectX等出發(fā),脫離基礎(chǔ),不易理解,還容易陷入編程細(xì)節(jié)中。面對數(shù)字媒體專業(yè),特別是設(shè)計(jì)方向的數(shù)字媒體專業(yè),圖形圖像理論應(yīng)著眼于以下目標(biāo):
(1)理解圖形圖像的數(shù)字構(gòu)成;
(2)理解主流設(shè)計(jì)工具(如OpenGL、DirectX、Unity3d等)所涉及的概念和原理;
(3)掌握數(shù)字媒體開發(fā)中常用的圖形圖像算法,如圖形變換、網(wǎng)格面片計(jì)算、圖形著色、色彩計(jì)算及圖像幾何處理等;
(4)了解當(dāng)前圖形圖像領(lǐng)域的技術(shù)發(fā)展,如先進(jìn)的渲染技術(shù)、GPU計(jì)算等。
教材的主旨是讓學(xué)生具備基礎(chǔ)的、有實(shí)用價值的圖形圖像知識,在學(xué)習(xí)使用數(shù)字媒體設(shè)計(jì)工具時,容易理解其各種功能的作用和制約。在進(jìn)行應(yīng)用開發(fā)編程時,能夠設(shè)計(jì)技術(shù)路線,對技術(shù)步驟有較準(zhǔn)確的把握。教學(xué)應(yīng)該始終圍繞數(shù)字媒體設(shè)計(jì)開發(fā)工具(3ds Max、Photoshop、Unity、HTML5等)進(jìn)行。
本書共包括10章:第1章到第8章為圖形圖像知識的基礎(chǔ)部分;第9、10章為提高部分,這部分介紹了一些較高級的圖形學(xué)算法,對學(xué)習(xí)者起到引領(lǐng)和提升作用。第1章為緒論;第2章介紹了圖形學(xué)的基本概念和體系;第3章介紹了圖形圖像的數(shù)字化表達(dá)方法;第4章介紹了圖形變換原理,包括基本變換、組合變換、攝像機(jī)變換、視窗變換等基本理論;第5章介紹了裁剪、消隱、光柵化等圖形處理的基礎(chǔ)算法;第6章介紹了曲線曲面建模的基本數(shù)學(xué)理論,包括Bezier曲線曲面和B樣條曲線曲面的數(shù)學(xué)原理;第7章介紹了色彩計(jì)算的幾種基礎(chǔ)算法,包括光照計(jì)算和紋理映射技術(shù);第8章介紹了圖像技術(shù)的一些基礎(chǔ)算法,包括圖像的表示、圖像變換、常用圖像特效算法;第9章介紹了幾種常見的動畫算法,包括骨骼動畫算法、布料動畫算法、粒子動畫算法、水面動畫算法等;第10章以NVIDIA芯片為代表介紹了目前主流的GPU渲染技術(shù);附錄為實(shí)驗(yàn)指導(dǎo)。
由于編者水平有限、時間倉促,本書難免在內(nèi)容選材和敘述上有不妥和疏漏之處,竭誠歡迎廣大讀者批評指正。
編 者
2020年11月
第1章緒論1
1.1計(jì)算機(jī)圖形學(xué)研究內(nèi)容1
1.2計(jì)算機(jī)圖形學(xué)發(fā)展及應(yīng)用3
1.3標(biāo)準(zhǔn)化圖形庫OpenGL簡介6
1.4數(shù)字影視動漫領(lǐng)域應(yīng)用8
習(xí)題12
第2章向量和矩陣數(shù)學(xué)基礎(chǔ)13
2.1笛卡爾坐標(biāo)系13
2.2向量14
2.2.1向量的概念14
2.2.2向量加法16
2.2.3向量乘法16
2.3矩陣18
2.3.1相關(guān)概念18
2.3.2矩陣運(yùn)算規(guī)則20
習(xí)題24
第3章圖形圖像的數(shù)字構(gòu)成26
3.1圖形的幾何模型27
3.2三角圖元及三角形網(wǎng)格32
3.3點(diǎn)陣圖像的構(gòu)成38
習(xí)題43
第4章三維空間坐標(biāo)變換44
4.1變換分類和矩陣變換原理44
4.2基本幾何變換46
4.2.1平移變換46
4.2.2旋轉(zhuǎn)變換47
4.2.3縮放變換48
4.3組合變換和層級運(yùn)動49
4.3.1組合變換49
4.3.2層級變換51
數(shù)字媒體設(shè)計(jì)圖形圖像理論基礎(chǔ)目錄4.4投影變換52
4.4.1平行投影變換矩陣53
4.4.2透視投影變換矩陣54
4.5視窗變換55
4.6坐標(biāo)系變換和攝像機(jī)坐標(biāo)系58
4.7空間轉(zhuǎn)動的四元數(shù)表示法61
4.8Unity3d中的坐標(biāo)系和攝像機(jī)63
4.8.1坐標(biāo)系63
4.8.2攝像機(jī)和視口65
4.8.3變換流程66
4.8.4幾何變換工具Transform67
4.8.5攝像機(jī)變換工具Camera67
習(xí)題68
第5章圖形裁剪、消隱和光柵化69
5.1圖形的窗口裁剪69
5.1.1點(diǎn)的裁剪70
5.1.2線段的裁剪:Cohen-Sutherland區(qū)域編碼算法70
5.1.3多邊形裁剪:Sutherland-Hodgeman逐邊裁剪算法72
5.2圖形光柵化73
5.2.1點(diǎn)的光柵化74
5.2.2線段的光柵化:DDA算法74
5.2.3線段的光柵化:Bresenham算法74
5.2.4圓的光柵化:Bresenham算法76
5.2.5多邊形的光柵化:掃描線填充算法77
5.2.6多邊形的光柵化:種子填充算法80
5.3圖形消隱81
5.3.1凸多面體消隱82
5.3.2畫家消隱算法82
5.3.3Z緩存算法85
5.3.4光線投射算法85
習(xí)題87
第6章曲線曲面建模技術(shù)88
6.1曲線曲面的數(shù)學(xué)方法88