計算機圖形學視覺外觀浙江大學_第1頁
計算機圖形學視覺外觀浙江大學_第2頁
計算機圖形學視覺外觀浙江大學_第3頁
計算機圖形學視覺外觀浙江大學_第4頁
計算機圖形學視覺外觀浙江大學_第5頁
已閱讀5頁,還剩83頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、v“l(fā)ight makes right” andrew glassnerv當繪制三維物體時,模型應不僅從從幾何上當繪制三維物體時,模型應不僅從從幾何上看正確,而且應具有看正確,而且應具有真實的視覺外觀真實的視覺外觀v實現(xiàn)方法:實現(xiàn)方法:通過給表面設置材料、應用光源、通過給表面設置材料、應用光源、加紋理、用霧、透明、反走樣、合成等技術加紋理、用霧、透明、反走樣、合成等技術v人為何可以看見物體?人為何可以看見物體?光子光子從物體表面發(fā)出或反射到達觀察者的從物體表面發(fā)出或反射到達觀察者的眼睛。這些光子可以來自光源或其它物體。眼睛。這些光子可以來自光源或其它物體。v這里主要討論三類光源:這里主要討論三

2、類光源:(1). 方向(平行)光源方向(平行)光源 directional lights(2). 點光源點光源 point lights (3). 聚光燈聚光燈 spotlights發(fā)散角發(fā)散角v方向光:放在離物體方向光:放在離物體無窮遠無窮遠的地方。的地方。例子:太陽光例子:太陽光v點光源和聚光燈都稱為點光源和聚光燈都稱為位置位置光源,因為它們都有光源,因為它們都有一個位置。點光源可看成發(fā)射光子的點。一個位置。點光源可看成發(fā)射光子的點。v聚光燈參數:方向矢量聚光燈參數:方向矢量sdir、發(fā)散角、發(fā)散角scut、spot exponent sexp(控制光從中心向周圍的衰減)一個長方形網格(一

3、個長方形網格(1001002個三角形),個三角形),受平行光,點光源和聚光燈照射的光照效果受平行光,點光源和聚光燈照射的光照效果v光源參數:光源參數:亮度和顏色亮度和顏色v一個光源可進一步細分為一個光源可進一步細分為: ambient, diffuse, specular intensitynotationdescriptionsambambient intensity colorsdiffdiffuse intensity colorsspecspecular intensity colorsposlight source positionv在現(xiàn)實世界中,光源會隨距離的平方衰減在現(xiàn)實世界中,

4、光源會隨距離的平方衰減v在實時繪制中,在實時繪制中,光源通常不隨距離衰減。光源通常不隨距離衰減。這樣做的原因:這樣做的原因:(1). 容易控制(不必擔心距離效應)容易控制(不必擔心距離效應)(2). 計算速度快計算速度快v在實時繪制系統(tǒng)中,材質包含的參數:在實時繪制系統(tǒng)中,材質包含的參數:ambient, diffuse, specular, shininess (會聚會聚指數指數), and emissivev物體的顏色最終由下面的參數決定:材質物體的顏色最終由下面的參數決定:材質參數、照射表面的光源參數、光照模型參數、照射表面的光源參數、光照模型notationdescriptionmam

5、bambient material colormdiffdiffuse material colormspecspecular material colormshishininess parametermemiemissive material color第一排:第一排:ambient變化的影響;第二排:變化的影響;第二排:diffuse變化的影響變化的影響第三排:第三排:specular變化的影響;第四排:變化的影響;第四排:shininess變化的影響變化的影響vlighting: 用來指定材質、光源和物體幾何之間用來指定材質、光源和物體幾何之間的相互作用。的相互作用。vshading:是

6、指執(zhí)行光亮度計算并決定象素顏色:是指執(zhí)行光亮度計算并決定象素顏色的過程。的過程。v三種三種shading類型:類型:flat,gouraud,phong對應于按每個對應于按每個多邊形多邊形、頂點頂點、象素象素計算光亮度計算光亮度vflat shading:為每個三角形計算一顏色,:為每個三角形計算一顏色,整個三角形以該顏色填充。整個三角形以該顏色填充。vgouraud shading:先計算三角形每個頂:先計算三角形每個頂點的光亮度,然后在三角形上插值光亮度點的光亮度,然后在三角形上插值光亮度vphong shading: 對于每個象素,根據多邊對于每個象素,根據多邊形頂點的法向插值計算得到象

