計(jì)算機(jī)圖形學(xué)真實(shí)感圖形_第1頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形_第2頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形_第3頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形_第4頁
計(jì)算機(jī)圖形學(xué)真實(shí)感圖形_第5頁
已閱讀5頁,還剩103頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

110.1顏色模型

10.2簡單光照模型

10.3光滑著色

10.4簡單透明模型10.5陰影模型10.6紋理映射10.7本章小結(jié)本章內(nèi)容目前一頁\總數(shù)一百零八頁\編于十一點(diǎn)2使用透視投影繪制的三維物體已經(jīng)具有近大遠(yuǎn)小的立體效果,經(jīng)過背面剔除和z-buffer消隱后,初步生成了具有較強(qiáng)立體感的圖形,但要模擬真實(shí)物體,還必須為其表面添加材質(zhì)、映射紋理、施加光照、繪制陰影后才能產(chǎn)生真實(shí)感圖形(photorealismcomputergraphics)。三維場景目前二頁\總數(shù)一百零八頁\編于十一點(diǎn)310.1顏色模型紅、綠、藍(lán)三原色是基于人眼視覺顏色感知的三刺激理論設(shè)計(jì)的。三刺激理論認(rèn)為,人眼的視網(wǎng)膜中有三種類型的視錐細(xì)胞,分別對(duì)紅、綠、藍(lán)三種色光最敏感。人眼光譜靈敏度實(shí)驗(yàn)曲線證明,這些光在波長為700nm(紅色)、546nm(綠色)和435.8nm(藍(lán)色)時(shí)的刺激點(diǎn)達(dá)到高峰。三原色有這樣的兩個(gè)性質(zhì):(1)三原色中的任意兩種原色的組合都得不到第三種原色;(2)通過三原色的混合可以得到可見光譜中的任何一種顏色。計(jì)算機(jī)圖形學(xué)中常用的顏色模型有RGB顏色模型、HSV顏色模型和CMYK顏色模型等。其中顏色模型RGB和CMYK是最基礎(chǔ)的模型,其余的顏色模型在顯示時(shí)都需要轉(zhuǎn)換為RGB模型,在打印或印刷時(shí)都需要轉(zhuǎn)換為CMYK模型。目前三頁\總數(shù)一百零八頁\編于十一點(diǎn)4視網(wǎng)膜存在兩種感光細(xì)胞:視錐細(xì)胞與視桿細(xì)胞。視錐細(xì)胞在中央凹分布密集,而在視網(wǎng)膜周邊區(qū)相對(duì)較少。視錐細(xì)胞對(duì)強(qiáng)光敏感。視桿細(xì)胞在中央凹處無分布,主要分布在視網(wǎng)膜的周邊部,視桿細(xì)胞對(duì)暗光敏感。目前四頁\總數(shù)一百零八頁\編于十一點(diǎn)510.1.1原色系統(tǒng)(a)RGB加色系統(tǒng)(b)CMY減色系統(tǒng)圖10-1原色系統(tǒng)目前五頁\總數(shù)一百零八頁\編于十一點(diǎn)6補(bǔ)色指完全不包含另一種顏色互補(bǔ)色目前六頁\總數(shù)一百零八頁\編于十一點(diǎn)7

對(duì)于發(fā)光體使用的是RGB加色系統(tǒng),對(duì)于反射體使用的是CMY減色系統(tǒng)。

加色系統(tǒng)中,通過對(duì)顏色分量的疊加產(chǎn)生新顏色。紅色和綠色等量疊加成為黃色,紅色和藍(lán)色等量疊加成為品紅;綠色和藍(lán)色等量疊加成為青色;如果紅色、綠色和藍(lán)色等量疊加,則成為白色。

