計(jì)算機(jī)圖形學(xué)chap_第1頁(yè)
計(jì)算機(jī)圖形學(xué)chap_第2頁(yè)
計(jì)算機(jī)圖形學(xué)chap_第3頁(yè)
計(jì)算機(jī)圖形學(xué)chap_第4頁(yè)
計(jì)算機(jī)圖形學(xué)chap_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1計(jì)算機(jī)圖形學(xué)chap

光照模型(Illumination

model),也稱(chēng)明暗模型,主要用于物體表面某點(diǎn)處的光強(qiáng)度計(jì)算。簡(jiǎn)單的光照模型復(fù)雜的光照模型3基本概念第2頁(yè)/共61頁(yè)真實(shí)感圖形繪制過(guò)程根據(jù)假定的光照條件和景物外觀因素,依據(jù)一定的光照模型,計(jì)算可見(jiàn)面投射到觀察者眼中的光強(qiáng)度大小,并將它轉(zhuǎn)換成適合圖形設(shè)備的顏色值,生成投影畫(huà)面上每一個(gè)象素的光強(qiáng)度,使觀察者產(chǎn)生身臨其境的感覺(jué)。4基本概念第3頁(yè)/共61頁(yè)真實(shí)感圖形繪制步驟在計(jì)算機(jī)中進(jìn)行場(chǎng)景造型;進(jìn)行取景變換和透視變換;進(jìn)行消隱處理;進(jìn)行真實(shí)感圖形繪制。5基本概念第4頁(yè)/共61頁(yè)簡(jiǎn)單光照模型環(huán)境光漫反射光鏡面反射光光強(qiáng)衰減顏色處理610.1簡(jiǎn)單光照模型第5頁(yè)/共61頁(yè)簡(jiǎn)單光照模型中只考慮反射光的作用。

反射光由環(huán)境光、漫反射光和鏡面反射光三部分組成。7簡(jiǎn)單光照模型第6頁(yè)/共61頁(yè)

特點(diǎn):照射在物體上的光來(lái)自周?chē)鱾€(gè)方向,又均勻地向各個(gè)方向反射。P點(diǎn)對(duì)環(huán)境光的反射強(qiáng)度為環(huán)境光(Background

Light)圖1環(huán)境光的反射8第7頁(yè)/共61頁(yè)一個(gè)粗糙的、無(wú)光澤的表面呈現(xiàn)為漫反射。

特點(diǎn):光源來(lái)自一個(gè)方向,反射光均勻地射向各個(gè)方向。由Lambert余弦定理可得點(diǎn)P處漫反射光的強(qiáng)度為:漫反射光(Diffuse

Reflection)圖2

漫反射第8頁(yè)/共61頁(yè)9若L和N都已規(guī)格化為單位矢量,則有漫反射光(Diffuse

Reflection)圖2

漫反射第9頁(yè)/共61頁(yè)10對(duì)于彩色漫反射光(Diffuse

Reflection)對(duì)于多個(gè)漫反射光源第10頁(yè)/共61頁(yè)11

鏡面反射遵循反射定律,入射光和反射光分別位于表面法矢的兩側(cè)。

如果觀察者正好處在P點(diǎn)的鏡面反射方向上,就會(huì)看到一個(gè)比周?chē)恋枚嗟母吖恻c(diǎn)。鏡面反射光圖3

鏡面反射12第11頁(yè)/共61頁(yè)鏡面反射光圖3

鏡面反射鏡面反射情況由Phong模型給出:□

若R和V已規(guī)格化為單位矢量,則:第12頁(yè)/共61頁(yè)13

從視點(diǎn)觀察到物體上任一點(diǎn)P處的光強(qiáng)度I應(yīng)為環(huán)境光反射光強(qiáng)度Ie、漫反射光強(qiáng)度Id以及鏡面反射光的光強(qiáng)度Is的總和:物體表面光強(qiáng)計(jì)算第13頁(yè)/共61頁(yè)14

光在傳播的過(guò)程中,其能量會(huì)發(fā)生衰減。光照模型中必須考慮光強(qiáng)衰減,否則會(huì)影響生成圖形的真實(shí)效果。

