第10章真實感圖形的生成與處理_第1頁
第10章真實感圖形的生成與處理_第2頁
第10章真實感圖形的生成與處理_第3頁
第10章真實感圖形的生成與處理_第4頁
第10章真實感圖形的生成與處理_第5頁
已閱讀5頁,還剩58頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

真實感圖形的生成與處理要點:簡單光照模型明暗處理方法陰影產(chǎn)生技術(shù)整體光照模型與光線跟蹤紋理處理顏色

OpenGL中的真實感圖形的生成生成真實感圖形的四個步驟(1)場景造型和幾何建模在計算機上進行場景造型。也就是采用數(shù)學(xué)的方法建立所需要的三維場景的幾何描述,并將其輸入到計算機中。(2)透視變換將三維幾何描述轉(zhuǎn)換為二維透視圖,即進行場景變換和透視變換。(3)可見面判定確定場景中的所有可見面,也就是消隱處理,將視域之外或被其他景物遮擋的不可見面消除。(4)光照及顏色處理計算場景中可見的顏色,也就是根據(jù)假定的光照條件和景物外觀因素,依據(jù)一定的光照模型,計算可見面投射到觀察者眼中的光亮度和顏色分量,并把它們轉(zhuǎn)換為適合圖形設(shè)備處理的顏色值。從而確定投影畫面上每一個像素的顏色,最終生成圖形,達到視覺上的最佳效果。光線與物質(zhì)

lightandMatterWhenlightstrikeasurface,someofitsabsorbed,andsomeofitisreflected.Ifthesurfaceisopaque,reflectionandabsorptionaccountforallthelightstrikingthesurface.Ifthesurfaceistranslucent,someofthelightistransmittedthroughthematerialandemergestointeractwithotherobject.Thisinteractiondependonwavelength.Anobjectilluminatedbywhitelightappearsredbecauseitabsorbmostoftheincidentlightbutreflectslightintheredrangeoffrequencies.Ashinyobjectappearssobecauseitssurfaceissmooth.Conversely,adullobjecthasaroughsurface.

LightandMatterSpeculardiffuseTranslucent光源

LightSourcesAddingthecontributionfromasourceLightsourceLightSourcesPointlightilluminatingasurfaceShadowscreatedbyfinite-sizelightsourceParallellightsourceSpotlight光照模型

lightingModel簡單光照模型只考慮光源照射在物體表面的發(fā)射光,假定物體表面是光滑的,而且是由理想材料構(gòu)成。復(fù)雜光照模型

又叫整體光照模型,這種模型不僅要考慮發(fā)射光,還需要考慮周圍環(huán)境的光對物體表面的影響、物體的透明度、陰影的處理、光源的位置和個數(shù)等。光照模型LightingModel環(huán)境光

Ee=IaKa

Ee——環(huán)境光強;Ia——泛光光強;Ka——漫放射系數(shù)[0-1]鏡面反射光

Es=IsKscosnβ

Es——反射光在觀察方向的光強;Is——點光源的光強;

Ks——物體表面反射率[0—100%];漫射光Ed=IdKdcosθPhong模型(環(huán)境光+鏡面反射光+漫射光)環(huán)境光AmbientReflection環(huán)境光

:光線在空間中經(jīng)過復(fù)雜的傳播之后形成的彌漫于整個空間,無固定的光源、方向的光。環(huán)境光可以認為是周圍景物如墻壁、天花板、桌面等物體發(fā)出的通過物體表面而反射出來的光。環(huán)境光強Ee=IaKa

Ia——漫射光強度(泛光光強);

Ka——漫反射系數(shù)[0≤

Ka≤1]

不同的物體有不同的Ke值鏡面反射光SpecularReflection鏡面反射光:在光源照射下,物體表面可以產(chǎn)生高亮度或是亮點,即所謂的高光效應(yīng),這種現(xiàn)象稱為鏡面反射。Es=IsKscosnβ

Es—反射光在觀察方向的光強;

Is—點光源的光強;

Ks—物體表面反射率[0—100%];

β—視點方向S與鏡面反射方向的夾角。

n—物體表面光滑度系數(shù)(0—2000)βθθSNLR漫反射光DiffuseReflection漫反射光:是由特定光源在物體表面反射光中那些向空間各個方向均勻反射出去的光。這種光的反射強度與觀察點的位置無關(guān).Ed=IdKdcosθ

Id—點光源發(fā)出的入射光的強度