減色系統(tǒng)中,通過消除顏色分量來產(chǎn)生新顏色。當(dāng)在紙面上涂上品紅油墨時(shí),該紙面就不反射綠光;當(dāng)在紙面上涂上黃色油墨時(shí),該紙面就不反射藍(lán)光;當(dāng)在紙面上涂上青色油墨時(shí),該紙面就不反射紅光;如果在紙面上涂上了品紅油墨、黃色油墨和青色油墨,那么所有的紅光、綠光和藍(lán)光都被吸收,紙面呈現(xiàn)黑色。目前七頁\總數(shù)一百零八頁\編于十一點(diǎn)810.1.2RGB顏色模型RGB顏色模型是顯示器的物理模型,無論軟件開發(fā)中使用何種顏色模型,只要是繪制到顯示器上,圖像最終是以RGB顏色模型表示的。黃(1,1,0)白(1,1,1)黑(0,0,0)紅(1,0,0)藍(lán)(0,0,1)綠(0,1,0)青(0,1,1)RGB單位立方體品紅(1,0,1)BGR目前八頁\總數(shù)一百零八頁\編于十一點(diǎn)9classCRGBA{public: CRGBA(); virtual~CRGBA();public: doublered;//紅色分量

doublegreen;//綠色分量

doubleblue;//藍(lán)色分量doublealpha;//alpha分量

};分量取值范圍〔0,1〕目前九頁\總數(shù)一百零八頁\編于十一點(diǎn)1010.1.3HSV顏色模型HSV顏色模型是一種直觀的顏色模型,包含三個(gè)要素:色調(diào)(hue)、飽和度(saturation)和明度(value)。色調(diào)H是一種顏色區(qū)別于其它顏色的基本要素,如紅、橙、黃、綠、青、藍(lán)、紫等,當(dāng)人們談?wù)擃伾珪r(shí),實(shí)際上是指它的色調(diào),特別地,黑色和白色無色調(diào)。飽和度S是指顏色的純度。沒有與任何顏色相混合的顏色,其純度為全飽和。要想降低飽和度可以在當(dāng)前顏色中加入白色,鮮紅色飽和度高,粉紅色飽和度低。明度V是顏色的相對(duì)明暗程度。要想降低明度則可以在當(dāng)前顏色中加入黑色,明度最高得到純白,最低得到純黑。目前十頁\總數(shù)一百零八頁\編于十一點(diǎn)11紅綠藍(lán)黃黑青白品紅圖10-3HSV正六邊形HSV模型是從RGB立方體演化而來。沿RGB立方體的主對(duì)角線由白色向黑色看去,在平面上的投影構(gòu)成一個(gè)正六邊形,RGB三原色和相應(yīng)的補(bǔ)色分別位于正六邊形的各個(gè)頂點(diǎn)上,其中紅色、綠色、藍(lán)色分別相隔120°,互補(bǔ)色相隔180°(紅色與青色、黃色與藍(lán)色、綠色與品紅分別相隔180°)目前十一頁\總數(shù)一百零八頁\編于十一點(diǎn)12看做二維圖,是個(gè)正六邊形目前十二頁\總數(shù)一百零八頁\編于十一點(diǎn)13紅綠藍(lán)黃黑青白品紅圖10-4HSV顏色模型SHV目前十三頁\總數(shù)一百零八頁\編于十一點(diǎn)14HSV圓錐HSV六棱錐目前十四頁\總數(shù)一百零八頁\編于十一點(diǎn)15圖10-5色澤、色深和色調(diào)的關(guān)系圖目前十五頁\總數(shù)一百零八頁\編于十一點(diǎn)16表10-1RGB和HSV的對(duì)應(yīng)關(guān)系圖10-5Photoshop軟件中表示的RGB模型和HSB模型的轉(zhuǎn)換目前十六頁\總數(shù)一百零八頁\編于十一點(diǎn)1710.1.4CMYK顏色模型CMY單位立方體MYC品紅(1,0,1)藍(lán)(0,0,1)紅(1,0,0)黑(0,0,0)黃(1,1,0)白(1,1,1)綠(0,1,0)青(0,1,1)目前十七頁\總數(shù)一百零八頁\編于十一點(diǎn)1810.1.4CMYK顏色模型CMYK也稱作印刷顏色模型,顧名思義就是用來印刷的。在印刷品上看到的圖像,就使用了CMYK模型。其中K表示黑色(black),之所以不使用黑色的首字母B,是為了避免與藍(lán)色(Blue)混淆。從理論上講,只需要CMY三種油墨就足夠了,濃度為100%的三種油墨加在一起就可以得到黑色。但是由于目前工藝還不能造出高純度的油墨,CMY相加的結(jié)果實(shí)際是一種“灰”黑色。同時(shí),由于使用一種黑色油墨要比使用青色、品紅和黃色三種油墨便宜,所以黑色油墨被用于代替等量的青色、品紅和黃色油墨。這就是四色套印工藝采用的CMYK模型的理由。目前十八頁\總數(shù)一百零八頁\編于十一點(diǎn)19在圖像交付印刷的時(shí)候,一般需要把這四個(gè)通道的灰度圖制成膠片(稱為出片),然后制成硫酸紙等,再上印刷機(jī)進(jìn)行印刷。傳統(tǒng)的印刷機(jī)有4個(gè)印刷滾筒(形象比喻,實(shí)際情況有所區(qū)別),分別負(fù)責(zé)印制青色、品紅色、黃色和黑色。一張白紙進(jìn)入印刷機(jī)后要被印4次,先被印上圖像中青色的部分,再被印上洋紅色、黃色和黑色部分,順序如下圖:目前十九頁\總數(shù)一百零八頁\編于十一點(diǎn)20從上面的順序中,可以很明顯地感到各種油墨添加后的效果。在印刷過程中,紙張?jiān)诟鱾€(gè)滾筒間傳送,可能因?yàn)闊崦浝淇s或者其他的一些原因產(chǎn)生了位移,這可能使得原本該印上顏色的地方?jīng)]有印上。為了檢驗(yàn)印刷品的質(zhì)量,在印刷各個(gè)顏色的時(shí)候,都會(huì)在紙張空白的地方印一個(gè)+符號(hào)。如果每個(gè)顏色都套印正確,那么在最終的成品上只會(huì)看到一個(gè)+符號(hào)。如果有兩個(gè)或三個(gè),就說明產(chǎn)生了套印錯(cuò)誤,將會(huì)造成廢品。目前二十頁\總數(shù)一百零八頁\編于十一點(diǎn)21噴墨打印機(jī)不會(huì)產(chǎn)生套印錯(cuò)誤,這是為什么呢?印刷機(jī)的紙張要進(jìn)出4個(gè)滾筒,套印錯(cuò)誤就是在這進(jìn)出之間產(chǎn)生的。而噴墨打印機(jī)是一次性打印,所以不存在套印錯(cuò)誤。噴墨打印機(jī)如何實(shí)現(xiàn)一次性打印呢?噴墨打印機(jī)的將多個(gè)噴嘴前后依次排列。這樣在打印的時(shí)候,紙張第一行先被噴上C,然后紙張向前移動(dòng)一行,原先的第一行停在了M噴嘴下被噴上M色,同時(shí)新的空白的第二行被噴上C色。接著紙張?jiān)偾耙?,已噴完C、M的那一行現(xiàn)在停在了Y色噴嘴下,被噴上Y色。而第二行被噴上M。新的空白第三行被噴上C。以此類推。如果在打噴墨打印機(jī)打印到一半的時(shí)取消打印,就會(huì)看到在圖像的邊緣分布著未完成的部分。目前二十一頁\總數(shù)一百零八頁\編于十一點(diǎn)22目前二十二頁\總數(shù)一百零八頁\編于十一點(diǎn)23既然噴墨打印機(jī)的原理并不復(fù)雜,為什么大型印刷機(jī)不采用這樣印刷方式呢?是因?yàn)檫@種打印方式速度很低,噴嘴在每行都需要有一個(gè)移動(dòng)的過程,這需要時(shí)間,如果大幅面紙張耗時(shí)更久。而報(bào)紙等大量的印刷品都需要在短時(shí)間內(nèi)完成,所以這種打印方式是無能為力的。并且精度上也不及印刷機(jī)。因此,打印和印刷,這兩者是有很大區(qū)別的。打印一般數(shù)量很少,質(zhì)量和速度要求也不高。常見于個(gè)人及小型辦公使用。印刷則正相反。隨著印刷技術(shù)的進(jìn)步,現(xiàn)在很多中小型印刷廠都采用了四色印刷機(jī),降低了廢品率。目前二十三頁\總數(shù)一百零八頁\編于十一點(diǎn)2410.2簡單光照模型光照是增強(qiáng)圖形真實(shí)感的重要技術(shù)。光照模型是根據(jù)光學(xué)物理的有關(guān)定律,計(jì)算在特定光源的照射下,物體表面上一點(diǎn)投向視點(diǎn)的光強(qiáng)。光線投射到物體表面時(shí),可能被物體吸收、反射或透射(折射)。其中被吸收的入射光轉(zhuǎn)化為熱,其余部分則向四周反射或透射。朝向視點(diǎn)的反射光和透射光進(jìn)入視覺系統(tǒng),使物體可見。三維線框球面模型同色填充球面模型變色填充球面模型目前二十四頁\總數(shù)一百零八頁\編于十一點(diǎn)25計(jì)算機(jī)圖形學(xué)的光照模型分為局部光照模型(localillumationmodel)和全局光照模型。局部光照模型僅考慮光源直接照射到物體表面所產(chǎn)生的效果,通常假設(shè)物體表面不透明且具有均勻的反射率。局部光照模型能表現(xiàn)出光源直接投射在漫反射物體表面上所形成的連續(xù)明暗色調(diào)、鏡面高光以及由于物體相互遮擋而形成的陰影。全局光照模型(Globalilluminationmodel)除了考慮上述因素外,還考慮周圍環(huán)境對(duì)物體表面的影響,采用RayTracing和Radiosity兩種技術(shù)來計(jì)算全局光照RayTracing,能模擬鏡面的映象、光的折射以及相鄰表面之間的色彩輝映等精確的光照效果。用于計(jì)算鏡面反射,燈光透過玻璃的效果和陰影,還有模擬精確的直接照射光產(chǎn)生的陰影。