光強(qiáng)的衰減可以采用常數(shù)衰減、一次函數(shù)衰減和二次函數(shù)衰減等。15光強(qiáng)衰減第14頁(yè)/共61頁(yè)常用的二次衰減函數(shù)光強(qiáng)衰減第15頁(yè)/共61頁(yè)16選擇顏色模型(color

model)17面向硬件的顏色模型:RGB、CYM面向視覺(jué)感知的顏色模型:HSI為顏色分量指定光照模型顏色第16頁(yè)/共61頁(yè)以RGB顏色模型為例環(huán)境光強(qiáng)度:入射光強(qiáng)度:環(huán)境光反射系數(shù):漫反射系數(shù):鏡面反射系數(shù):顏色第17頁(yè)/共61頁(yè)18光強(qiáng)計(jì)算公式:顏色第18頁(yè)/共61頁(yè)19只用一種顏色繪制整個(gè)多邊形

光源在無(wú)窮遠(yuǎn)處,則多邊形上所有點(diǎn)的LN為常數(shù),衰減函數(shù)也是一個(gè)常數(shù)。

視點(diǎn)在無(wú)窮遠(yuǎn)處,則多邊形上所有點(diǎn)的VR為常數(shù)。

多邊形是景物表面的精確表示,即不是一個(gè)含曲線面景物的近似表示。21恒定光強(qiáng)第20頁(yè)/共61頁(yè)

Gouraud明暗處理方法,又稱(chēng)為亮度插值明

暗處理,它通過(guò)對(duì)多邊形頂點(diǎn)顏色進(jìn)行線性插值來(lái)繪制其內(nèi)部各點(diǎn),其步驟為:計(jì)算每個(gè)多邊形頂點(diǎn)處的平均單位法矢量;

對(duì)每個(gè)頂點(diǎn)根據(jù)簡(jiǎn)單光照模型來(lái)計(jì)算其光強(qiáng);在多邊形表面上將頂點(diǎn)強(qiáng)度進(jìn)行線性插值。22Gouraud明暗處理第21頁(yè)/共61頁(yè)雙線性插值方法Gouraud明暗處理圖4

Gouraud明暗處理的雙線性插值第22頁(yè)/共61頁(yè)23

Phong明暗處理方法,又稱(chēng)為法矢量插值明

暗處理,它對(duì)多邊形頂點(diǎn)的法矢量進(jìn)行插值以產(chǎn)生中間各點(diǎn)的法矢量,其步驟為:計(jì)算每個(gè)多邊形頂點(diǎn)處的平均單位法矢量;

用雙線性插值方法求得多邊形內(nèi)部各點(diǎn)的法矢量。

最后按光照模型確定多邊形內(nèi)部各點(diǎn)的光強(qiáng)。24Phong明暗處理第23頁(yè)/共61頁(yè)矢量雙線性插值方法Phong明暗處理圖5

Phong明暗處理的矢量雙線性插值第24頁(yè)/共61頁(yè)2510.3透明處理圖6

透明表面的光強(qiáng)包括反射光和折射光26第25頁(yè)/共61頁(yè)透明處理圖7

簡(jiǎn)單的透明處理第26頁(yè)/共61頁(yè)27透明處理圖8

光的折射第27頁(yè)/共61頁(yè)2810.4產(chǎn)生陰影29

陰影是由于物體截?cái)嗔斯饩€而產(chǎn)生的,所以如果光源位于物體一側(cè)的話,陰影總是位于物體的另一側(cè),也就是與光源相反的一側(cè)。

從理論上來(lái)說(shuō),從視點(diǎn)以及從光源看過(guò)去都是可見(jiàn)的面不會(huì)落在陰影中,只有那些從視點(diǎn)看

過(guò)去是可見(jiàn)的,而從光源看過(guò)去是不可見(jiàn)的面,肯定落在陰影之內(nèi)。第28頁(yè)/共61頁(yè)產(chǎn)生陰影30產(chǎn)生具有陰影的圖形繪制算法

將視點(diǎn)移到光源位置,用多邊形區(qū)域排序消隱算法,將多邊形分成兩大類(lèi):向光多邊形和背光多邊形。

將視點(diǎn)移到原來(lái)的觀察位置,對(duì)向光多邊形和背光多邊形進(jìn)行消隱,并選用一種光照模型計(jì)算多邊形的亮度,就可得到有陰影效果的圖形。第29頁(yè)/共61頁(yè)10.5模擬景物表面細(xì)節(jié)31

顏色紋理:通過(guò)顏色色彩或明暗度的變化體現(xiàn)出來(lái)的表面細(xì)節(jié)。幾何紋理:由于不規(guī)則的細(xì)小凹凸造成的。