Kd—入射光的漫反射系數(shù)(0-1之間)MNLθPhong模型PhongReflectionModelPhong模型(環(huán)境光+鏡面反射光+漫射光)單個光源E=Ee+Ed+Es=IaKa+IdKdcosθ+IsKscosnβ多個光源(n個)PhongReflectionModel可分解為RGB三種顏色:光的強度隨距離的衰減公式d—從點光源發(fā)出的光線到某一觀察點的所經(jīng)過的距離a、b、c——系數(shù),調(diào)整其大小可以得到不同光照效果。明暗處理shading在計算機三維圖形真實感繪制過程中,得到了物體在光照條件下的表面?zhèn)€點的強度值后,還需要將這些強度值轉(zhuǎn)換為計算機圖形系統(tǒng)所能支持的明暗模式,從而進行濃淡處理。對曲面,可通過計算曲面上每點的亮度來獲得光照效果對平面,由于其上每點的法向量相等,可以使用同一亮度來獲得光照效果。不同的多邊形具有不同的亮度,在進行明暗處理以后,可以使所生成的物體圖形具有層次感恒定光強的明暗處理也叫Flat明暗處理法采用一種顏色來對多邊形進行繪制,在多邊形上任意取一點,利用簡單光照模型計算出該點的顏色,把這點的顏色作為多邊形的顏色。適用于平面體的真實感圖形的處理。

當(dāng):(1)光源無窮遠;(cosθand衰減函數(shù)=const.)(2)觀察點距物體足夠遠;(cosβ=const.)(3)多邊形中不含有曲線面。時,可以得到一個比較真實的場景。由于相鄰多邊形的法向量不同,因而計算出的顏色也不同。存在在相鄰邊界處顏色過渡不光滑的問題。也叫亮度插值明暗處理,它是通過在面片上將光強度值進行線性插值來對該多邊形面片進行繪制的。步驟如下:(1)確定每個多邊形在頂點處的平均單位法向量;(2)根據(jù)光照模型,計算每個頂點的光強度;(3)用頂點強度對多邊形表面上的光強進行線性插值。具體算法見書P256頁。不足之處:會出現(xiàn)過亮或過暗的馬赫條紋;只是考慮了漫射光;對于具有層次分別且相互平行的多邊形面,有時會難于表現(xiàn)它們之間層次感。Gouraud明暗處理為了克服Grouraud方法對鏡面反射區(qū)域所引起的畸變,Phong提出了用法向的插值來代替強度插值的方法。具體計算步驟如下:(1)計算每一個多邊形頂點處的平均單位法矢量;(2)用雙線性插值方法對多邊形內(nèi)部各個點的法矢量進行求解;(3)根據(jù)光照模型沿著每條掃描線計算面上各個點所對應(yīng)的投影像素的光強度。特點:比Grouraud明暗處理的精度要高,但是計算量要大得多。Phong

法向插值法透明的處理TransmittedLight入射光反射光折射光透明物體透明物體表面的光強=反射光+折射光光強透明的處理TransmittedLight透明性的簡單模型(不考慮漫射、折射)MSLPQN到達S點的光強:Es=(1-k)EQ+kEP

(0≤k≤1)k為透明物體的透射系數(shù)k=1時,完全透明,觀察著可以完全看到背景景物k=0時,物體表面不透明通常采用深度緩沖器的算法來實現(xiàn)透明效果:先處理不透明物體以決定可見不透明表面的深度,然后將透明物體的深度值與先前存在深度緩沖器中的值進行比較。這樣就可以增加對透明表面深度及其他參數(shù)的儲存,再將可見透明面的光強與其后面可見不透明面的光強綜合考慮進行繪制。透明的處理TransmittedLightSnell’sLawθiθiθrηrηi折射光入射光反射光HFRN折射率折射方向的單位投射矢量:N—物體表面的單位法矢量L—光源方向的單位矢量TIndicesofreflactionL產(chǎn)生具有陰影的圖形算法步驟:(1)將視點移到光源所在位置,用多邊形區(qū)域進行排序消隱算法,將多邊形分成向光和背光多邊形;(2)將視點移到原來觀察位置,對向光多邊形和背光多邊形進行消隱,并采用某種光照模型計算多邊形的亮度。陰影產(chǎn)生技術(shù)

ShadingTechnologyQABCDL理論上講,從視點以及光源看過去都是可見的面是位于陰影之外的,只有當(dāng)從視點看過去,而從光源看過去不可見的面,才會落在陰影之內(nèi)(下圖)整體光照模型Whitted