簡單光照模型是局部光照模型的一種經(jīng)驗(yàn)?zāi)P?,認(rèn)為鏡面反射與物體表面的材質(zhì)無關(guān)、物體的顏色由材質(zhì)的漫反射率決定。這使得所生成的圖像看上去像塑料,顯示不出磨亮的金屬光澤。目前二十五頁\總數(shù)一百零八頁\編于十一點(diǎn)26簡單光照模型假定:光源為點(diǎn)光源,入射光僅由紅、綠、藍(lán)3種不同波長的光組成;點(diǎn)光源是對(duì)場景中比物體小得多的光源的最適合的逼近,如燈泡就是一個(gè)點(diǎn)光源。物體是非透明物體,物體表面所呈現(xiàn)的顏色僅由反射光決定,不考慮透射光的影響;只考慮反射不考慮透射。反射光被細(xì)分為漫反射光(diffuselight)和鏡面反射光(specularlight)兩種。簡單光照模型只考慮物體對(duì)直接光照的反射作用,而物體之間的反射作用,用環(huán)境光(ambientlight)常量統(tǒng)一表示。簡單光照模型分為環(huán)境光模型、漫反射光模型和鏡面反射光模型,全部屬于經(jīng)驗(yàn)?zāi)P?。簡單光照模型表示為?0-3)目前二十六頁\總數(shù)一百零八頁\編于十一點(diǎn)2710.2.1材質(zhì)屬性

物體的材質(zhì)是指物體表面對(duì)光的吸收、反射和透射的性能。由于研究的是簡單局部光照模型,所以只考慮材質(zhì)的反射屬性。同光源一樣,材質(zhì)也由環(huán)境色、漫反射色和鏡面反射色等分量組成,分別說明了物體對(duì)環(huán)境光、漫反射光和鏡面反射光的反射率。

材質(zhì)決定物體的顏色,在進(jìn)行光照計(jì)算時(shí),材質(zhì)對(duì)環(huán)境光的反射率與光源的環(huán)境光分量相結(jié)合,對(duì)漫反射光的反射率與光源的漫反射光分量相結(jié)合,對(duì)鏡面光的反射率與光源的鏡面反射光分量相結(jié)合。由于鏡面反射光影響范圍很小,而環(huán)境光是常數(shù),所以物體的顏色由材質(zhì)的漫反射率決定。目前二十七頁\總數(shù)一百零八頁\編于十一點(diǎn)圖9-11材質(zhì)漫反射光反射率對(duì)物體顏色影響效果圖(a)(1.0,0.5,0.0)(b)(1.0,0.0,0.5)(c)(0.5,1.0,0.0)(d)(0.5,0.0,1.0)(e)(0.0,1.0,0.5)(f)(0.0,0.5,1.0)28目前二十八頁\總數(shù)一百零八頁\編于十一點(diǎn)29

(a)金(b)銀(c)紅寶石(d)綠寶石圖14球面材質(zhì)目前二十九頁\總數(shù)一百零八頁\編于十一點(diǎn)3010.2.2環(huán)境光模型環(huán)境光是環(huán)境中其它物體散射到物體表面后再反射出來的光。由周圍物體多次反射所產(chǎn)生的環(huán)境光來自周圍各個(gè)方向,又均勻地向各個(gè)方向反射。圖10-9環(huán)境光幾何表示環(huán)境光的反射光強(qiáng)Ie可表示為,0.0≤ka≤1.0

(10-4)Ia為來自周圍環(huán)境的光強(qiáng)目前三十頁\總數(shù)一百零八頁\編于十一點(diǎn)3110.2.3漫反射光模型漫反射光是從一點(diǎn)照射,均勻地向各個(gè)方向散射,因此漫反射光與視點(diǎn)無關(guān)。Lambert(1728~1777)圖10-10漫反射光幾何表示

Lambert余弦定律:0.0≤θ≤π/2,0.0≤kd≤1.0(10-5)目前三十一頁\總數(shù)一百零八頁\編于十一點(diǎn)32(10-6)式中,L,N為單位矢量??紤]到點(diǎn)光源位于P點(diǎn)的背面時(shí),L·N計(jì)算結(jié)果為負(fù)值,應(yīng)取為零,有(10-7)10.2.4鏡面反射光模型鏡面反射光是只朝一個(gè)方向反射的光,具有很強(qiáng)的方向性,并遵守反射定律。鏡面反射光會(huì)在光滑物體表面形成一片非常亮的區(qū)域,稱為高光(hilight)區(qū)域。目前三十二頁\總數(shù)一百零八頁\編于十一點(diǎn)33BuiTuongPhong