7、素的法向,形頂點的法向插值計算得到象素的法向,然后用該法向計算光亮度然后用該法向計算光亮度 flat shading gouraud shading phong shadingvflat shading的的優(yōu)點優(yōu)點:簡單、快速、可看清曲面:簡單、快速、可看清曲面蘊涵的小面片。蘊涵的小面片。缺點缺點:繪制的曲面看起來不光滑:繪制的曲面看起來不光滑vgouraud shading:繪制的曲面較光滑、快速:繪制的曲面較光滑、快速(基基本上與本上與flat shading一樣快一樣快 ),絕大多數圖形硬件,絕大多數圖形硬件支持。支持。繪制效果與物體的層次細節(jié)密切相關繪制效果與物體的層次細節(jié)密切相關2

8、18 288個三角形個三角形256 1024 16384個三角形個三角形vgouraud shading的其它缺點:丟失高光、丟失聚光燈的其它缺點:丟失高光、丟失聚光燈效果、效果、mach帶效應。帶效應。部分解決方法:采用帶有光照效果的紋理部分解決方法:采用帶有光照效果的紋理vphong shading可以避免上述缺陷,但算法復雜、計算可以避免上述缺陷,但算法復雜、計算量大。商用的大部分圖形卡不支持。量大。商用的大部分圖形卡不支持。v在在gouraud shading中,如果把三角形剖分成比象素還小,中,如果把三角形剖分成比象素還小,則則gouraud shading可取得和可取得和phong

9、 shading一樣的繪制一樣的繪制效果。但需較大的速度代價。因而該思想很少在實時繪效果。但需較大的速度代價。因而該思想很少在實時繪制系統(tǒng)實施。制系統(tǒng)實施。v頂點的照明采用光照模型(頂點的照明采用光照模型(lighting model)計算。在實)計算。在實時繪制中,所有的光照模型都非常相似,主要分成三部時繪制中,所有的光照模型都非常相似,主要分成三部分:分: ambient, diffuse, specularambient diffuse specular resultv實時繪制的光照模型通常不完全基于物理理論,實時繪制的光照模型通常不完全基于物理理論,但容易控制且結果基本可以接收。但容易

10、控制且結果基本可以接收。v大部分圖形加速卡采用類似的光照明模型。大部分圖形加速卡采用類似的光照明模型。vvertex 和和pixel shading支持程序員把自己的支持程序員把自己的shader寫入硬件。寫入硬件。v基于基于lambert 定律定律:對于理想的漫反射表面,其反射光:對于理想的漫反射表面,其反射光由表面法向由表面法向n和光矢量和光矢量l的余弦決定:的余弦決定:coslndiffi幾何解釋幾何解釋lll cos/v漫反射與攝像機的位置和方向無關,即漫反射分量是漫反射與攝像機的位置和方向無關,即漫反射分量是view independent。v為了利用光源和物體的漫反射顏色,我們改造

