計算機圖形學真實感圖形_第1頁
計算機圖形學真實感圖形_第2頁
計算機圖形學真實感圖形_第3頁
計算機圖形學真實感圖形_第4頁
計算機圖形學真實感圖形_第5頁
已閱讀5頁,還剩104頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

計算機圖形學真實感圖形210.1顏色模型

10.2簡單光照模型

10.3光滑著色

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

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

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

減色系統(tǒng)中,通過消除顏色分量來產(chǎn)生新顏色。當在紙面上涂上品紅油墨時,該紙面就不反射綠光;當在紙面上涂上黃色油墨時,該紙面就不反射藍光;當在紙面上涂上青色油墨時,該紙面就不反射紅光;如果在紙面上涂上了品紅油墨、黃色油墨和青色油墨,那么所有的紅光、綠光和藍光都被吸收,紙面呈現(xiàn)黑色。第8頁,共109頁,2024年2月25日,星期天910.1.2RGB顏色模型RGB顏色模型是顯示器的物理模型,無論軟件開發(fā)中使用何種顏色模型,只要是繪制到顯示器上,圖像最終是以RGB顏色模型表示的。黃(1,1,0)白(1,1,1)黑(0,0,0)紅(1,0,0)藍(0,0,1)綠(0,1,0)青(0,1,1)RGB單位立方體品紅(1,0,1)BGR第9頁,共109頁,2024年2月25日,星期天10classCRGBA{public: CRGBA(); virtual~CRGBA();public: doublered;//紅色分量

doublegreen;//綠色分量

doubleblue;//藍色分量doublealpha;//alpha分量

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

簡單光照模型是局部光照模型的一種經(jīng)驗模型,認為鏡面反射與物體表面的材質(zhì)無關、物體的顏色由材質(zhì)的漫反射率決定。這使得所生成的圖像看上去像塑料,顯示不出磨亮的金屬光澤。第26頁,共109頁,2024年2月25日,星期天27簡單光照模型假定:光源為點光源,入射光僅由紅、綠、藍3種不同波長的光組成;點光源是對場景中比物體小得多的光源的最適合的逼近,如燈泡就是一個點光源。物體是非透明物體,物體表面所呈現(xiàn)的顏色僅由反射光決定,不考慮透射光的影響;只考慮反射不考慮透射。反射光被細分為漫反射光(diffuselight)和鏡面反射光(specularlight)兩種。簡單光照模型只考慮物體對直接光照的反射作用,而物體之間的反射作用,用環(huán)境光(ambientlight)常量統(tǒng)一表示。簡單光照模型分為環(huán)境光模型、漫反射光模型和鏡面反射光模型,全部屬于經(jīng)驗模型。簡單光照模型表示為(10-3)第27頁,共109頁,2024年2月25日,星期天2810.2.1材質(zhì)屬性

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

材質(zhì)決定物體的顏色,在進行光照計算時,材質(zhì)對環(huán)境光的反射率與光源的環(huán)境光分量相結(jié)合,對漫反射光的反射率與光源的漫反射光分量相結(jié)合,對鏡面光的反射率與光源的鏡面反射光分量相結(jié)合。由于鏡面反射光影響范圍很小,而環(huán)境光是常數(shù),所以物體的顏色由材質(zhì)的漫反射率決定。第28頁,共109頁,2024年2月25日,星期天圖9-11材質(zhì)漫反射光反射率對物體顏色影響效果圖(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)29第29頁,共109頁,2024年2月25日,星期天30

(a)金(b)銀(c)紅寶石(d)綠寶石圖14球面材質(zhì)第30頁,共109頁,2024年2月25日,星期天3110.2.2環(huán)境光模型環(huán)境光是環(huán)境中其它物體散射到物體表面后再反射出來的光。由周圍物體多次反射所產(chǎn)生的環(huán)境光來自周圍各個方向,又均勻地向各個方向反射。圖10-9環(huán)境光幾何表示環(huán)境光的反射光強Ie可表示為,0.0≤ka≤1.0

(10-4)Ia為來自周圍環(huán)境的光強第31頁,共109頁,2024年2月25日,星期天3210.2.3漫反射光模型漫反射光是從一點照射,均勻地向各個方向散射,因此漫反射光與視點無關。Lambert(1728~1777)圖10-10漫反射光幾何表示

Lambert余弦定律:0.0≤θ≤π/2,0.0≤kd≤1.0(10-5)第32頁,共109頁,2024年2月25日,星期天33(10-6)式中,L,N為單位矢量??紤]到點光源位于P點的背面時,L·N計算結(jié)果為負值,應取為零,有(10-7)10.2.4鏡面反射光模型鏡面反射光是只朝一個方向反射的光,具有很強的方向性,并遵守反射定律。鏡面反射光會在光滑物體表面形成一片非常亮的區(qū)域,稱為高光(hilight)區(qū)域。第33頁,共109頁,2024年2月25日,星期天34BuiTuongPhong

