• 沒有找到結果。

漸進式網格模型(Progressive Meshes)

第二章 背景知識與相關研究

2.3 多層次精細度

2.3.1 漸進式網格模型(Progressive Meshes)

Hoppe 所提出漸進式網格模型(progressive meshes, PM)是最廣為使用 的一種連續多層次精細度方式[Hoppe96]。其觀念為將模型轉換為最粗糙 的基礎模型(base mesh)與一連串頂點分裂(vertex split)的步驟,以達到任意 精細度之目標。

以圖 2 為例子,由左圖到右圖的過程之中,左圖的vtvs合併為右圖的 vs,邊線vtvs消失,鄰近頂點則都與新的vs相連,我們稱這個步驟為邊線摺 疊(edge collapse)。反之,從右圖到左圖的過程之中,vt再度產生,vs回到 原本的位置上,vtvs亦再度出現,原本與vt相連的頂點都恢復連線,我們稱

這個過程為頂點分裂。

漸進式網格模型的建立方式便是從最精細的模型開始,透過量測任何 一邊線進行邊線摺疊前後所造成的誤差來排序,逐一挑選誤差最小之邊線 進行邊線摺疊,直到無法簡化為止,此即為基礎模型。因此在系統執行階 段,我們可以從基礎模型開始,依照頂點分裂的步驟逐一還原,直到所須 要之精細度為止。

圖 2 邊線摺疊與頂點分裂[Hoppe96]

欲量測邊線摺疊前後所造成的誤差,Hoppe 所使用的方式是透過量測與 幾何變化相關的「能量」總合[Hoppe96]。Garland 與 Heckbert 透過計算摺 疊後頂點到平面距離平方和的二次方誤差評量(quadric error metric, QEM)

[GH97]。Cohen 等人使用量測貼圖對外觀影響的外觀保持式化簡法 (appearance preserving simplification, APS)[COM98]。Lindstom 等人提出 量測化簡前後影像之均方根(root-mean-square)的影像導向式化簡法(image- driven simplification, IDS)[LT00]。

2.3.2 視點相依之多層次精細度(View-Dependent Level-of-Details)

由於漸進式網格模型(Progressive Meshes)屬於視點無關之方式,因此無 論視點為何所產生的簡化模型都是同一份。由於模型表面對不同視點觀察 時有不同的重要性,如背向視點的面無法被看見,因此可以盡量簡化,而 為於輪廓線上的邊要盡量保留以降低與原始幾何的差異。視點相依之多層 次精細度(view-dependent level-of-details)即是為了達到此一目標[XV96]

[Hoppe97][LE97]。其觀念為將連續的多層次精細度模型上的簡化與精細 順序依據其相依性關係建立成一樹狀結構,稱為頂點階層(vertex

hierarchy)。

圖 3 頂點階層式意圖

以 Hoppe 所使用的提出頂點階層(vertex hierarchy)為例[Hoppe97],由 於其使用邊線摺疊為模型簡化的單元,因此其頂點階層上的每個節點為簡 化過程所產生的頂點資料,而其子節點為頂點經過一次頂點分裂後所產生 的兩新頂點,由此關係可得到數個二元樹(binary tree)架構,其中所有二元 數的根節點(root node)所形成的集合代表基礎模型(base mesh),而其所有 葉節點(leaf nodes)所形成的集合代表原始幾何。而在該二元數架構上任意 裁切出一切線即為一合理的簡化階段。如圖 3 所示,v1 v2 v3所形成的集合 表示基礎模型,而頂點v5的兩個子節點v6 v7分別表示由v5分裂之後所產生 的新頂點。而其中虛線所成的集合表示原始幾何。

在其他的應用上,Lindstrom 等人量測地表化簡後的幾何誤差,選擇化 簡部位與化簡程度[LKR+96]。Hoppe 將地表(terrain)模型分成數塊,以遞 迴方式簡化各區塊之後加以合併,以實作應用於地表的視點相依多層次精 細度[Hoppe98]。Xia 等人利用法向量錐判斷顯像結果,引導精細化過程

[XEV97]。

第三章

以頂點階層為基礎的預先計算輻射轉換

3.1 系統架構綱要

我們的目標是建立一個可動態改變點光源之基於預先計算區域幅射轉 換(pre-computed local radiance transfer)的顯像系統。要達到可動態移動點光 源之目的,我們首先必須對場景光源進行均勻(uniform)的取樣,並針對每 個樣本光源計算其對場景產生的預先計算區域幅射轉換係數。

為了加速光源取樣以及減少預先計算區域幅射轉換係數的資料量,我 們將原始模型以頂點階層(vertex hierarchy)[Hoppe97]的方式表示。對每 一個樣本光源,我們根據該點光源對場景幾何產生的光影變化決定出一條 在頂點階層上的裁切線(cut or vertex front),並只對保留在裁切線上的頂點 計算預先計算區域幅射轉換係數。

在系統執行階段,針對每一個場景點光源,我們可以經由其位置與樣 本光源之關係內插出該光源的預先計算區域幅射轉換係數值。接著根據視 點位置所產生的光影與幾何變化可以決定一條裁切線來代表原始模型。由 於該裁切線不一定會與計算樣本光源時所用的裁切線一樣,某些頂點可能 會缺乏對應的係數,因此我們必須從其他已經具有係數的頂點來內插出係 數。當所有裁切線上的頂點都得到係數值後,我們便根據該係數來進行預 先計算幅射轉換的顯像。圖 4 說明本系統的執行流程,其中虛線以上的部 分為預先計算的工作,虛線以下的則為系統執行階段的工作。

在接下來的章節中,3.2 說明頂點階層的建立過程。3.3 介紹根據光源 樣本位置簡化模型與係數減量的方法。3.4 為系統執行階段根據視點位置簡 化模型以及內插係數的方法。