wasa

Vietnamese-born

computergraphics

researcherandpioneer.Phongwasbornin

Hanoi,Vietnam.HewenttoFrancein1964andwasadmittedtotheGrenobleInstituteofTechnology

.Hecametothe

UniversityofUtahCollegeofEngineering

inSeptember1971asaresearchassistantinComputerScienceandhereceivedhisPh.D.fromtheUniversityofUtahin1973.Phongknewthathewasterminallyillwith

leukemia

whilehewasastudent.In1975,afterhistenureattheUniversityofUtah,Phongjoined

StanfordUniversity

asaprofessor.Hediednotlongafterfinishinghisdissertation.Phongandhiswifehadonedaughter.目前三十三頁\總數(shù)一百零八頁\編于十一點(diǎn)34AccordingtoProfessor

IvanSutherland

andPhong'sfriends,Phongwasintelligent,affableandmodest.Abouthisworkincomputergeneratedimages,heremarked,"Wedonotexpecttobeabletodisplaytheobjectexactlyasitwouldappearinreality,withtexture,overcastshadows,etc.Wehopeonlytodisplayanimagethatapproximatestherealobjectcloselyenoughtoprovideacertaindegreeofrealism."Phongwastheinventorofthe

Phongreflectionmodel

andthe

Phongshading

interpolationmethod,techniqueswidelyusedincomputergraphics.BuiTuongpublishedthedescriptionofthealgorithmsinhis1973PhDdissertationanda1975paper.Hedevelopedthefirstalgorithmforsimulatingspecular

phenomena.Whenworkingonhisdoctorate,hewasveryfocusedonselectingatopicandcompletinghisdissertationveryfast.Professor

DavidC.Evans

veryenthusiasticallysupportedhiminthisproject.Professor

IvanSutherland

workedwithhimforimprovingthepreviousMachbanding

problems,andonusingnormals

forshading.目前三十四頁\總數(shù)一百零八頁\編于十一點(diǎn)35圖10-11鏡面反射光幾何表示Phong反射模型:0.0≤ks≤1.0,0.0≤α≤π/2(10-8)目前三十五頁\總數(shù)一百零八頁\編于十一點(diǎn)36圖10-10高光指數(shù)的分布函數(shù)n=1n=20n=2目前三十六頁\總數(shù)一百零八頁\編于十一點(diǎn)37目前三十七頁\總數(shù)一百零八頁\編于十一點(diǎn)38在簡單光照模型中,鏡面反射光顏色和入射光顏色相同,也即鏡面反射光只反映光源的顏色。在白光的照射下,物體的高光區(qū)域顯示白色;在紅光的照射下,物體的高光區(qū)域顯示紅色。鏡面光反射率ks是一個(gè)與物體顏色無關(guān)的參數(shù)。(10-9)

鏡面反射光光強(qiáng)不僅取決于物體表面的法線方向,而且依賴于光源和視點(diǎn)的相對(duì)位置。只有當(dāng)視點(diǎn)位于比較合適的位置時(shí),才可以觀察到物體表面某些區(qū)域呈現(xiàn)出高光,當(dāng)視點(diǎn)位置改變時(shí),高光區(qū)域也會(huì)隨之消失。

圖10-13“物體不動(dòng),旋轉(zhuǎn)視點(diǎn)”的光照動(dòng)畫目前三十八頁\總數(shù)一百零八頁\編于十一點(diǎn)39Blinn(1948~)Blinn于1977年對(duì)Phong的鏡面反射模型做了改進(jìn),使用平分矢量H加速計(jì)算。(10-11)(10-12)考慮β>90°時(shí),H·N計(jì)算結(jié)果為負(fù)值,應(yīng)取為零,有(10-13)目前三十九頁\總數(shù)一百零八頁\編于十一點(diǎn)40這樣考慮環(huán)境光、漫反射光和鏡面反射光且只有一個(gè)點(diǎn)光源的簡單光照模型為(10-14)10.2.5光強(qiáng)衰減入射光的光強(qiáng)隨著光源與物體之間距離的增加而減弱,強(qiáng)度則按照光源到物體距離(d)的1/d2進(jìn)行衰減(10-15)

d為光矢量L的模長。目前四十頁\總數(shù)一百零八頁\編于十一點(diǎn)41考慮光強(qiáng)衰減的單光源簡單光照模型為(10-16)如果場景中有多個(gè)點(diǎn)光源,簡單光照模型表示為(10-17)目前四十一頁\總數(shù)一百零八頁\編于十一點(diǎn)4210.2.6增加顏色由于計(jì)算機(jī)中采用的是RGB顏色模型,因此需要為顏色的紅、綠、藍(lán)3個(gè)分量分別建立光照模型。(10-23)計(jì)算所得的顏色要?dú)w一化到區(qū)間[0,1]后,才能在RGB顏色模型中正確顯示。目前四十二頁\總數(shù)一百零八頁\編于十一點(diǎn)4310.3光滑著色10.3.1直線段的光滑著色如果直線段的斜率,y方向?yàn)橹魑灰品较颍?0-25)如果,則x方向?yàn)橹魑灰品较颍校?0-26)目前四十三頁\總數(shù)一百零八頁\編于十一點(diǎn)44

圖10-15光滑著色直線

圖10-16雙光源球面線框光照模型目前四十四頁\總數(shù)一百零八頁\編于十一點(diǎn)4510.3.2Gouraud明暗處理先計(jì)算物體表面多邊形各頂點(diǎn)的平均法矢量,然后調(diào)用簡單光照模型計(jì)算各頂點(diǎn)的光強(qiáng),多邊形內(nèi)部各點(diǎn)的光強(qiáng)則通過對(duì)多邊形頂點(diǎn)光強(qiáng)的雙線性插值得到。Gouraud(1944~)高洛德圖10-19Gouraud雙線性光強(qiáng)插值模型目前四十五頁\總數(shù)一百零八頁\編于十一點(diǎn)46