顏色紋理取決于物體表面的光學(xué)屬性,而幾何紋理由物體表面的微觀幾何形狀決定。第30頁(yè)/共61頁(yè)10.5模擬景物表面細(xì)節(jié)32用多邊形模擬表面細(xì)節(jié)紋理的定義和映射凹凸映射第31頁(yè)/共61頁(yè)多邊形模擬表面細(xì)節(jié)33

簡(jiǎn)單地模擬景物表面細(xì)節(jié)的方法是用多邊形,稱(chēng)為表面圖案多邊形,來(lái)模擬紋理的結(jié)構(gòu)和模式。

處理時(shí),首先根據(jù)待生成的顏色紋理構(gòu)造表面圖案多邊形,然后將表面圖案多邊形覆蓋到物體的表面上。第32頁(yè)/共61頁(yè)紋理映射和定義34

生成顏色紋理的一般方法,是預(yù)先定義紋理模式,然后建立物體表面的點(diǎn)與紋理模式的點(diǎn)之間的對(duì)應(yīng)。當(dāng)物體表面的可見(jiàn)點(diǎn)確定之后,以紋理模式的對(duì)應(yīng)點(diǎn)參與光照模型進(jìn)行計(jì)算,就可把紋理模式附到物體表面上。這種方法稱(chēng)為紋理映射(Texture

Mapping)。第33頁(yè)/共61頁(yè)紋理映射和定義圖10由像素空間向紋理空間的映射第35頁(yè)/共61頁(yè)36凹凸映射37

1978年,Blinn提出了一種無(wú)需修改表面幾

何模型,即能模擬表面凹凸不平效果的有效方法——凹凸映射技術(shù)(Bump

Mapping)。第36頁(yè)/共61頁(yè)10.6整體光照模型與光線跟蹤38整體光照模型Whitted光照模型光線跟蹤算法第37頁(yè)/共61頁(yè)整體光照模型39

一個(gè)完整的光照明模型應(yīng)該包括由光源和環(huán)境引起的漫反射分量、鏡面反射分量、規(guī)則透射分量以及漫透射分量等。

僅考慮由光源引起的漫反射分量和鏡面反射分量,而環(huán)境反射分量則簡(jiǎn)單地用一常數(shù)來(lái)代替,這類(lèi)光照模型稱(chēng)為局部光照模型。

能同時(shí)模擬光源和環(huán)境照明效果的光照模型稱(chēng)為整體光照模型。第38頁(yè)/共61頁(yè)Whitted光照模型

Whitted在簡(jiǎn)單光照模型中增加了環(huán)境鏡面反射光和環(huán)境規(guī)則透射光,以模擬周?chē)h(huán)境的光投射在景物表面上產(chǎn)生的理想鏡面反射和規(guī)則透射現(xiàn)象。圖11物體表面的鏡面反射和投射第39頁(yè)/共61頁(yè)40光線跟蹤算法光線跟蹤(Ray

Tracing)方法基于幾何光學(xué)的原理,通過(guò)模擬光的傳播路徑來(lái)確定反射、折射和陰影等。圖12光線跟蹤算法41第40頁(yè)/共61頁(yè)光線跟蹤算法步驟42

從視點(diǎn)出發(fā),確定穿過(guò)每個(gè)像素中心的光線路徑,然后,沿這束光線累計(jì)光強(qiáng),并將最終值賦給相應(yīng)像素。

對(duì)于每一像素光線,對(duì)場(chǎng)景中的所有物體表面進(jìn)行測(cè)試以確定其是否與該光線相交,并計(jì)算出交點(diǎn)的深度,深度最大(z值)的交點(diǎn)即為該像素對(duì)應(yīng)的可見(jiàn)點(diǎn)。然后,繼續(xù)考察通過(guò)該可見(jiàn)點(diǎn)的從屬光線(Secondary

Rays)。第41頁(yè)/共61頁(yè)光線跟蹤算法步驟

對(duì)每條從屬光線重復(fù)過(guò)程:與場(chǎng)景中的所有物體求交。然后遞歸地在沿從屬光線方向最近的物體表面上生成下一折射和反射光線。當(dāng)由每個(gè)像素出發(fā)的光線在場(chǎng)景中被反射和折射時(shí),逐個(gè)將相交物體表面加入到一個(gè)二叉光線跟蹤樹(shù)中。當(dāng)樹(shù)中的一束光線到達(dá)預(yù)定的最大深度或到達(dá)某光源時(shí),就停止跟蹤。43第42頁(yè)/共61頁(yè)光線跟蹤算法步驟圖13光線跟蹤及光線跟蹤樹(shù)44第43頁(yè)/共61頁(yè)光線跟蹤算法步驟45

