三維形體的真實感顯示_第1頁
三維形體的真實感顯示_第2頁
三維形體的真實感顯示_第3頁
三維形體的真實感顯示_第4頁
三維形體的真實感顯示_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、三維形體的真實感顯示10 三維形體的真實感顯示 1. 簡單效果的濃淡圖生成2. 一般性效果圖形生成3. 真實感效果圖生成 1) 全局照顧模型 2) 光線跟蹤 3) 輻射度算法4. 紋理映射光照效果影響因素 當光照射到物體外表時,物體對光會發生反射、透射、吸收、衍射、折射和干預。 被物體吸收的局部轉化為熱。 顏色是人對光的生理反映,反射、透射的光進入人的視覺系統,使我們能看見物體的顏色。 為模擬這一現象,我們建立一些數學模型來替代復雜的物理模型。這些模型就稱為明暗效應模型或者光照明模型。考慮:我們所見物體的顏色是怎樣形成的? 影響觀察物體顏色的主要因素有哪些? 在不考慮人的生理因素的情況下,物體

2、的顏色與光源顏色、物體外表物理特性、外表粗糙度、周邊環境等因素有關。 在正常的情況下,光沿著直線傳播,當光遇到介質不同的外表時,會產生反射和折射現象,而且在反射和折射的時候,它們遵循反射定律和折射定律。研究光照模型的目的: 確定物體外表的每一個多邊形或者多邊形中的每一個點的顏色。10 三維形體的真實感顯示 1. 簡單效果的濃淡圖生成2. 一般性效果圖形生成3. 真實感效果圖生成 1) 全局照顧模型 2) 光線跟蹤 3) 輻射度算法4. 紋理映射1. 簡單效果的濃淡圖生成1單顏色填充多邊形 算法思路:根據多面體外表的平面法矢決定顏色值,直接調用OpenGL的多邊形填充算法即可。 算法簡單,但輪廓

3、清楚,各多邊形之間過渡不光滑。2Gouraud模型 算法思想: 為使多邊形邊界之間光滑顯示,先計算多邊形各頂點光強,后通過雙線性插值,計算多邊形內各點光強。 能保證多邊形邊界顏色的連續性,但高光模糊,有時出現過亮或過暗條紋即馬赫效應。 計算較為簡單,OpenGL算法已實現硬件加速。算法步驟:For每一個三角形 1) 計算多邊形頂點的平均法向; 2) 根據根本光照模型計算頂點的平均光強; 3) 通過線性插值,計算多邊形的邊上的各點光強; 4) 通過線性插值,計算多邊形內部各點的光強。10 三維形體的真實感顯示 1. 簡單效果的濃淡圖生成2. 一般性效果圖形生成3. 真實感效果圖生成 1) 全局照

4、顧模型 2) 光線跟蹤 3) 輻射度算法4. 紋理映射2. 一般性效果圖形生成1簡單光照明模型-Phong模型 簡單光照明模型模擬物體外表對光的反射作用。 光源被假定為點光源,反射作用被細分為鏡面反射(Specula Reflection)和漫反射(Diffuse Reflection)。 簡單光照明模型只考慮物體對直接光照的反射作用,而物體間的光反射作用,只用環境光(Ambient Light)來表示。Phong模型是一種簡單光照明模型不妨設: 入射光強為Ip 物體外表上點P 的法向為N 從點P指向光源的向量為L 兩者間的夾角為圖 漫反射A 理想漫反射 當光源來自一個方向時,漫反射光均勻向各