光照模型(1980):在Phong模型中增加了環(huán)境鏡面反射光和環(huán)境規(guī)則透射光亮度。它不僅考慮了光源直接照射時所引發(fā)的反射光到達觀察者的光亮度,還考慮了從場景中其他物體鏡面反射或透射過來的光。E=Ee+KsIs+KtItEe—反射光亮度,按Phong模型計算。Ks、Kt—反射系數(shù)、透射系數(shù),{0,1}之間。Is—鏡面反射方向上,其他物體向點M輻射的光亮度。It—在折射方向上其他物體向點M輻射的光亮度。NLSMT光線跟蹤算法利用光線的可逆性,不是從光源出發(fā),而是從視點出發(fā),沿著視線進行追蹤,模擬光的傳播路徑來確定反射、折射和陰影。首先從觀察點位置開始向光源反方向跟蹤光線,單一光線投向物體表面再反射到視點,然后對每個像素點進行計算并建立每個像素點的亮度值,最終顯示在畫面上的像素點是物體表面上距離觀察點的最近的點,從而產(chǎn)生高度真實的三維圖形,因此計算量很大。但對于每個像素點都單獨計算,故能較好的表現(xiàn)曲面細節(jié)。其產(chǎn)生的明暗效果也最真實。光線跟蹤LightTraceLightTraceVMAP1236450102yxScreenpixelBzEB=EeB+KsBIsB+KtBItBEeB光源直接照射及環(huán)境光所產(chǎn)生的局部光強KsBIsB反射光2來的光強對B點的作用KtBItB透射光3來的光強對B點的作用IsB=EA,ItB=EcEA=EeA+KsAIsA+KtAItAEeA光源直接照射及環(huán)境光所產(chǎn)生的局部光強KsAIsA反射光5來的光強對A點的作用IsA=EpKtAItA=0(A為不透明體)EpBACIsBItBIsAItAIsCItCEc=Eec+KscIsc+KtcItcItc=背景光強,Isc=6點的內(nèi)反射光強光線跟蹤二叉樹算法光線跟蹤的反走樣技術(shù)圖形的走樣現(xiàn)象:由于相鄰的兩個像素點之間有一定的距離是相互離散的,而且純粹的光線跟蹤算法又是一種典型的點采樣技術(shù),因此用像素點陣組合出的圖形與真實的景物之間不可避免的會存在誤差。以直線為例,計算機所畫出的直線就有可能呈現(xiàn)出鋸齒狀,細小的物體在屏幕上也可能顯示不出來。像素細分反走樣技術(shù):將發(fā)生圖形走樣的像素點細分為4個子像素,再分別對子像素進行光線跟蹤。子像素的位置就是走樣像素的四個角點。通過這四個角點分別進行光線跟蹤,最終像素的光亮度就是這四個角點光亮度的算術(shù)平均值。現(xiàn)實世界中的物體表面往往是具有各種各樣的紋理的,我們把這種紋理稱為表面細節(jié)。物體表面細節(jié)可以分為表面的顏色紋理和幾何紋理。顏色紋理:木制的家具表面、建筑墻面的拼花圖案等。顏色紋理可以用紋理映射來描述。幾何紋理:由不規(guī)則的細小凹凸組成的桔子表面的褶皺等。幾何紋理可以采用一個擾動函數(shù)來描述。紋理的兩種定義方法:

(1)連續(xù)法:把紋理函數(shù)定義為一個二元函數(shù),其函數(shù)的定義域就是紋理的空間。(2)離散法:把紋理定義在一個二維數(shù)組中,用以代表紋理空間中的行間隔、列間隔固定的一組網(wǎng)絡(luò)點上的紋理值紋理處理textureMapping紋理映射:將一定的紋理函數(shù)映射到物體表面上,在對物體表面進行光亮度計算時可采用相應(yīng)的紋理函數(shù)值作為物體表面的漫反射光亮度值代入光照模型進行計算。因此,可以采用紋理映射來對顏色紋理進行模擬。在光滑的物體表面上描繪花紋實際上就是將花紋在表面上進行一定的映射而成的,這個過程實際上就是將任意的平面圖形或圖像覆蓋到物體表面上,使得物體表面形成真實的色彩花紋。紋理映射TextureMappingTextureAffine紋理映射涉及到紋理空間、景物空間和圖像空間(屏幕空間)三個空間的相互轉(zhuǎn)換和映射。st0景物空間zdsvu0紋理空間dAyx0圖像空間像素域e一般說來,實現(xiàn)映射可以有兩種辦法:(1)將紋理模式映射到物體表面,然后由物體表面映射到(圖像空間)投影屏幕上。(2)將像素區(qū)域(圖像空間)映射到物體表面,然后再有物體表面映射到紋理空間TextureMapping

紋理空間(u,v)向物體空間(s,t)的映射(用線性函數(shù)):s=fs(u,v)=asu+bsv+cst=ft(u,v)=atu+btv+ct物體空間(s,t)向投影屏幕空間(x,y)的映射:

x=x(s,t)y=y(s,t)z=z(s,t)w=w(s,t)

