為了在可見表面上擴展,本篇論文利用頂點的可見度結果,在能保持模型幾何 的連續性及主要特徵之下,執行快速的隱蔽面移除。我們根據山水畫 NPR 特性,設 下系統定義,作為隱蔽面移除的根據。
在系統中,面的可見度用在區域擴展機制上。而加入部分可見的多邊形,或去 掉部分不可見的多邊形,皆不會讓區域擴展後的山水畫皴法筆觸有多少改變,所以 在符合 NPR 特性下,我們不深入篩選,而利用面的三個端點決定其可見度。系統中,
面的可見度定義是:
若面的任一端點為不可見,則面為不可見。 (定義一)
按照面(三角形)上的三個端點可見度,有四種情況,即頂點可見的多寡數目來 區別。但有一種特殊情況,命名為情況 S,是在三個端點均為可見下,其三角形卻 為不可見,如圖 7 所示,此類三角形的三個頂點皆在模型輪廓邊緣,三角形本身在 模型背面。若不排除此三角形,將造成區域擴展時,會在模型背面進行擴展,得到 不想要的區域及輪廓邊。因此,在進行隱蔽面刪除時,以三角形之法向量與視線向 量的內積值加以區分排除:
≤ 0
⋅ V
n ρ
(3.1)其中
n ρ
為三角形之法向量,V 為視線向量(line-of-sight vector)。
第三章 表面區域擴展
21
圖 7 屬於不可見三角形的特殊情況。
由隱蔽面之定義可區分出三類型,作為區域擴展之依據:
(1) 類型 1:除情況 S 之外的三端點可見之三角形(P),按定義一,P 屬可見三角 形。區域擴展是在可見表面上進行,表面上的每個可見三角形皆為擴展種 子,因此,此類型屬於擴展種子區。
(2) 類型 2:情況 S 與兩端點可見之三角形,稱為 P。若有擴展類型 1 之三角形 (P’)與 P 相連,則 P 上唯一的可見邊(E)必為 P 與 P’的相連邊,這代表著 E 為可見與不可見表面的交界邊。當 P’將區域擴展至 P 時,已不在可見表面 範圍,故停止擴展 P。此類三角形屬於擴 展 終 止 區,而 E 可能為 Silhouette 輪廓邊,於 3.3.2 節討論。
(3) 類型 3:為兩端點以上不可見之三角形(P)。與 P 相連的三個三角形(P’),必 定也是不可見三角形,(因至少 P 的一個不可見端點也是相連三角形的端 點,所以依定義一,它們皆為不可見三角形),因此不會經由 P’擴展到 P,
故此類屬於擴展絕緣區。
隱蔽面刪除過程,係將所有三角形掃描過。按照定義一,若有頂點不可見,則 三角形不可見,若其頂點皆可見,再以 3.1 式過濾掉情況 S,最後即可獲得模型的
第三章 表面區域擴展
22
可見三角形集合,作為區域擴展種子。下方為虛擬程式碼:for (所有三角形) {
if(三角形的任一頂點不可見) 三角形不可見;
else if(n
ρ ⋅
V≤
0) 三角形不可見;else
三角形可見;
}
圖 8 為執行隱蔽面刪除之後的結果,(a)為圖 3(a)模型執行隱蔽面刪除演算法 後,可見三角形所組成的模型表面,(b)、(c)、(d) 為觀察(a)的可見表面狀況,分別 為向上、向左、向右轉 30 度。
第三章 表面區域擴展
23
(a) (b)
(c) (d)
圖 8 隱蔽面刪除,(a)刪除後之外觀,(b)為上轉 30 度,(c)為左轉 30 度,(e) 為右轉 30 度。