11、上述方為了利用光源和物體的漫反射顏色,我們改造上述方程,得到程,得到漫反射貢獻:漫反射貢獻:v由于表面法向由于表面法向n和光矢量和光矢量l的夾角大于的夾角大于900時,漫反射分時,漫反射分量為量為0,得到,得到v注注:部分波長的光子會被材料吸收部分波長的光子會被材料吸收。例如,若。例如,若 則則表示把相應分量相乘 ;)(diffdiffdiffsmlnidiffdiffdiffsmlni)0),max()0 . 0 , 0 . 0 , 0 . 1 (diffm)0 . 0 , 0 . 0 , 0 . 1 (diffdiffsm)0 . 1 , 0 . 1 , 0 . 1 (diffsv鏡面反射

12、主要使得物體看起來發(fā)亮鏡面反射主要使得物體看起來發(fā)亮(shiny),有高光。,有高光。高光幫助觀察者了解問題的曲率,并判斷光源的位置高光幫助觀察者了解問題的曲率,并判斷光源的位置和方向。和方向。沒有鏡面反射沒有鏡面反射 有高光有高光 v假設表面點為假設表面點為p,v為為p到觀察者的矢量,到觀察者的矢量,r為光矢量對于為光矢量對于法向法向n的反射矢量:的反射矢量:v該公式稱為該公式稱為phong光照方程。鏡面分量是光照方程。鏡面分量是view dependentshishimmspeci)(cos)(vrv反射矢量反射矢量r的計算:的計算:ll)n2(nrv由由blinn提出的光照方程的另一形式

13、提出的光照方程的另一形式 采用該方程的原因:采用該方程的原因:不需要計算反射矢量,速度快不需要計算反射矢量,速度快shishishishimmmmspeci4)()( )(cos)(hnvrvlvlhhn。其中:v若考慮物體的材質和光源的參數若考慮物體的材質和光源的參數v當當n和和h的夾角大于的夾角大于900時,鏡面反射分量為時,鏡面反射分量為0,得到,得到specspecmspecshismhni)(specspecmspecshismhni0 ,)(max會聚指數越大,則高光區(qū)域越窄會聚指數越大,則高光區(qū)域越窄當會聚指數較小時(高光區(qū)域較大),隨著當會聚指數較小時(高光區(qū)域較大),隨著sh

14、ading算法的算法的改善,改善,phong高光反而會出現(xiàn)缺陷。這會在高光反而會出現(xiàn)缺陷。這會在(n.l)1時,為時,為downsampling;當當a require “n” passes for all geometry # of passes is practically unboundedvt-buffer require 1 pass for all static geometry # of samples depends on implementation limits multiple rendering for moving objects # could be 2-4 for

15、 slow moving objects # more for fast moving objectsvt-buffer 和和 accumulation buffer與與fsaa(全屏(全屏幕反走樣)相比的幕反走樣)相比的共同優(yōu)點共同優(yōu)點:在一個象素單元內,:在一個象素單元內,采樣模板不一定是均勻的。采樣模板不一定是均勻的。v每個每個pass與其它與其它pass無關,因而可采用均勻模板無關,因而可采用均勻模板外其它的模板,如外其它的模板,如(0,0.25), (0.5,0.0), (0.75, 0.5), (0.25,0.75)。v上述模板稱為上述模板稱為旋轉網格超采樣旋轉網格超采樣(rota

16、ted grid super-sampling, 簡稱簡稱 rgss),這種模板對于接,這種模板對于接近水平或垂直的直線能提供更好的反走樣效果,近水平或垂直的直線能提供更好的反走樣效果,而這也是應用中最需要的。而這也是應用中最需要的。rgssvmultisampling:在單個:在單個pass中對每個象素采樣多中對每個象素采樣多次的方法。次的方法。va-buffer是一種是一種multisampling方法,由方法,由carpenter提出。通常用于在軟件中生成高質量提出。通常用于在軟件中生成高質量的繪制結果,但不能實時生成。它的主要思想是的繪制結果,但不能實時生成。它的主要思想是計算覆蓋象素

17、網格單元的多邊形逼近。計算覆蓋象素網格單元的多邊形逼近。v是一種是一種邊反走樣方法邊反走樣方法,可以繪制透明物體。,可以繪制透明物體。v在硬件在硬件a-buffer中,為了節(jié)省計算量,象素網格中,為了節(jié)省計算量,象素網格單元對應的多邊形光亮度值只計算一次,所有象單元對應的多邊形光亮度值只計算一次,所有象素網格單元內的采樣點共享該光亮度值。因此,素網格單元內的采樣點共享該光亮度值。因此,基本的基本的a-buffer算法不能處理紋理和陰影的反走算法不能處理紋理和陰影的反走樣。樣。v在在a-buffer中,對于每個屏幕網格單元,每個繪中,對于每個屏幕網格單元,每個繪制的多邊形生成一個制的多邊形生成一

18、個coverage mask(完全或部分完全或部分覆蓋象素單元覆蓋象素單元) 多邊形的角多邊形的角 部分覆蓋象素網格單元,網格單元細分為部分覆蓋象素網格單元,網格單元細分為4x4的子網格。覆蓋的子網格單元為的子網格。覆蓋的子網格單元為1,其余為,其余為0。16位的位的mask為:為:0000 0111 1111 01110 0 0 00 1 1 10 1 1 11 1 1 1v一般的反走樣方法一個采樣點只影響一個象素,一般的反走樣方法一個采樣點只影響一個象素, nvidia的的quincunx方法單個采樣點影響的象方法單個采樣點影響的象素多于一個。素多于一個。1/21/81/81/81/8由于

19、共享,每個象由于共享,每個象素平均只需素平均只需2個采樣個采樣點,但是效果卻比點,但是效果卻比2個采樣點的全屏幕個采樣點的全屏幕反走樣好不少。反走樣好不少。v由于場景中可能包含在屏幕上投影非常小的物由于場景中可能包含在屏幕上投影非常小的物體,因此規(guī)整的采樣模板總會存在某種形式的體,因此規(guī)整的采樣模板總會存在某種形式的走樣。走樣。v解決方案:把采樣點在象素內隨機分布,每個解決方案:把采樣點在象素內隨機分布,每個象素有不同的采樣模板。這種方法稱為象素有不同的采樣模板。這種方法稱為隨機采隨機采樣樣。v隨機采樣原理隨機采樣原理:用噪聲取代重復性的走樣現(xiàn)象,:用噪聲取代重復性的走樣現(xiàn)象,人的視覺系統(tǒng)更能