wasa

Vietnamese-born

computergraphics

researcherandpioneer.Phongwasbornin

Hanoi,Vietnam.HewenttoFrancein1964andwasadmittedtotheGrenobleInstituteofTechnology

.Hecametothe

UniversityofUtahCollegeofEngineering

inSeptember1971asaresearchassistantinComputerScienceandhereceivedhisPh.D.fromtheUniversityofUtahin1973.Phongknewthathewasterminallyillwith

leukemia

whilehewasastudent.In1975,afterhistenureattheUniversityofUtah,Phongjoined

StanfordUniversity

asaprofessor.Hediednotlongafterfinishinghisdissertation.Phongandhiswifehadonedaughter.第34頁,共109頁,2024年2月25日,星期天35AccordingtoProfessor

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.第35頁,共109頁,2024年2月25日,星期天36圖10-11鏡面反射光幾何表示Phong反射模型:0.0≤ks≤1.0,0.0≤α≤π/2(10-8)第36頁,共109頁,2024年2月25日,星期天37圖10-10高光指數(shù)的分布函數(shù)n=1n=20n=2第37頁,共109頁,2024年2月25日,星期天38第38頁,共109頁,2024年2月25日,星期天39在簡單光照模型中,鏡面反射光顏色和入射光顏色相同,也即鏡面反射光只反映光源的顏色。在白光的照射下,物體的高光區(qū)域顯示白色;在紅光的照射下,物體的高光區(qū)域顯示紅色。鏡面光反射率ks是一個與物體顏色無關的參數(shù)。(10-9)

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

圖10-13“物體不動,旋轉(zhuǎn)視點”的光照動畫第39頁,共109頁,2024年2月25日,星期天40Blinn(1948~)Blinn于1977年對Phong的鏡面反射模型做了改進,使用平分矢量H加速計算。(10-11)(10-12)考慮β>90°時,H·N計算結(jié)果為負值,應取為零,有(10-13)第40頁,共109頁,2024年2月25日,星期天41這樣考慮環(huán)境光、漫反射光和鏡面反射光且只有一個點光源的簡單光照模型為(10-14)10.2.5光強衰減入射光的光強隨著光源與物體之間距離的增加而減弱,強度則按照光源到物體距離(d)的1/d2進行衰減(10-15)

d為光矢量L的模長。第41頁,共109頁,2024年2月25日,星期天42考慮光強衰減的單光源簡單光照模型為(10-16)如果場景中有多個點光源,簡單光照模型表示為(10-17)第42頁,共109頁,2024年2月25日,星期天4310.2.6增加顏色由于計算機中采用的是RGB顏色模型,因此需要為顏色的紅、綠、藍3個分量分別建立光照模型。(10-23)計算所得的顏色要歸一化到區(qū)間[0,1]后,才能在RGB顏色模型中正確顯示。第43頁,共109頁,2024年2月25日,星期天4410.3光滑著色10.3.1直線段的光滑著色如果直線段的斜率,y方向為主位移方向(10-25)如果,則x方向為主位移方向,有(10-26)第44頁,共109頁,2024年2月25日,星期天45

圖10-15光滑著色直線

圖10-16雙光源球面線框光照模型第45頁,共109頁,2024年2月25日,星期天4610.3.2Gouraud明暗處理先計算物體表面多邊形各頂點的平均法矢量,然后調(diào)用簡單光照模型計算各頂點的光強,多邊形內(nèi)部各點的光強則通過對多邊形頂點光強的雙線性插值得到。Gouraud(1944~)高洛德圖10-19Gouraud雙線性光強插值模型第46頁,共109頁,2024年2月25日,星期天47

圖10-21立方體顏色填充(a)平面著色(b)Gouraud光滑著色第47頁,共109頁,2024年2月25日,星期天48Gouraud明暗處理的實現(xiàn)步驟如下:(1)計算多邊形頂點的平均法矢量。

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

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

第50頁,共109頁,2024年2月25日,星期天

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

Gouraud著色Flat著色

Gouraud著色Flat著色

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

圖10-30球面著色模式效果圖第55頁,共109頁,2024年2月25日,星期天5610.4簡單透明模型,t∈〔0,1〕(10-36)

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

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

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