5、方向傳播,與視點無關,它是由外表的粗糙不平引起的,因此可假定漫反射光的空間分布是均勻的。P 假設 Ip 表示點光源的強度,kd 表示物體外表漫反射系數,那么漫反射方程可描繪為: ( 0 假設N為物體外表的單位法向量,L為物體外表上一點指向光源的單位矢量,那么: 假設有多個光源,那么光強度計算式為:圖 漫反射B鏡面反射光 對于理想鏡面,反射光集中在一個方向,并遵守反射定律。 對一般的光滑外表,反射光集中在一個范圍內,且由反射定律決定的反射方向光強最大。 圖 鏡面反射光 因此,對于同一點來說,從不同位置所觀察到的鏡面反射光強是不同的。鏡面反射光強可表示為: Ks是與物體有關的鏡面反射系數,a 為視

6、線方向V與反射方向R的夾角,n為反射指數,反映了物體外表的光澤程度,一般為12000,數目越大物體外表越光滑。 鏡面反射光將會在反射方向附近形成很亮的光斑,稱為高光現象。 鏡面反射光產生的高光區域只反映光源的顏色 將V和R都格式化為單位向量,鏡面反射光強可表示為:式中: 對多個光源: 圖 鏡面反射光 C環境光 環境光是指光源間接對物體的影響,是在物體和環境之間屢次反射,最終到達平衡時的一種光。 近似地認為同一環境下的環境光,其光強分布是均勻的,它在任何一個方向上的分布都一樣。例如,透過厚厚云層的陽光就可以稱為環境光。 在簡單光照明模型中,用一個常數來模擬環境光,用式子表示為: 其中:Ia 為環

7、境光的光強 Ka為物體對環境光的反射系數 DPhong光照明模型 綜上分析,Phong光照明模型表述為:由物體外表上一點 P 反射到視點的光強 I 為環境光的反射光強 I e、理想漫反射光強 I d、和鏡面反射光 I s 的總和,即:按R、G、B三種顏色分量展開計算得:I I e I d I s由此可得: 用Phong模型進展計算時,對物體外表上每個點P,均需計算光線的反射方向R,再由V計算RV,為減少計算,可作如下假設: a) 光源在無窮遠處,即光線方向L為常數; b) 視點在無窮遠處,即視線方向V為常數; c) 為防止計算反射方向R,用HN近似代替RV 這里H為L和V的平分向量 ,即: H

8、 LV/ | LV | 注意:Phong模型對物體外表的每一點的光強進展計算,顯然其計算量較大。EPhong模型計算實例 圖中可以看出高光指數n、漫反射Kd及鏡面系數Ks對顯示效果的影響 亮點集中 面積 亮度 Phong光照明模型是真實感圖形學中提出的第一個有影響的光照明模型,生成圖象的真實度已到達可承受程度。 但在實際應用中,它是一個經歷模型,還具有以下的一些問題: 用Phong模型顯示出的物體象塑料,沒有質感; 沒有考慮間隔 對光照強度的衰減影響; 環境光是常量,沒有考慮物體之間互相的反射光; 鏡面反射的顏色是光源的顏色,與物體的材料無關; 鏡面反射的計算在入射角很大時會產生失真; Pho

9、ng模型是簡單的局部光照模型,對物體間互相反射及折射、陰影處理欠缺等。 2濃淡圖繪制算法 通過前面介紹的Gouraud模型、Phong光照模型可計算物體外表上點的顏色值。 為了顯示形體的三維真實感效果圖,下面介紹多面體濃淡圖的如何繪制。 由于空間三維物體是連續點集。顯然直接計算點的顏色將無法確定計算采樣點的位置和數目。 事實上,我們僅能看到屏幕所能顯示的區域。假設可以求得屏幕上每一個象素點所對應的物體上點的顏色,這樣就可繪制整個圖形。 為了得到屏幕上某象素點所對應的物體上點的顏色,假定作經過該象素點的一條射線,射線平行于觀察視線,那么射線與多面體物體可能有多個交點。 假設物體不是透明的,那么處

10、于最前面的交點的顏色即為所求,如右圖所示。 最簡單的算法Z緩沖區ZBuffer算法 為計算物體外表上對應象素點的顏色 ,用幀緩存器存放每個象素顏色按光照模型計算,用深度緩存空間來存放每個象素深度值Z,稱為Z緩沖器即ZBuffer。A Z緩沖器(Z-Buffer)算法 cz繪制時思路: 1Z 緩沖器中每個單元值是對應象素點所反映物體對象的 z 坐標值,初值取成 z 的極小值。 2將待處理的景物外表上的采樣點變換到圖像空間,計算其深度值 z。 3并根據采樣點在屏幕上的投影位置,將其 z 值與已存貯在 z 緩存器中相應象素處的原可見點的深度值進展比較。 4假設該采樣點位于Z緩存器所記錄的可見點之前,