圖10-21立方體顏色填充(a)平面著色(b)Gouraud光滑著色目前四十六頁\總數(shù)一百零八頁\編于十一點(diǎn)47Gouraud明暗處理的實(shí)現(xiàn)步驟如下:(1)計(jì)算多邊形頂點(diǎn)的平均法矢量。

圖10-22計(jì)算共享頂點(diǎn)P的三角形面片的法矢量目前四十七頁\總數(shù)一百零八頁\編于十一點(diǎn)(2)對(duì)多邊形網(wǎng)格的每個(gè)頂點(diǎn)根據(jù)簡單光照模型計(jì)算光強(qiáng)。(3)根據(jù)每個(gè)多邊形網(wǎng)格的頂點(diǎn)的光強(qiáng),按照掃描線順序使用線性插值計(jì)算多邊形網(wǎng)格邊上每一點(diǎn)的光強(qiáng)。(4)在掃描線與多邊形相交區(qū)間內(nèi),使用線性插值獲得區(qū)間內(nèi)每一點(diǎn)的光強(qiáng)。然后再將光強(qiáng)分解為該點(diǎn)的RGB顏色。Gouraud明暗處理存在的缺陷:(1)使用Gouraud雙線性光強(qiáng)插值實(shí)現(xiàn)相鄰多邊形之間的光滑過渡時(shí),由于采用了光強(qiáng)插值,高光區(qū)域的多邊形邊界明顯,馬赫帶效應(yīng)沒有完全消除。(2)鏡面反射的高光區(qū)域只能在最小面片的周圍形成,不能在面片的內(nèi)部形成,導(dǎo)致Gouraud明暗處理生成的高光區(qū)域明顯大于Phong明暗處理生成的高光區(qū)域。目前四十八頁\總數(shù)一百零八頁\編于十一點(diǎn)

物體是使用平面多邊形逼近的。上圖光滑的效果是通過增加多邊形數(shù)量來獲得的么?設(shè)計(jì)目標(biāo):使用有限多邊形來獲得光滑表面,如何實(shí)現(xiàn)?

目前四十九頁\總數(shù)一百零八頁\編于十一點(diǎn)

Gouraud插值算法使得圖形變得光滑,主要原因是使用了相鄰兩個(gè)面的平均法矢量計(jì)算過渡光強(qiáng),實(shí)現(xiàn)了“使用有限多邊形構(gòu)造光滑表面”的設(shè)計(jì)目標(biāo)。

Gouraud著色Flat著色

Gouraud著色Flat著色

有限網(wǎng)格有限網(wǎng)格平均法矢量的作用目前五十頁\總數(shù)一百零八頁\編于十一點(diǎn)51圖10-23環(huán)境光模型圖10-24環(huán)境光+漫反射光模型圖10-25簡單光照模型圖10-26“綠寶石”材質(zhì)簡單光照模型目前五十一頁\總數(shù)一百零八頁\編于十一點(diǎn)5210.3.3Phong明暗處理先計(jì)算多邊形網(wǎng)格的每個(gè)頂點(diǎn)的平均法矢量,然后使用雙線性插值計(jì)算多邊形內(nèi)部各點(diǎn)的法矢量。最后才使用多邊形網(wǎng)格上各點(diǎn)的法矢量調(diào)用簡單光照模型計(jì)算其所獲得的光強(qiáng)。Phong明暗處理的實(shí)現(xiàn)步驟如下:(10-32)⑴計(jì)算多邊形頂點(diǎn)的平均法矢量。目前五十二頁\總數(shù)一百零八頁\編于十一點(diǎn)53⑵線性插值計(jì)算多邊形內(nèi)部各點(diǎn)的法矢量。圖10-29Phong雙線性法矢插值模型雙線性法矢插值的計(jì)算公式與光強(qiáng)插值的類似,只是將其中的光強(qiáng)項(xiàng)用法矢項(xiàng)代替。目前五十三頁\總數(shù)一百零八頁\編于十一點(diǎn)54⑶對(duì)多邊形內(nèi)的每一點(diǎn)使用法矢量調(diào)用簡單光照模型計(jì)算光強(qiáng),然后再將光強(qiáng)分解為該點(diǎn)的RGB顏色。Phong明暗處理優(yōu)點(diǎn):可以產(chǎn)生正確的高光區(qū)域。Phong明暗處理缺點(diǎn):既要通過三角形網(wǎng)格各頂點(diǎn)的法矢量來插值計(jì)算多邊形內(nèi)各點(diǎn)的法矢量,還要調(diào)用光照模型計(jì)算其光強(qiáng),計(jì)算時(shí)間是Gouraud明暗處理的6~8倍。(a)Flat(b)Gouraud(c)Phong

圖10-30球面著色模式效果圖目前五十四頁\總數(shù)一百零八頁\編于十一點(diǎn)5510.4簡單透明模型,t∈〔0,1〕(10-36)

簡單透明模型是不考慮折射的影響的經(jīng)驗(yàn)?zāi)P?。該模型簡單地將物體1上各像素處的光強(qiáng)與其后的另一個(gè)物體2上相應(yīng)像素處的光強(qiáng)作線性插值以確定物體1上各像素最終顯示的光強(qiáng)。式中,I1為物體1上某一像素的光強(qiáng),I2為物體2上相應(yīng)像素的光強(qiáng)。t為透明度,其值通常取自CRGB類的alpha分量。當(dāng)t=1.0時(shí),物體1透明,可以完全看到物體2;當(dāng)t=0.0時(shí),物體1完全不透明,物體2被物體1遮擋。當(dāng)t的取值位于[0.0,1.0]內(nèi)時(shí),如t=0.5,物體的最終顏色是物體1的顏色與物體2的顏色的線性融合,即物體1的顏色與物體2的顏色各占50%。假定物體2不透明,物體1的透明度的變化如圖10-31所示。目前五十五頁\總數(shù)一百零八頁\編于十一點(diǎn)56顏色化:(10-37)在黑色場景中放置物體A和物體B,物體A為綠色立方體,物體B為黃色球體,球體內(nèi)置于立方體中心。為了演示透明效果,立方體只繪制5個(gè)表面,另一個(gè)表面作為“開窗”。在黑色場景中繪制兩兩正交的紅綠藍(lán)玻璃片,效果如圖10-32所示。簡單透明模型的優(yōu)點(diǎn)是計(jì)算簡單,但只能模擬透明效果,不能模擬光的折射效果。計(jì)算機(jī)圖形學(xué)中也常用簡單透明模型模擬霧效果,使遠(yuǎn)處的物體看上去逐漸變得模糊,從而增加場景的真實(shí)感。目前五十六頁\總數(shù)一百零八頁\編于十一點(diǎn)57