圖10-32正交玻璃片紅色球+綠色盒子第58頁,共109頁,2024年2月25日,星期天5910.5簡單陰影模型自然界中,物體只要受到光照,就會產(chǎn)生陰影。陰影效果對增強場景的真實感有著非常重要的作用。陰影可以反映物體之間的相對位置,增強場景的立體感和層次感。陰影是由于物體截斷了光線而產(chǎn)生的,如果光源位于物體的一側(cè),陰影總是位于物體的另一側(cè),也就是與光源相反的一側(cè)。如果視點和光源在同一方向上,得不到光照的陰影面同時又是看不到的隱藏面,不會有陰影。第59頁,共109頁,2024年2月25日,星期天60物體的多邊形表面,如果在陰影區(qū)域內(nèi)部,則該多邊形的光強就只有環(huán)境光一項;否則就用正常的光照模型計算光強。采用這種簡單的方法,就可以將陰影引入簡單光照模型中,使產(chǎn)生的真實感圖形更具有層次感。

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

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

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

圖10-33為場景添加紋理細節(jié)(b)紋理映射場景(a)空白場景第64頁,共109頁,2024年2月25日,星期天65

為物體表面添加紋理的技術稱為紋理映射(texturemapping)。紋理映射是將紋理空間(texturespace)坐標(u,v)映射為物體空間(objectspace)坐標(x,y,z),再進一步映射為屏幕圖像空間(screenspace)二維物體表面坐標(x,y)的過程,如圖10-37所示。(a)紋理空間(b)物體空間(c)圖像空間10-37紋理映射第65頁,共109頁,2024年2月25日,星期天66當什么屬性發(fā)生改變時,可以產(chǎn)生紋理效果呢?

漫反射光模型主要產(chǎn)生紋理效果。當光源的位置不變時,單位光矢量L是一個定值。影響光強的只有漫反射系數(shù)kd和單位法矢量N的方向。EdwinEarlCatmull1974年,Catmull首先采用二維圖像來定義物體表面材質(zhì)的漫反射系數(shù)kd,這種紋理被稱為顏色紋理。1978年,Blinn提出了在光照模型中適當擾動物體表面的單位法矢量N的方向產(chǎn)生表面凹凸紋理的方法,被稱為幾何紋理。第66頁,共109頁,2024年2月25日,星期天67

JimBlinn,全名JamesF.Blinn,世界圖形學先驅(qū)。曾榮獲Siggraph年度計算機圖形學成就獎。系微軟公司研究所圖形學研究員。凸凹紋理映射:由JimBlinn發(fā)明,用法向擾動技術模擬帶褶皺的曲面。Bumpmapping最初由JimBlinn在1978年發(fā)明。第67頁,共109頁,2024年2月25日,星期天68顏色紋理映射可以有兩種實現(xiàn)方法,一種方法是直接用紋理的顏色替代物體表面的顏色。在這種情況下,不必進行光照計算。另一種方法是紋理數(shù)據(jù)參加光照計算。在這種情況下,物體表面的紋理會顯示光照效果,但這會影響到鏡面高光效果。因為鏡面反射光的顏色是由光源顏色決定的,而與物體本身材質(zhì)顏色無關。處理方法是將鏡面反射光分離出來,通過設置材質(zhì)漫反射系數(shù)kd完成紋理映射后,再將鏡面反射光分量加上去。第68頁,共109頁,2024年2月25日,星期天6910.6.1顏色紋理

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

木紋大理石包裝盒第69頁,共109頁,2024年2月25日,星期天70函數(shù)紋理紋理一般定義在單位正方形區(qū)域(0≤u≤1,0≤v≤1),稱為紋理空間。理論上,任何定義在此空間內(nèi)的函數(shù)都可以作為紋理函數(shù),實際上,常采用一些特殊的函數(shù)來模擬現(xiàn)實世界中存在的紋理,如國際象棋棋盤紋理函數(shù)、粗布紋理函數(shù)等

。(1)國際象棋棋盤紋理函數(shù)(10-38)其中,0<a<b<1,表示不大于x的最大整數(shù)。a和b是RGB宏的顏色分量。第70頁,共109頁,2024年2月25日,星期天71

(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第71頁,共109頁,2024年2月25日,星期天72doublea,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)); }}第72頁,共109頁,2024年2月25日,星期天73(2)粗布紋理函數(shù)

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

