以射線為基礎測量視覺相似度
3.1 化簡演算法概要
3.1.1 化簡演算法
我們的視覺相似度成本估計演算法依照上述的化簡流程,加上視覺相似度之成本
估計的計算,使得邊線摺疊對模型視覺相似度的影響是最小的。我們選擇使用半 邊線摺疊(half edge collapsing)做為區域化簡操作,對於每一條邊線 e 可以有兩個 方向性的摺疊方向。如圖 3.1 所示,半邊線摺疊有兩個可能,對每一個可能都要
一般的化簡演算法依以下步驟來進行:
. 對所有可能進行區域化簡的半邊線,計算其初始的化簡成本,根據化簡成本
2. 簡成本最小的半邊線,進行半邊線摺疊,此操作會將
3. 邊線重新計算其化簡成本。
形數目為止。
般的化簡演算法步驟會花太多計算時間在無用的化簡成本之更正計算上,暫緩
.1.2 暫緩估計化簡成本(lazy evaluation)
一般化簡流程中,如圖 3.2(a)做一次半邊線摺疊後,必需把圖 3.2(b)中所有藍
相 1
放到優先權佇列中。
從佇列中挑選並移除化 佇列中六個半邊線去除。
對於化簡區域周圍所有的半
4. 重覆步驟 2,3,4 的步驟,直到化簡至所需要的模型多邊
一
估計化簡成本的機制能避免這無用的計算。
3
collapse
(b) (a)
圖 3.2 (a)對紅箭頭方向進行的半邊線摺疊,(b)所有鄰近化簡影響區域的半邊線 (藍箭頭表示)都必需重新計算其化簡成本。
在
色的半邊線從優先權佇列中取出並重新計算其化簡成本,若模型的平均維度 (degree)為 6 時,每進行一次的化簡需重新計算化簡成本 54 次,這樣的計算量
當的龐大。
進行一次的化簡通常會微量增加周圍邊線的化簡成本,而周圍這些被影響到的邊
上上述的暫緩估計化簡成本的機制,我們所使用的化簡演算法為:
. 對所有可能進行區域化簡的半邊線,計算其初始的化簡成本,並設定每個半
2. 此半邊線為 dirty,則重新
3. 線進行半邊線摺疊,此操作會將佇列中六個半邊線去
4. 簡區域周圍所有的半邊線設定為 dirty,表示其化簡成本非最精確的
5. 2-5,直到化簡至所需要的模型多邊形數目為止。
.2 化簡成本計算
們提出以透過射線來量測模型化簡後的視覺相似性。與影像導向式化簡法 圍 線由於跟被化簡的邊線是在相同的區域,這些邊線的化簡成本也應在佇列的較前 面的部分。當化簡一直進行時,我們會一直重新計算這些成本,而之前計算的成 本值還沒被使用到,又要重新更新其成本,造成重覆計算某些半邊線的成本太多 次。為了避免重覆計算成本,暫緩估計化簡成本之機制[CMO97]將這些被化簡後 影響的半邊線(圖 3.2(b)中藍色邊線)標記為 dirty 且不計算其新的化簡成本。dirty 表示其化簡成本不是最精確的數值,相對於 dirty 的標記則為 clean,表示其化簡 成本是精確的數值。標記為 dirty 的半邊線不重新計算其成本,直到這些 dirty 的 半邊線被排序至佇列最前面時再去計算其實際的成本,將其標記 clean 並在佇列 中重新排序。
加
1
邊線為 clean,並將其在優先權佇列中做排序。
從佇列中挑選並移除化簡成本最小的半邊線,若
計算半邊線化簡成本並設成 clean,並在佇列中重新排序,重覆步驟 2 直到 選到 clean 的半邊線。
將步驟 2 選出來的半邊 除。
對於化 數值。
重覆步驟
3
我
[LT00]不同的是觀察模型變化所取樣的視點位置,影像導向式化簡法在模型包
圓(bounding sphere)半徑兩倍的圓之上取樣視點,並且從每個視點往圓心方向繪 製影像,對於原始模型和化簡後的模型各繪製一張,計算出兩張影像的差距。因 為影像導向式的取樣視點是在整個模型的外圍,在繪製影像時對於凹的區域或模 型的內部區域可能繪製不到或是只能繪製到一點點,在這些區域對於最後的影像 僅只有小部分或跟本沒有影響,由於對影像貢獻很小因此造成這些地方化簡成本 相當低,凹的區域可能因此被填平。這些區域可能只對某些角度的視點來說是可 見的,但因取樣視點關係,讓此區域完全被化簡掉。對於較小的幾何特徵,影像 導向式化簡法將無法保留,因為品質完全取決於影像之解析度,當其所投影至影 像的像素較少時,則很容易就被化簡掉,影響物體的外觀。而影像導向式化簡法 最大的缺點在於化簡速度很慢,因此必需在軟體技術和硬體技術中來加快其化簡 速度。
由於每個化簡的區域操作都只是區域性的,影響的範圍也僅只於區域性而已。我
們的視覺相似度化簡成本的計算,就是在化簡區域周圍平均地取樣一些固定數 們的視覺相似度成本計算只觀察化簡的區域,如圖 3.1 中右邊化簡後影響的區域 為有上顏色的區域即為因化簡被影響的區域,在這區域之外的網格並不會改變。
我們取樣視點僅在化簡區域的周圍,只觀察化簡前後區域性的變化。與影像導向 式化簡法相比,我們對於每一個化簡區域操作給予更平均的化簡機會。我們是透 過射線測量模型外觀的顏色變化,一個邊線化簡若造成貼圖內容在模型上變化過 大,則取樣射線在化簡前後網格上所得到交點上的顏色差異會較大,因此挑顏色 差異小的區域操作來化簡網格即可避免化簡造成貼圖內容在網格上變形。
我
目的視點,並由這些視點觀察化簡前後網格在各種角度的變化。從視點往化簡區 域上射出一些射線,射線跟化簡前與化簡後的網格各有一個交點,交點之顏色即 代表著網格最後繪製在螢幕上所呈現的顏色,兩個交點的顏色差異愈大表示化簡 後在螢幕上所呈現出來差異愈大。面積愈大的化簡區域必需取樣多一點的射線才 可觀察出化簡的影響,射線取樣過少可能無法完全的反應出網格的變化,因此射 線數目要和面積成正比。一般而言不論面積大小,較平坦區域或貼圖內容無變化 區域所得到的平均顏色差異會較小,曲度較大區域和貼圖內容變化大之區域所得 到的平均顏色會較大,期望是挑選前者先進行化簡。若視覺相似度以平均各射線 顏色差異值做為化簡成本,會造成保留太多的小三角形在曲度大和貼圖變化大的
地方,就算化簡至很低的三角形數目這些小三角形會一直保留著,造成最後的模 型化簡不平均。我們選擇使用累加(sum)所有射線的顏色差異做為化簡成本。使 用累加會導致面積小但曲度大或貼圖變化大的化簡區域被化簡掉,因面積小所取 樣的射線數目會較小,累加起來數值可能會小於面積大但平坦區域(面積大會取 樣較多射線)。但面積小對於視覺上的感觀或最後投影在螢幕上的像素數目都是 影響比較小,所以就算化簡掉對於最後所呈現出來的結果是微小的差異。累加可 以確保化簡後模型上的三角形較平均的分佈,但在面積相似的化簡區域中又可以 挑選較平坦或貼圖變化較小的區域先進行化簡。
以下小節將對於取樣視點、取樣射線、定義化簡成本做更詳細的說明。3.2.1 節
.2.1 取樣視點
測量視覺相似度時不太可能對於所有角度的視點、各種不同顏色不同亮度的光
view1
view3
介紹視點取樣的方法,3.2.2 節定義射線取樣的方法,3.3.3 節和 3.3.4 節定義兩種 化簡成本,分別為局部的化簡成本以及整體化簡成本。
3
圖 3.3 以二維為例,測量視覺相似度。在化簡區域的周圍平均取樣一些視點。
viewn
view2
M2
M1
在
源情況之下都抓得到其在視覺上的差異,因此我們在比較模型化簡後的視覺差異 時必需有一些假設。在模型化簡時,因都是區域性的化簡操作,所以不論視覺上 和幾何上影響的區域都是模型上的小部分,會產生差異的地方就是區域化簡操作 的地方,我們測量視覺差異性只需要對於化簡會影響到的區域進行量測。對每個
化簡區域,我們在其的法向量方向上的半圓上取樣視點,為了使得這些視點可以 完全觀察到各個角度上網格的變化,因此半圓的圓心訂為化簡區域內頂點之平均 中心,且半徑則為此平均中心至最遠頂點距離之二倍,在半圓上的取樣視點只要 是平均地(uniform)取樣即可。如圖 3.3 以二維為例所示,M1和M2代表化簡前後兩 個不同的網格,而view1~viewn則為我們取樣的視點。