圖10-31t=0.5的透明立方體與內(nèi)置球體

(a)t=0.0(b)t=0.6

圖10-32正交玻璃片紅色球+綠色盒子目前五十七頁\總數(shù)一百零八頁\編于十一點(diǎn)5810.5簡單陰影模型自然界中,物體只要受到光照,就會(huì)產(chǎn)生陰影。陰影效果對(duì)增強(qiáng)場景的真實(shí)感有著非常重要的作用。陰影可以反映物體之間的相對(duì)位置,增強(qiáng)場景的立體感和層次感。陰影是由于物體截?cái)嗔斯饩€而產(chǎn)生的,如果光源位于物體的一側(cè),陰影總是位于物體的另一側(cè),也就是與光源相反的一側(cè)。如果視點(diǎn)和光源在同一方向上,得不到光照的陰影面同時(shí)又是看不到的隱藏面,不會(huì)有陰影。目前五十八頁\總數(shù)一百零八頁\編于十一點(diǎn)59物體的多邊形表面,如果在陰影區(qū)域內(nèi)部,則該多邊形的光強(qiáng)就只有環(huán)境光一項(xiàng);否則就用正常的光照模型計(jì)算光強(qiáng)。采用這種簡單的方法,就可以將陰影引入簡單光照模型中,使產(chǎn)生的真實(shí)感圖形更具有層次感。

對(duì)于單點(diǎn)光源,陰影算法與隱面算法相似。隱面算法確定哪些表面從視點(diǎn)看過去是不可見的,而陰影算法確定哪些表面從光源看過去是不可見的。從光源位置看過去不可見的區(qū)域就是陰影區(qū)域。計(jì)算陰影相當(dāng)于兩次消隱過程。

在單點(diǎn)光源的照射下,陰影分為自身陰影與投射陰影。假設(shè)單點(diǎn)光源位于立方體左面的無窮遠(yuǎn)處,視點(diǎn)位于立方體前方。這時(shí)產(chǎn)生的陰影包括兩個(gè)部分:一部分是由于物體自身的遮擋而使光線照射不到它的某些表面產(chǎn)生自身陰影;另一部分是由于不透明的物體遮擋光線使得位于物體另一側(cè)的區(qū)域受不到光照而形成投射陰影。目前五十九頁\總數(shù)一百零八頁\編于十一點(diǎn)60圖10-34陰影的分類投射陰影自身陰影目前六十頁\總數(shù)一百零八頁\編于十一點(diǎn)61繪制自身陰影與投射陰影圖形的算法如下:(1)根據(jù)視點(diǎn)原來的觀察位置,對(duì)物體實(shí)施隱面算法,使用正常的光照模型計(jì)算光強(qiáng)來繪制可見表面。(2)將視點(diǎn)移到光源的位置。從光源處向物體所有背光面投射光線,建立光線的參數(shù)方程,計(jì)算該光線與投影面(地面)的交點(diǎn),使用深灰色填充交點(diǎn)所構(gòu)成的陰影多邊形,形成投射陰影。若選用簡單光照模型,對(duì)于背光面,由于得不到光源的直接照射,只有環(huán)境光對(duì)其光強(qiáng)有貢獻(xiàn)。目前六十一頁\總數(shù)一百零八頁\編于十一點(diǎn)62圖10-35光照立方體產(chǎn)生的陰影目前六十二頁\總數(shù)一百零八頁\編于十一點(diǎn)我有一所房子,面朝大海,春暖花開

6310.6紋理映射現(xiàn)實(shí)世界中的物體表面存在豐富的紋理細(xì)節(jié),人們正是依據(jù)這些紋理細(xì)節(jié)來區(qū)分各種具有相同形狀的物體。

圖10-33為場景添加紋理細(xì)節(jié)(b)紋理映射場景(a)空白場景目前六十三頁\總數(shù)一百零八頁\編于十一點(diǎn)64

為物體表面添加紋理的技術(shù)稱為紋理映射(texturemapping)。紋理映射是將紋理空間(texturespace)坐標(biāo)(u,v)映射為物體空間(objectspace)坐標(biāo)(x,y,z),再進(jìn)一步映射為屏幕圖像空間(screenspace)二維物體表面坐標(biāo)(x,y)的過程,如圖10-37所示。(a)紋理空間(b)物體空間(c)圖像空間10-37紋理映射目前六十四頁\總數(shù)一百零八頁\編于十一點(diǎn)65當(dāng)什么屬性發(fā)生改變時(shí),可以產(chǎn)生紋理效果呢?

漫反射光模型主要產(chǎn)生紋理效果。當(dāng)光源的位置不變時(shí),單位光矢量L是一個(gè)定值。影響光強(qiáng)的只有漫反射系數(shù)kd和單位法矢量N的方向。EdwinEarlCatmull1974年,Catmull首先采用二維圖像來定義物體表面材質(zhì)的漫反射系數(shù)kd,這種紋理被稱為顏色紋理。1978年,Blinn提出了在光照模型中適當(dāng)擾動(dòng)物體表面的單位法矢量N的方向產(chǎn)生表面凹凸紋理的方法,被稱為幾何紋理。目前六十五頁\總數(shù)一百零八頁\編于十一點(diǎn)66