建立漸進式網格模型 原始網格模型

建立頂點階層

決定裁切線

產生化簡模型 點光源樣本位置

預先計算區域輻射轉換

推算光源對應的係數 點光源位置

決定裁切線

產生化簡模型 視點位置

顯像 內插缺少的係數

圖 4 系統流程概要

圖 5 半邊線摺疊示意圖

3.2 頂點階層建立

我們的系統以頂點階層作為模型表示的資料結構,在前置計算或系統 執行階段都是基於頂點階層來操作,因此在本節說明頂點階層的建立方式。

我們的頂點階層建立方式是基於 Hoppe 所提出的方法[Hoppe97]。首 先將原始模型利用漸進式網格模型(progressive meshes)架構[Hoppe96]產 生連續的多層次精細度網格,其中我們採用 Garland 與 Heckbert 所提出的二 次誤差計量(Quadric Error Metrics (QEM))[GH97]當成模型簡化誤差的評 量方式。

在模型簡化的過程中,我們採用半邊線摺疊(half-edge collapse)做為模 型簡化的基本運算子。圖 5 為一範例,假設cp為欲移除之邊,半邊線摺疊 的做法為將頂點c 合併至頂點p,同時移除掉邊cp與其相臨的兩三角形。

在產生連續的多層次精細度網格後,我們根據漸進式網格模型上的半 邊線摺疊順序建構出頂點階層。其中根節點(root nodes)表示最粗糙的網格 層次上的所有頂點,而在階層中的每個節點具有兩個子節點表示該頂點經 過頂點分裂之後產生的兩頂點資訊。

圖 6 頂點摺疊示意圖[XEV97]

雖然基於頂點階層,我們可以局部精細化物體的表面,然而邊線摺疊 與頂點分裂的操作並非毫無先後優先次序可言。以圖 6 為例子,如果照著 A 到 B 到 C 的順序進行邊線摺疊,可以得到正常的結果;但若照著 A 到 D 的 順序進行摺疊,則會產生灰色區域的頂點摺疊(folding)現象。因此我們必須 知道鄰近頂點之間的頂點摺疊順序以維持頂點的相依性(dependency)。

我們以 El-Sana 與 Varshney[EV99]的方法來檢查頂點相依性,在頂 點階層建立的過程之中,對新產生的節點按照次序給予連續編號。因此在 進行頂點分裂之前,檢查鄰近頂點的編號是否皆小於該頂點的編號;在進 行邊線摺疊之前,檢查鄰近頂點的父節點編號是否皆大於該頂點的父節點 編號。當以上的檢查通過了,才允許頂點分裂或邊線摺疊。

節點中另外一項重要的資訊便是頂點在被摺疊之前的鄰近頂點,因為 這些頂點必須比該頂點還早存在,以維持頂點之間的相依性,所以在執行 階段若要推算頂點係數時,可以從這些鄰近頂點取得所需要的資料。

3.3 點光源取樣

在前置計算中,為了達到點光源任意移動的目標,我們必須針對所有 點光源可能出現的位置取樣,並對所有樣本光源計算預先計算區域輻射轉 換,最後將其轉換成球諧係數形式以降低資料量。球諧係數本身可以反映

出頂點的顯像方程式特性,在幾何與能見度改變不大的情況下,鄰近的頂 透過在頂點階層的節點中紀錄其法向量錐(normal corn)資料,用來描述該節 點所涵蓋的所有葉節點的法向量指向範圍。如圖 7 所示,nv代表所有法向

圖 7 法向量錐與背光判斷示意圖

陰影的形成起因於頂點與光源連線之間有其他物體或物體本身遮蔽,

陰影外圍的區域因為被光源直接照射,某些角度看起來可能具有相當高的 亮度,與陰影區域形成強烈的對比,亦為極為明顯的特徵。因此陰影之下 的區域可以降低精細度,但是在光暗交界處附近的頂點必須保持高度精細 度,以維持陰影的形狀。我們以頂點光源的連線與場景進行交會的測試,

檢驗頂點與光源之間是否有遮蔽物,假若這條連線與場景中任何一部分有 所交會,那麼這個頂點落在陰影區域之內。在頂點階層中,如果某節點的 兩個子節點都是屬於陰影的節點,我們可以將這兩個子節點摺疊起來,並 根據同樣的原則來降低精細度。

如果一頂點不屬於背向光源與陰影,則其必會被光線照射到。針對此 類頂點,我們透過計算其與臨近頂點之照度差來排序,並決定是否進行簡 化。由於計算照度需要對每個視點進行顯像動作,為了移除視點所造成的 影響,我們利用其幾何特性來逼近照度效果。

在 Phong[Phong75]反射模型中,將物體的顏色分為環繞光項目(ambient term)、散射光項目(diffuse term)、以及鏡射光項目(specular term)。其中決 定物體大部分顏色的散射光項目為:

) (L N kd

上式的N 是頂點法向量,L是入射光單位向量,兩向量之間的夾角即為入射 角。因此若兩相鄰頂點的入射角相似的時候,我們可以推測這兩個頂點亦 會有類似的散射光項目顏色。我們判斷一邊線是否進行褶疊的方式為計算

nrv

θ

L

其兩端點對點光源之入射角差,當差大於一給定上限時,則此一邊線便不 能褶疊。

圖 8 還原基準檢驗函數

圖 8 為進行光源取樣之模型簡化的完整演算法,我們由頂點階層的底 部開始,針對每個父節點,首先判斷其是否為背向光源或落於陰影內,如

圖 8 為進行光源取樣之模型簡化的完整演算法,我們由頂點階層的底 部開始,針對每個父節點,首先判斷其是否為背向光源或落於陰影內,如

相關文件