(a)p=100,q=100(b)p=50,q=100(c)p=100,q=50圖10-40粗布紋理第73頁,共109頁,2024年2月25日,星期天74voidCTestView::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)); }}第74頁,共109頁,2024年2月25日,星期天75(3)立方體表面紋理映射立方體表面進行紋理映射的變換矩陣為

圖10-41二維函數(shù)紋理圖10-42立方體的一個三維表面第75頁,共109頁,2024年2月25日,星期天76,,,,將立方體表面上的一點P(x,y,z)表達為(u,v)的參數(shù)形式,解得第76頁,共109頁,2024年2月25日,星期天77

圖10-43立方體函數(shù)紋理映射(a)國際象棋棋盤函數(shù)紋理(b)粗布函數(shù)紋理第77頁,共109頁,2024年2月25日,星期天78(4)圓柱面函數(shù)紋理映射高度為h、截面半徑為r、三維坐標系原點位于底面中心。圓柱面的參數(shù)方程為(10-43)第78頁,共109頁,2024年2月25日,星期天79圓柱面的uv化表示為(10-45)

圖10-45圓柱面函數(shù)紋理映射第79頁,共109頁,2024年2月25日,星期天80(5)圓錐面函數(shù)紋理映射高度為h,底面半徑為r,三維坐標系原點位于底面中心的圓錐面的參數(shù)方程為(10-46)圓錐面?zhèn)让嬲归_圖是扇形,通過下述線性變換將紋理空間[0,1]×[0,1]與物體空間[0,2π]×[0,1]等同起來。(10-47)第80頁,共109頁,2024年2月25日,星期天81圓錐面的uv化表示為(10-48)圖10-46圓錐面函數(shù)紋理映射第81頁,共109頁,2024年2月25日,星期天82

(6)球面函數(shù)紋理映射球心位于三維坐標系原點,半徑為r的球面參數(shù)方程為(10-49)球面是二次曲面,通過下述線性變換將紋理空間[0,1]×[0,1]與物體空間[0,2π]×[0,π]等同起來。球面的uv化表示為(10-50)(10-51)第82頁,共109頁,2024年2月25日,星期天83

圖10-47球面函數(shù)紋理映射第83頁,共109頁,2024年2月25日,星期天84(7)圓環(huán)面函數(shù)紋理映射圓環(huá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)第84頁,共109頁,2024年2月25日,星期天85

圖10-48圓環(huán)面函數(shù)紋理映射第85頁,共109頁,2024年2月25日,星期天862.圖像紋理函數(shù)紋理是使用數(shù)學方法定義的簡單二維紋理圖案,這種紋理規(guī)則而單調(diào)。為了增強紋理的表現(xiàn)力,一個自然的想法是將一幅來自數(shù)碼相機的二維圖像作為紋理映射到物體上。圖像紋理映射需要建立物體表面上每一采樣點與已知圖像上各點(稱為紋素,texel)的對應關系,取圖像上點的顏色值作為物體表面上采樣點的顏色值,然后采用光照模型來計算該點處的光強。圖像紋理映射既可以采用將圖像紋理綁定到物體頂點上的方式實現(xiàn)也可以采用將圖像紋理綁定到表面上的方式實現(xiàn)。前者一般用于映射單幅圖像,僅需要正確處理圖像接縫,后者一般用于映射多幅圖像。第86頁,共109頁,2024年2月25日,星期天87toprightfrontbackleftbottom對于立方體,由于使用6幅圖像紋理,一般采用綁定到表面上的方式實現(xiàn)。讀入立方體6個表面所對應的位圖的代碼如下:第87頁,共109頁,2024年2月25日,星期天88第88頁,共109頁,2024年2月25日,星期天89圖10-50立方體圖像紋理映射效果圖八面體貼圖第89頁,共109頁,2024年2月25日,星期天90圓柱面、圓錐面、球面和圓環(huán)面僅使用一幅位圖就可以實現(xiàn)圖像紋理映射,一般采用綁定到物體頂點上的方式實現(xiàn)。圓柱面圖像紋理映射效果如圖10-51所示。圓錐面圖像紋理映射效果如圖10-52所示。球面圖像紋理映射效果如圖10-53所示。圓環(huán)面圖像紋理映射效果如圖10-54所示。圖10-52圓錐面圖像紋理映射圖10-51圓柱面圖像紋理映射第90頁,共109頁,2024年2月25日,星期天91

圖10-54圓環(huán)面圖像紋理映射圖10-53球面圖像紋理映射(未進行紋理反走樣處理)第91頁,共109頁,2024年2月25日,星期天9210.6.2三維紋理

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

溫馨提示

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

最新文檔

評論

0/150

提交評論