可以從光線跟蹤樹(shù)的葉結(jié)點(diǎn)開(kāi)始,累計(jì)光強(qiáng)貢獻(xiàn)以確定某像素處的光強(qiáng)大小。樹(shù)中每個(gè)結(jié)點(diǎn)的光強(qiáng)由樹(shù)中的子結(jié)點(diǎn)處繼承而來(lái),但光強(qiáng)大小隨距離而衰減。像素光強(qiáng)是光線樹(shù)根結(jié)點(diǎn)處的衰減光強(qiáng)的總和。第44頁(yè)/共61頁(yè)光線跟蹤反走樣46

將光線跟蹤算法與過(guò)采樣方式結(jié)合起來(lái),可歸納如下:對(duì)每一像素的角點(diǎn)計(jì)算光線跟蹤的光強(qiáng)。比較像素4個(gè)角點(diǎn)的光強(qiáng),確定要進(jìn)行細(xì)分的像素。對(duì)細(xì)分后新增的角點(diǎn)計(jì)算光線跟蹤的光強(qiáng)。然后,重復(fù)(2)和(3),直到各角點(diǎn)的光強(qiáng)比較接近為止。加權(quán)平均求出投影平面上各像素點(diǎn)的光強(qiáng)。第45頁(yè)/共61頁(yè)10.7

OpenGL中的光照處理47點(diǎn)光源全局光照表面材質(zhì)透明處理第46頁(yè)/共61頁(yè)點(diǎn)光源48

在OpenGL場(chǎng)景描述中可以包含多個(gè)點(diǎn)光源,光源的各種屬性設(shè)置使用下面的函數(shù)指定。void

glLight{if}

(GLenum

light,

GLenum

pname,

TYPEparam);void

glLight{if}v

(GLenum

light,

GLenum

pname,

TYPE*param);第47頁(yè)/共61頁(yè)點(diǎn)光源p

n

a

m

e取值49默認(rèn)值含義GL_AMBIENTGL_DIFFUSE(0.0,0.0,0.0,1.0) 光源中環(huán)境光分量(1.0,1.0,1.0,1.0)或(0.0,0.0,0.0,1.0)光源中漫反射光分量GL_SPECULARGL_POSITIONGL_SPOT_DIRECTIONGL_SPOT_EXPONENTGL_SPOT_CUTOFFGL_CONSTANT_ATTENUATIONGL_LINEAR_ATTENUATIONGL_QUADRATIC_ATTENUATION(1.0,1.0,1.0,1.0)或(0.0,0.0,0.0,1.0)光源中鏡面光分量(0.0,0.0,1.0,0.0) 光源的坐標(biāo)位置(0.0,0.0,-1.0) 光源聚光燈方向矢量(0.0) 聚光指數(shù)180.0 聚光截止角1.0 固定衰減因子0.0 線性衰減因子0.0 二次衰減因子第48頁(yè)/共61頁(yè)點(diǎn)光源50點(diǎn)光源的顏色點(diǎn)光源的位置和類(lèi)型聚光燈光強(qiáng)度衰減第49頁(yè)/共61頁(yè)點(diǎn)光源51

在OpenGL中,必須明確啟用或禁用光照。默認(rèn)情況下,不啟用光照,此時(shí)使用當(dāng)前顏色繪制圖形,不進(jìn)行法線矢量、光源、光照模型、材質(zhì)屬性的相關(guān)的計(jì)算。要啟用光照,可以使用函數(shù):glEnable(GL_LIGHTING);

指定了光源的參數(shù)后,需要使用函數(shù)啟用light指定的光源:glEnable(light);第50頁(yè)/共61頁(yè)OpenGL全局光照在OpenGL中,下面的函數(shù)用于指定全局光照void

glLightMode{if}

(GLenum

pname,TYPE

param);void

glLightMode{if}v

(GLenum

pname,TYPE

*param);pname取值52默認(rèn)值含義GL_LIGHT_MODEL_AMBIENT(0.2,

0.2,

0.2,

1.0)整個(gè)場(chǎng)景的環(huán)境光成分GL_FALSE如何計(jì)算鏡面反射角GL_LIGHT_MODEL_LOCAL_VIEW

ERGL_LIGHT_MODEL_TWO_SIDEGL_FALSE單面光照還是雙面光照GL_LIGHT_MODEL_COLOR_CONT