JimBlinn,全名JamesF.Blinn,世界圖形學(xué)先驅(qū)。曾榮獲Siggraph年度計(jì)算機(jī)圖形學(xué)成就獎(jiǎng)。系微軟公司研究所圖形學(xué)研究員。凸凹紋理映射:由JimBlinn發(fā)明,用法向擾動(dòng)技術(shù)模擬帶褶皺的曲面。Bumpmapping最初由JimBlinn在1978年發(fā)明。目前六十六頁\總數(shù)一百零八頁\編于十一點(diǎn)67顏色紋理映射可以有兩種實(shí)現(xiàn)方法,一種方法是直接用紋理的顏色替代物體表面的顏色。在這種情況下,不必進(jìn)行光照計(jì)算。另一種方法是紋理數(shù)據(jù)參加光照計(jì)算。在這種情況下,物體表面的紋理會(huì)顯示光照效果,但這會(huì)影響到鏡面高光效果。因?yàn)殓R面反射光的顏色是由光源顏色決定的,而與物體本身材質(zhì)顏色無關(guān)。處理方法是將鏡面反射光分離出來,通過設(shè)置材質(zhì)漫反射系數(shù)kd完成紋理映射后,再將鏡面反射光分量加上去。目前六十七頁\總數(shù)一百零八頁\編于十一點(diǎn)6810.6.1顏色紋理

通過顏色變化表現(xiàn)出來的表面細(xì)節(jié),稱為顏色紋理。顏色紋理難以直接構(gòu)造,常采用函數(shù)紋理或圖像紋理來描述表面細(xì)節(jié)。為了使映射在物體表面的顏色紋理不因物體位置的改變而漂移,需要將顏色紋理綁定到物體的表面上。一般采用物體表面的參數(shù)化方法來確定表面的紋理坐標(biāo)。

木紋大理石包裝盒目前六十八頁\總數(shù)一百零八頁\編于十一點(diǎn)69函數(shù)紋理紋理一般定義在單位正方形區(qū)域(0≤u≤1,0≤v≤1),稱為紋理空間。理論上,任何定義在此空間內(nèi)的函數(shù)都可以作為紋理函數(shù),實(shí)際上,常采用一些特殊的函數(shù)來模擬現(xiàn)實(shí)世界中存在的紋理,如國際象棋棋盤紋理函數(shù)、粗布紋理函數(shù)等

。(1)國際象棋棋盤紋理函數(shù)(10-38)其中,0<a<b<1,表示不大于x的最大整數(shù)。a和b是RGB宏的顏色分量。目前六十九頁\總數(shù)一百零八頁\編于十一點(diǎn)70

(a)a=0.9,b=0.1(b)a=0.1,b=0.9(c)a=1.0,b=0.0(d)a=0.0,b=1.0目前七十頁\總數(shù)一百零八頁\編于十一點(diǎn)71doublea,b;for(doubleu=0.0;u<=1.0;u+=0.001)for(doublev=0.0;v<=1.0;v+=0.001){

if(0==(int(floor(u*8))+int(floor(v*8)))%2)//偶數(shù)

{ a=0.9; pDC->SetPixelV(Round(u*500-250),Round(v*500-250),RGB(a*255,a*255,a*255)); } else { b=0.1; pDC->SetPixelV(Round(u*500-250),Round(v*500-250),RGB(b*255,b*255,b*255)); }}目前七十一頁\總數(shù)一百零八頁\編于十一點(diǎn)72(2)粗布紋理函數(shù)

(10-39)式中,A為[0,1]上的隨機(jī)變量,p,q為頻率系數(shù)。

(a)p=100,q=100(b)p=50,q=100(c)p=100,q=50圖10-40粗布紋理目前七十二頁\總數(shù)一百零八頁\編于十一點(diǎn)73voidCTestView::OnDraw(CDC*pDC){ CTestDoc*pDoc=GetDocument(); ASSERT_VALID(pDoc);

//TODO:adddrawcodefornativedatahere CRectrect; GetClientRect(&rect); pDC->SetMapMode(MM_ANISOTROPIC); pDC->SetWindowExt(rect.Width(),rect.Height()); pDC->SetViewportExt(rect.Width(),-rect.Height()); pDC->SetViewportOrg(rect.Width()/2,rect.Height()/2); doublep=100,q=100; for(doubleu=0.0;u<=1.0;u+=0.001) for(doublev=0.0;v<=1.0;v+=0.001) { doubleA=double(rand())/RAND_MAX; doublef=A*(cos(p*u)+cos(q*v)); pDC->SetPixelV(Round(u*500-250),Round(v*500-250),RGB(f*255,f*255,f*255)); }}目前七十三頁\總數(shù)一百零八頁\編于十一點(diǎn)74(3)立方體表面紋理映射立方體表面進(jìn)行紋理映射的變換矩陣為

圖10-41二維函數(shù)紋理圖10-42立方體的一個(gè)三維表面目前七十四頁\總數(shù)一百零八頁\編于十一點(diǎn)75,,,,將立方體表面上的一點(diǎn)P(x,y,z)表達(dá)為(u,v)的參數(shù)形式,解得目前七十五頁\總數(shù)一百零八頁\編于十一點(diǎn)76

圖10-43立方體函數(shù)紋理映射(a)國際象棋棋盤函數(shù)紋理(b)粗布函數(shù)紋理目前七十六頁\總數(shù)一百零八頁\編于十一點(diǎn)77(4)圓柱面函數(shù)紋理映射高度為h、截面半徑為r、三維坐標(biāo)系原點(diǎn)位于底面中心。圓柱面的參數(shù)方程為(10-43)目前七十七頁\總數(shù)一百零八頁\編于十一點(diǎn)78圓柱面的uv化表示為(10-45)

圖10-45圓柱面函數(shù)紋理映射目前七十八頁\總數(shù)一百零八頁\編于十一點(diǎn)79(5)圓錐面函數(shù)紋理映射高度為h,底面半徑為r,三維坐標(biāo)系原點(diǎn)位于底面中心的圓錐面的參數(shù)方程為(10-46)圓錐面?zhèn)让嬲归_圖是扇形,通過下述線性變換將紋理空間[0,1]×[0,1]與物體空間[0,2π]×[0,1]等同起來。(10-47)目前七十九頁\總數(shù)一百零八頁\編于十一點(diǎn)80圓錐面的uv化表示為(10-48)圖10-46圓錐面函數(shù)紋理映射目前八十頁\總數(shù)一百零八頁\編于十一點(diǎn)81