11、那么將該采樣點處的外表顏色填入幀緩存器相應象素,同時用其深度值更新 z 緩存器存貯的深度值。否那么,不寫入也不更新。Z-Buffer算法 for (i=0,1,m ) /m:窗口程度方向象素數目 for (j=1,n / n:窗口垂直方向象素數目 用背風光初始化幀緩存CB:CB(i,j)=背風光; 用最小Z值初始化深度緩存:ZB(i,j)=Zmin; for(每一個多邊形 p) /算法1 將該多邊形進展投影變換; 掃描轉換該多邊形在視平面上的投影多邊形; for (該多邊形所覆蓋的每個象素(i,j) ) 計算該多邊形在該象素的深度值Zi,j; if( Zi,j ZB(i,j) ZB(i,j)

12、Zi,j; 計算該多邊形在該象素的顏色值Ci,j; CB(i,j)= Ci,j; /for p/注:對投影多邊形進展裁剪得到有效區域,可加快顯示速度 Z-Buffer算法在象素級上以近物取代遠物。形體在屏幕上的出現順序是無關緊要的。這種取代方法實現起來遠比總體排序靈敏簡單,有利于硬件實現。 然而Z-Buffer算法存在缺點:占用空間大,沒有利用圖形的相關性與連續性。 Z-Buffer算法以算法簡單著稱,但也以占空間大而知名。 Z-Buffer算法需要開一個與圖象大小相等的緩存數組ZB,可一次性顯示。 當然,也可只用一個深度緩存變量zb,但需逐點計算顯示,顯示效率低下。 B掃描線Z-buffer

13、算法 如何減少Z-buffer的緩沖內存,并利用相關性進步點與多邊形的包含性測試和深度計算速度,就得到掃描線Z-buffer算法。 從最上掃描線開場向下對每條掃描線作處理。對每條掃描線來說,把相應的幀緩沖器單元置成底色,在z緩沖器中存放z的極小值。 與Zbuffer算法相比,掃描線Zbuffer將整個繪圖窗口內的消隱問題分解到一條條掃描線上解決,使所需的Z緩沖器大大減少。 對每個多邊形檢查它在oxy平面上的投影和當前掃描線是否相交如右上圖,假設不相交那么跳過該多邊形; 假設相交那么掃描線和多邊形邊界交點一定成對出現,對每對交點間的象素計算多邊形所在平面對應點的深度(即 z 值),并和z緩沖器中

14、相應深度值比較。 對所有多邊形和幀緩沖器每一行都作上述處理。利用活性多邊形Y、活化邊表處理相鄰掃描線和象素的連接性,進步算法效率。交線C 區間掃描線算法 掃描線z緩沖器算法將消隱問題分散到每一條掃描線上去解決,這樣問題變得較簡單了。但在每個象素處計算多邊形z值的工作量仍是很大。 實際上每條掃描線被各多邊形邊界在oxy平面上的投影分割成為數不多的區間如右圖,每一個區間上只顯示一個面。 因此,只要在區間上任一點處,找出在該處z值最大的一個面,這個區間上的每個象素就用這個面的顏色來顯示。這就是所謂區間掃描線算法。掃描面Oxz 區間掃描線算法使得在一條掃描線上每個區間只計算一次深度值,不需要Z緩沖器。

15、 它是把當前掃描線與各多邊形在投影平面的投影的交點進展排序后,使掃描線分為假設干子區間。 因此,只要在該區間任一點處找出在該處 z 值最大的一個面,這個區間上的每一個象素就用這個面的顏色來顯示。 當然,如今計算機的硬件開展很快,緩存數組所耗空間已不是障礙。Phong模型的區間掃描線繪制算法例如1 10 三維形體的真實感顯示 1. 簡單效果的濃淡圖生成2. 一般性效果圖形生成3. 真實感效果圖生成 1) 全局照顧模型 2) 光線跟蹤 3) 輻射度算法4. 紋理映射1整體光照明模型及真實感顯示 簡單光照明模型和局部光照明模型,雖然可以產生物體的真實感圖象,但它們都只是處理光源直接照射物體外表的光強

16、計算,不能很好的模擬光的折射、反射和陰影等,也不能用來表示物體間的互相光照明影響。 而基于簡單光照明模型的光透射模型,雖然可以模擬光的折射,但是這種折射的計算范圍很小,不能很好的模擬多個透明體之間的復雜光照明現象。 對于上述的這些問題,就必需要有一個更準確的光照明模型。整體光照明模型就是這樣的一種模型,它是相對于局部光照明模型而言的。在現有的整體光照明模型中,主要有光線跟蹤和輻射度兩種繪制方法。 2光線跟蹤算法的根本思想 光線跟蹤算法是真實感圖形學中的主要算法之一,算法具有原理簡單、實現方便和可以生成各種逼真的視覺效果等優點。 在真實感圖形學對光線跟蹤算法的研究中,Whitted提出了第一個整