ROLGL_SINGLE_COLOR鏡面反射顏色是否獨(dú)立于環(huán)境顏色、散射顏色第51頁(yè)/共61頁(yè)OpenGL材質(zhì)屬性在OpenGL中,下面的函數(shù)用于指定材質(zhì)屬性void

glMaterial{if}

(GLenum

face,

GLenum

pname,

TYPE

param);void

glMaterial{if}v

(GLenum

face,

GLenum

pname,

TYPE

*param);pname取值53默認(rèn)值

含義(0.2,0.2,0.2,1.0)材質(zhì)對(duì)環(huán)境光的反射系數(shù)(0.8,0.8,0.8,1.0)材質(zhì)對(duì)漫射光的反射系數(shù)材質(zhì)對(duì)環(huán)境光和漫射光的反射系數(shù)(0.0,0.0,0.0,1.0)材質(zhì)對(duì)鏡面光的反射系統(tǒng)0.0 鏡面反射指數(shù)(0.0,0.0,0.1,1.0)材質(zhì)的發(fā)射光顏色GL_AMBIENTGL_DIFFUSEGL_AMBIENT_AND_DIFFUSEGL_SPECULAR

GL_SHININESS

GL_EMISSIONGL_COLOR_INDEXS(0,

1,

1)環(huán)境顏色索引、漫反射顏色索引和鏡面反射顏色索引第52頁(yè)/共61頁(yè)OpenGL材質(zhì)屬性54OpenGL提供顏色材質(zhì)模式:glEnable(GL_COLOR_MATERIAL);void

glColorMaterial

(GLenum

face,

GLenum

mode);顏色材質(zhì)模式中,可以通過(guò)glColor函數(shù)來(lái)指定物體表面的顏色,而相應(yīng)的材質(zhì)屬性將通過(guò)顏色值和光源的RGB值計(jì)算出來(lái)。第53頁(yè)/共61頁(yè)透明處理55OpenGL中使用混合實(shí)現(xiàn)透明處理。

混合操作是指將輸入對(duì)象(源)的顏色值與當(dāng)前存儲(chǔ)在幀緩存中的像素(目標(biāo))顏色值合并的過(guò)程。第54頁(yè)/共61頁(yè)透明處理56開(kāi)啟混合操作glEnable(GL_BLEND);指定計(jì)算源因子和目標(biāo)因子的計(jì)算方式void

glBlendFunc(GLenum

srcfactor,

GLenumdestfactor);第55頁(yè)/共61頁(yè)透明處理常量RGB混合因子alpha混合因子GL

_ZERO(0,

0,

0)0GL_ONE(1,

1,

1)1GL_SRC_COLOR(Rs,

Gs,

Bs)AsGL_ONE_MINUS_SRC_COLOR(1,

1,

1)-

(Rs,

Gs,

Bs)1-AsGL_DST_COLOR(Rd,

Gd,

Bd)AdGL_ONE_MINUS_DST_COLOR(1,

1,

1)-

(Rd,

Gd,

Bd)1-AdGL

_SRC_ALPHA(As,

As,

As)AsGL_ONE_MINUS_SRC_ALPHA(1,

1,

1)-

(As,

As,

As)1-AsGL_DST_ALPHA(Ad,

Ad,

Ad)AdGL_ONE_MINUS_DST_ALPHA(1,

1,

1)-

(Ad,

Ad,

Ad)1-AdGL_CONSTANT_COLOR(Rc,

Gc,

Bc)AcGL_ONE_MINUS_CONSTANT_COLOR(1,

1,

1)-

(Rc,

Gc,

Bc)1-AcGL_CONSTANT_ALPHA(Ac,

Ac,

Ac)AcGL_ONE_MINUS_CONSTANT_ALPHA(1,

1,

1)-

(Ac,

Ac,

Ac)1-AcGL_SRC_ALPHA_SATURATE(f,

f,

f);

f=min(As,

1-Ad)157第56頁(yè)/共61頁(yè)透明處理58進(jìn)行混合計(jì)算

假定計(jì)算出的源和目標(biāo)混合因子分別為(Sr,Sg,Sb,Sa)和(Dr,Dg,Db,Da),并且分別使用下標(biāo)s和d區(qū)分表示源和目標(biāo)的RGBA值,則混合后的RGBA值如下:(RsSr+

RdDr,GsSg+Gd

Dg,BsSb

+BdDb,AsSa

+AdDa)第57頁(yè)/共61頁(yè)10

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論