TextureMapping擾動映射紋理映射技術(shù)只能在光滑的表面繪制事前定義的花紋圖案,不能表現(xiàn)由于表面的微觀幾何凹凸不平而呈現(xiàn)出來的粗糙質(zhì)感。為了模擬表面細微的凸凹不平,Blinn在1978年提出了一種算法。該算法通過引入一個擾動函數(shù)來修改景物表面細微的凸凹不平現(xiàn)象。Blinn的凸凹紋理映射技術(shù),是通過對景物表面各個采樣點的位置做微小的擾動來修改景物表面的法線來模擬物體表面上的微觀幾何形狀,從而引起景物表面的法向的擾動。通過選擇適當(dāng)?shù)臄_動函數(shù),可以使得生成的圖形具有不同的褶皺紋理效果。假定參數(shù)曲線上的某點可以用P(u,v)來表示,則該點處的法矢量:其中Pu,Pv為點P處的關(guān)于參數(shù)u,v的偏倒數(shù)。則其表面在該點(u,v)處的法向量為:擾動映射為了得到擾動效果,在景物表面每一個采樣點處沿著它的法矢量附加一個微小的增量,從而生成一張新的表面,這張新的表面可以采用下式表示:其中,Q(u,v)是用戶定義的擾動函數(shù),在此設(shè)它為連續(xù)的可微函數(shù),則:擾動映射省略QNv和QNu較小的項,擾動后的表面法向量為:擾動映射NN’PvPuABNABN-QvQuN’C擾動函數(shù)可以是任選的,如簡單的網(wǎng)格、字符映射、Z緩存器圖案,也可以是隨意手繪圖案。P顏色顏色學(xué)是個OpenGL中的真實感圖形的生成對于真實感圖形的生成,OpenGL中提供了豐富的函數(shù)。利用這些函數(shù)的功能,我們可以通過控制物體的顏色屬性(Color)、材質(zhì)(texture)及光照條件(Light)等,生成具有高度真實感的圖形。Color顏色在窗口中的每一個像素都具有自己的顏色屬性。OpenGL所執(zhí)行的命令就是根據(jù)用戶提供的參數(shù)及各種OpenGL狀態(tài)信息,確定窗口中所繪制的每一個像素的顏色。在執(zhí)行程序之初,必須先設(shè)置顏色的顯示模式。OpenGL提供了兩種顏色模式:RGBA和顏色索引模式(ColorIndex)。顏色的顯示模式一旦確定下來,就不能再進行更改。顏色模式glutInitDisplayMode(GLUT_RGB);

//RGBA模式

或:glutInitDisplay(GLUT_INDEX);

//COLORINDEX模式RGBAorColorIndexRGBAorColorIndexcolorindexmodeDisplay124816wwwwwwRedGreenBlue012324252612321974wwwwRGBAmode通過指定Red、Green、Blue三個成分的各自亮度來確定某種顏色,第四個值A(chǔ)(Alpha)代表物體透明度。(不透明—透明A=1.0—0.0)RGBA顏色模式用RGBA設(shè)置當(dāng)前顏色的函數(shù):VoidglColor3{datatype}(R,G,B);//A=1.0VoidglColor4{datatype}(R,G,B,A);VoidglColor3{datatype}(constType*V);

VoidglColor4{datatype}(constType*V);//V是指向指定類型的指針,一般是一個存儲了RGBA值的數(shù)組。ColorIndex在顏色索引模式中,可使用如下函數(shù)來設(shè)置當(dāng)前的顏色設(shè)置顏色索引表中的的一種顏色為當(dāng)前顏色函數(shù):VoidglIndex{sifd}(TYPEC);VoidglIndex{sifd}v(TYPEC);V代表參數(shù)表示為一個數(shù)組對于一個線段或一個多邊形,可以用單一的顏色來繪制或填充,也可以用多種不同顏色處理。OpenGL提供兩種著色模式:單一著色(FLAT)、光滑著色(SMOOTH)著色模式ShadeModels設(shè)置著色模式函數(shù):VoidglshadeModel(mode);參數(shù)mode的取值為GL_FLAT或GL_SMOOTHGL_FLAT:圖元中某個頂點的顏色用于所有的頂點GL_SMOOTH:內(nèi)部內(nèi)部的顏色由頂點的顏色插值得到GL_SMOOTH采用不同顏色繪制多邊形程序見書P272頁“Color”光照LightingOpenGL中除物體本身的發(fā)光外可以定義三種類型的光照。環(huán)境光ambient:被照射物體表面各個方向均勻受光,與觀察角度無關(guān)。均勻著色。散射光diffuse:光來自某個方向,被物體表面均勻的反射到各個方向。與光源方向有關(guān),但與觀察的角度無關(guān)。均勻著色。鏡面反射光specular:光來自某個方向,被物體表面反射到另一個方向。與光源方向、觀察方向、物體表面反射方向有關(guān)。會產(chǎn)生高

溫馨提示

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

評論

0/150

提交評論