20、接收。人的視覺系統(tǒng)更能接收。v最常用的隨機采樣方法為最常用的隨機采樣方法為jittering,這是一種,這是一種分層采樣分層采樣(stratified sampling).v原理原理: 假設每個象素需要假設每個象素需要n個采樣點,我們把象個采樣點,我們把象素區(qū)域分成素區(qū)域分成n個面積相同的區(qū)域,把每個采樣個面積相同的區(qū)域,把每個采樣點隨機地置于其中的一個區(qū)域。象素的最終顏點隨機地置于其中的一個區(qū)域。象素的最終顏色取為采樣點的加權平均。色取為采樣點的加權平均。每個象素劃分成每個象素劃分成3x3的子單元,每個采樣點在子的子單元,每個采樣點在子單元內隨機出現(xiàn)單元內隨機出現(xiàn)v采用交替隨機采樣可以把由于

21、每個象素采用相采用交替隨機采樣可以把由于每個象素采用相同模板引起的走樣缺陷最小化。同模板引起的走樣缺陷最小化。采用累積緩存反走樣,采用累積緩存反走樣,每個象素采樣四個點每個象素采樣四個點每個象素的采樣模板不相每個象素的采樣模板不相同,模板交替。同,模板交替。效果好!效果好!可見重復模板走樣現(xiàn)象可見重復模板走樣現(xiàn)象v在實時繪制中,透明效果的處理通常是簡單化和在實時繪制中,透明效果的處理通常是簡單化和有限的。有限的。v如下效果通常沒有:折射、透明物體厚度引起的如下效果通常沒有:折射、透明物體厚度引起的光的衰減等光的衰減等v有一些透明效果總比一點透明效果都沒有好!有一些透明效果總比一點透明效果都沒有

22、好!v通過把表面顏色與其后面物體的顏色相混合,實通過把表面顏色與其后面物體的顏色相混合,實時繪制系統(tǒng)確實提供了繪制半透明表面的能力。時繪制系統(tǒng)確實提供了繪制半透明表面的能力。v為了把透明物體的顏色與其后面物體的顏色相混為了把透明物體的顏色與其后面物體的顏色相混合,需要合,需要alpha blendingv當物體繪制到屏幕上時,除了當物體繪制到屏幕上時,除了rgb顏色值、顏色值、z深深度外,度外,還可以有一個還可以有一個可選項可選項(rgba或者或者rgb )。v值用來描述物體在給定象素的值用來描述物體在給定象素的不透明度不透明度,1.0表表示不透明示不透明(完全覆蓋完全覆蓋); 0.0表示完全