(6)球面函數(shù)紋理映射球心位于三維坐標(biāo)系原點(diǎn),半徑為r的球面參數(shù)方程為(10-49)球面是二次曲面,通過下述線性變換將紋理空間[0,1]×[0,1]與物體空間[0,2π]×[0,π]等同起來。球面的uv化表示為(10-50)(10-51)目前八十一頁\總數(shù)一百零八頁\編于十一點(diǎn)82

圖10-47球面函數(shù)紋理映射目前八十二頁\總數(shù)一百零八頁\編于十一點(diǎn)83(7)圓環(huán)面函數(shù)紋理映射圓環(huán)中心位于三維坐標(biāo)系原點(diǎn),半徑為r1和r2的圓環(huán)面的參數(shù)方程為(10-52)圓環(huán)面是二次曲面,通過下述線性變換將紋理空間[0,1]×[0,1]與物體空間[0,2π]×[0,2π]等同起來。(10-53)圓環(huán)面的uv化表示為(10-54)目前八十三頁\總數(shù)一百零八頁\編于十一點(diǎn)84

圖10-48圓環(huán)面函數(shù)紋理映射目前八十四頁\總數(shù)一百零八頁\編于十一點(diǎn)852.圖像紋理函數(shù)紋理是使用數(shù)學(xué)方法定義的簡單二維紋理圖案,這種紋理規(guī)則而單調(diào)。為了增強(qiáng)紋理的表現(xiàn)力,一個(gè)自然的想法是將一幅來自數(shù)碼相機(jī)的二維圖像作為紋理映射到物體上。圖像紋理映射需要建立物體表面上每一采樣點(diǎn)與已知圖像上各點(diǎn)(稱為紋素,texel)的對(duì)應(yīng)關(guān)系,取圖像上點(diǎn)的顏色值作為物體表面上采樣點(diǎn)的顏色值,然后采用光照模型來計(jì)算該點(diǎn)處的光強(qiáng)。圖像紋理映射既可以采用將圖像紋理綁定到物體頂點(diǎn)上的方式實(shí)現(xiàn)也可以采用將圖像紋理綁定到表面上的方式實(shí)現(xiàn)。前者一般用于映射單幅圖像,僅需要正確處理圖像接縫,后者一般用于映射多幅圖像。目前八十五頁\總數(shù)一百零八頁\編于十一點(diǎn)86toprightfrontbackleftbottom對(duì)于立方體,由于使用6幅圖像紋理,一般采用綁定到表面上的方式實(shí)現(xiàn)。讀入立方體6個(gè)表面所對(duì)應(yīng)的位圖的代碼如下:目前八十六頁\總數(shù)一百零八頁\編于十一點(diǎn)87目前八十七頁\總數(shù)一百零八頁\編于十一點(diǎn)88圖10-50立方體圖像紋理映射效果圖八面體貼圖目前八十八頁\總數(shù)一百零八頁\編于十一點(diǎn)89圓柱面、圓錐面、球面和圓環(huán)面僅使用一幅位圖就可以實(shí)現(xiàn)圖像紋理映射,一般采用綁定到物體頂點(diǎn)上的方式實(shí)現(xiàn)。圓柱面圖像紋理映射效果如圖10-51所示。圓錐面圖像紋理映射效果如圖10-52所示。球面圖像紋理映射效果如圖10-53所示。圓環(huán)面圖像紋理映射效果如圖10-54所示。圖10-52圓錐面圖像紋理映射圖10-51圓柱面圖像紋理映射目前八十九頁\總數(shù)一百零八頁\編于十一點(diǎn)90

圖10-54圓環(huán)面圖像紋理映射圖10-53球面圖像紋理映射(未進(jìn)行紋理反走樣處理)目前九十頁\總數(shù)一百零八頁\編于十一點(diǎn)9110.6.2三維紋理

由于紋理是二維的,而物體是三維的,很難在物體表面的連接處做到紋理自然過渡,極大地降低了圖形的真實(shí)感。假如在三維物體空間中,物體上的每一個(gè)點(diǎn)P(x,y,z)均有一個(gè)紋理值t(x,y,z),其值由紋理函數(shù)惟一確定。那么對(duì)于物體上的空間點(diǎn),就可以映射到一個(gè)定義了紋理函數(shù)的三維空間上了。由于三維紋理空間與物體空間維數(shù)相同,在進(jìn)行紋理映射時(shí),只需把場景中的物體變換到紋理空間即可。1985年,Peachey用一種簡單的規(guī)則三維紋理函數(shù)首次成功地模擬了木制品的紋理效果。其基本思想是采用一組共軸圓柱面來定義三維紋理函數(shù),即把位于相鄰圓柱面之間的紋理函數(shù)值交替地取為明和暗。這樣物體上任一點(diǎn)的紋理函數(shù)值可根據(jù)它到圓柱軸線所經(jīng)過的圓柱面?zhèn)€數(shù)的奇偶性而取為明和暗。目前九十一頁\總數(shù)一百零八頁\編于十一點(diǎn)92圖10-55共軸圓柱面的橫截面上述定義的木紋函數(shù)過于規(guī)范,Peachey引入了三個(gè)簡單的操作來克服這一缺陷:擾動(dòng)(perturbing)對(duì)共軸圓柱面的半徑進(jìn)行擾動(dòng)。扭曲(twisting)在圓柱軸向加一個(gè)扭曲量。傾斜(tilting)將圓柱面圓心沿木塊的截面傾斜。圖10-56共軸圓柱面坐標(biāo)系取共軸圓柱面的軸向?yàn)閥軸,橫截面為x和z軸,如圖10-56所示。則對(duì)于半徑為r1的圓柱,參數(shù)方程為目前九十二頁\總數(shù)一百零八頁\編于十一點(diǎn)93若使用2sinαθ作為木紋的不規(guī)則生長擾動(dòng)函數(shù),并在y軸方向附加

溫馨提示

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

評(píng)論

0/150

提交評(píng)論