17、體光照模型,并給出一般性光線跟蹤算法的范例,綜合考慮了光的反射、折射透射、陰影等。 光線跟綜過程示意圖 簡單光透射模型把透射光分為理想漫透射和規那么透射。 由光源發出的光稱為直接光,物體對直接光的反射或折射稱為直接反射和直接折射。 把物體外表間對光的反射和折射稱為間接光,間接反射,間接折射。這是光線在物體間的傳播方式,是光線跟蹤算法的根底。 由光源發出的光到達物體外表后,產生反射和折射,簡單光照明模型和光透射模型模擬了這兩種現象。 在簡單光照明模型中,反射被分為理想漫反射和鏡面反射光。 最根本的光線跟蹤算法是跟蹤鏡面反射和折射。 從光源發出的光遇到物體的外表,發生反射和折射,光就改變方向,沿著

18、反射方向和折射方向繼續前進,直到遇到新的物體。 但是光源發出光線,經反射與折射,只有很少局部可以進入人的眼睛。 因此實際光線跟蹤算法的跟蹤方向與光傳播的方向是相反的,而是視線跟蹤。 由視點與象素(x,y)發出一根射線,與第一個物體相交后,在其反射與折射方向上進展跟蹤,如以下圖。 此時,光線在離視點最近的景物外表交點處的走向有以下三種可能: 1) 當前交點所在的景物外表為理想漫射面。跟蹤完畢。 2) 當前所在的景物外表為理想鏡面光線沿其鏡面反射方向繼續跟蹤。 3) 當前交點所在的景物外表為規那么透射面光線沿其規那么透射方向繼續跟蹤。 顯然,上述過程是一遞歸跟蹤過程。對每一根穿過屏幕象素中心的光線

19、的跟蹤構成了一棵二義樹。 雖然光線在景物間的反射和折射可以無限地進展下,但在實際計算時不可能做無休止的光線跟蹤,因此需要給出光線跟蹤的終判條件。如設定跟蹤層數,光亮度小于給定值等條件。何時跟蹤完畢?假設無交點I=0,退出3輻射度方法 輻射度方法是繼光線跟蹤算法后,真實感圖形繪制技術的一個重要進展。 光線跟蹤算法成功地模擬了景物外表間的鏡面反射、規那么透射及陰影等整體光照效果。 由于光線跟蹤算法的采樣特性和局部光照模型的不完善性,該方法難于模擬景物外表之間的多重漫反射效果,因此不能反映色彩浸透現象。 將熱輻射工程中的輻射度方法引入到計算機圖形學中,用輻射度方法成功地模擬了理想漫反射外表間的多重漫

20、反射效果。 經過十多年的開展,輻射度方法模擬的場景越來越復雜,圖形效果越來越真實。 與前面介紹的光照模型與繪制方法有所不同,輻射度方法基于物理學的能量平衡原理,它采用數值求解技術來近似每一個景物外表的輻射度分布。 在圖形繪制場景中,景物外表的輻射度分布與視點選取無關,輻射度方法是一個視點獨立(View independent)的算法。 由于其視點無關性,使之可廣泛應用于虛擬環境的遨游(walkthrough)系統中。 10 三維形體的真實感顯示 1. 簡單效果的濃淡圖生成2. 一般性效果圖形生成3. 真實感效果圖生成 1) 全局照顧模型 2) 光線跟蹤 3) 輻射度算法4. 紋理映射二維紋理映射本質上是從二維紋理平面到三維景物外表的一個映射(如右圖)。 通常,二維紋理在一個紋理空間s,t坐標系內的矩形區域中用光強度值來定義,其中每一點處,均定義有一灰度值或顏色值。 而場景中的物體外表那么在景物空間u,v坐標系中定義的,投影平面上的象素點是在圖象空間內的直角坐標系xoy中定義的。1二維紋理映射:材質貼圖在繪制時,應用紋理映射方法可以方便地確定景物外表上任一可見點P處在紋理空間中的對應位置(s,t); 而(s,t)處所定義的紋理值或顏色值即描繪了景物外表在P處的某種紋理屬性。 把該點處的紋理顏色值作為漫反射系數代入

溫馨提示

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

評論

0/150

提交評論