23、不被隱藏表示完全不被隱藏;v為了使一個物體看起來透明為了使一個物體看起來透明,我們把它繪制到已我們把它繪制到已有場景的上面有場景的上面,其其值小于值小于1.0;vblending通過通過over操作來實現(xiàn)操作來實現(xiàn):v很顯然很顯然,當當=1,即物體不透明時即物體不透明時,該象素的顏色變該象素的顏色變?yōu)楫斍拔矬w的顏色為當前物體的顏色.,)1 (為合成后的顏色色為混合前目標物體的顏值為透明物體的為透明物體的顏色其中odssdsssoccccccv為了繪制透明物體為了繪制透明物體, 場景通常需要排序。首先繪場景通常需要排序。首先繪制不透明物體,然后把不透明物體以制不透明物體,然后把不透明物體以bac

24、k to front的次序與其進行混合。由于混合操作是與的次序與其進行混合。由于混合操作是與次序有關的,以任意次序繪制會導致不正確的結次序有關的,以任意次序繪制會導致不正確的結果。果。以任意次序繪制透明物以任意次序繪制透明物體,結果不正確體,結果不正確以后向前的次序繪制,以后向前的次序繪制,結果正確結果正確以任意次序繪制透明物以任意次序繪制透明物體,結果不正確體,結果不正確從后向前的次序繪制從后向前的次序繪制(采用采用depth-peeling技技術術),結果正確結果正確v當無法進行場景排序時,最好用當無法進行場景排序時,最好用z緩存進行排序緩存進行排序測試。但繪制透明物體時,其測試。但繪制透

25、明物體時,其z值不更新。這樣值不更新。這樣在繪制結果中,至少所有的透明物體都會出現(xiàn)。在繪制結果中,至少所有的透明物體都會出現(xiàn)。v不需要排序的方法:不需要排序的方法: 采用該方程,由于透明物體的采用該方程,由于透明物體的alpha值不影響目值不影響目標物體,繪制次序可以任意。但結果看起來不自標物體,繪制次序可以任意。但結果看起來不自然。然。dssocccvover操作在真實場景和虛擬場景的混合中非常有操作在真實場景和虛擬場景的混合中非常有用。這個過程稱為合成(用。這個過程稱為合成(compositing)。)。v在合成中,每個象素除了在合成中,每個象素除了rgb值外,還有值外,還有alpha值。

26、值。valpha通道有時也稱遮罩(通道有時也稱遮罩(matte),它顯示了物),它顯示了物體的輪廓形狀。體的輪廓形狀。v存貯存貯rgba圖像的最常用方法為預乘圖像的最常用方法為預乘alpha(pre multiplied alphas)。在該方法中,)。在該方法中,rgb值在存值在存貯之前,先乘上貯之前,先乘上alpha值。此時值。此時over操作變得更操作變得更有效:有效:值為預存的其中rgb)1 (sdssoccccv與與alpha通道相關的另一個概念為色鍵技術。通道相關的另一個概念為色鍵技術。v演員在演員在籃色籃色、黃色或綠色屏幕前拍攝,然后與、黃色或綠色屏幕前拍攝,然后與背景混合。其原

27、理為把該顏色當成透明色。背景混合。其原理為把該顏色當成透明色。v在電影工業(yè)中,該過程稱為在電影工業(yè)中,該過程稱為blue screen matting.v在實時圖形學中,霧是一種可加到最終圖像的在實時圖形學中,霧是一種可加到最終圖像的大氣現(xiàn)象。大氣現(xiàn)象。無霧效果無霧效果有霧效果有霧效果v增強室外場景的增強室外場景的真實感真實感v由于霧的效果隨著離視點距離的增加而真強,由于霧的效果隨著離視點距離的增加而真強,因此它有助于幫助觀察者因此它有助于幫助觀察者判斷物體的遠近判斷物體的遠近。v有助于提供有助于提供光滑的光滑的通過遠平面實現(xiàn)的通過遠平面實現(xiàn)的物體剔除物體剔除。如果把霧的效果設置成在接近遠平面

28、的地方由如果把霧的效果設置成在接近遠平面的地方由于濃霧而不可見,則在遠平面外的物體看起來于濃霧而不可見,則在遠平面外的物體看起來可自然隱退。如果沒有霧的效果,遠平面外的可自然隱退。如果沒有霧的效果,遠平面外的物體會突然出現(xiàn)或消失。物體會突然出現(xiàn)或消失。v霧的效果霧的效果可用硬件實現(xiàn)可用硬件實現(xiàn),不會或帶來很少的額,不會或帶來很少的額外計算量。外計算量。v假設霧的顏色(由用戶指定)為假設霧的顏色(由用戶指定)為cf,霧因子,霧因子(fog factor)為)為f,待繪制物體的顏色為,待繪制物體的顏色為cs ,則象素的最終顏色則象素的最終顏色cp為:為:v在上述方程中,在上述方程中,f 的值不是很

29、直觀,它隨離視的值不是很直觀,它隨離視點的距離而遞減。這是點的距離而遞減。這是opengl和和directx采采用的方程,其好處是可使計算用的方程,其好處是可使計算f的方程變得簡的方程變得簡單。單。v另一種描述方式為另一種描述方式為f = 1- ffspffccc)1 ( v指數霧指數霧(exponential fog):v平方指數霧平方指數霧(squared exponential fog): 其中其中df為控制霧濃度的參數。計算得到為控制霧濃度的參數。計算得到 f 以后,以后,把結果截取把結果截取(clamp)到到0,1pfzdef2)(pfzdefv在硬件加速中,有時采用查找表來實現(xiàn)霧函

30、數。在硬件加速中,有時采用查找表來實現(xiàn)霧函數。v對于給定的一些深度值,先計算并存貯好其霧對于給定的一些深度值,先計算并存貯好其霧因子的值。對于任一深度值,霧因子從查找表因子的值。對于任一深度值,霧因子從查找表直接讀?。ɑ驗樽罱咏鼉蓚€值的線性插值)。直接讀?。ɑ驗樽罱咏鼉蓚€值的線性插值)。v查找表中可以存貯任意值(而不僅僅是上面的查找表中可以存貯任意值(而不僅僅是上面的線性或指數函數),從而線性或指數函數),從而生成一些特殊效果生成一些特殊效果。v霧既可以在霧既可以在頂點層頂點層也可以在也可以在象素層象素層計算。計算。v頂點層:頂點層:霧的效果在光照明方程計算,其它地霧的效果在光照明方程計算,其它地方用方用gouraud shading插值。插值。v象素層象素層:用

溫馨提示

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

評論

0/150

提交評論