ROAM演算法的一段翻譯 (轉)

worldblog發表於2007-12-09
ROAM演算法的一段翻譯 (轉)[@more@] 

4.2 動態連續三角網

世界空間中的格網是透過對每一個二叉樹頂點賦一個世界空間位置w(v)確定的。當任意兩個三角形在公用點或者公用邊上不重合時,三角形二叉樹就形成了連續的格網,這種連續的格網叫做二叉樹三角網。

圖4顯示了二叉樹三角網中具有典型相鄰關係的三角形T,我們把TB稱作共享基邊(V0,V1)的基鄰居,把TL稱作共享左邊(Va,V0)的左鄰居,把TR稱作共享右邊(V1,Va)的右鄰居。

二叉樹三角網的一個重要性質為:鄰居既可能來自與T相同的二叉樹l層,也可能是較精細的l+1層的左鄰居或右鄰居,或者是比T更粗糙的l-1層的基鄰居。

當T和TB屬於同一層l時,我們把對(T,TB)稱為一個方塊,圖4顯示了包含方塊的三角網的分割和合並過程。分割以後孩子 (T0,T1) 代替了T,而 (TB0,TB1) 則代替了TB。分割操作在方塊的中心產生了一個新的結點VC。如果三角形T沒有基鄰居TB,則只有T進行分割。當T和TB(如果存在TB)的孩子都在同一三角網中時,方塊(T,TB)就能夠合併。我們把這樣的情況稱作三角網中可合併的方塊。

分割和合並操作的一個重要特徵時,三角網可能可以由經過一系列分割和合並操作後產生的三角網確定。

通常使用提供簡單的臨時鄰接形式的頂點來啟用分割和合並操作。當時間間隔:namespace prefix = v ns = "urn:schemas--com:vml" /> 時,考慮圖4中 (T,TB) 的分割情況。我們可以先不直接把VC移動到新的位置Wc=W(Vc)上,而是根據時間從未分割的基邊中點Wm=(W(V0)+W(V1))/2線性的移動,其移動為Wa(t)=(1-t)Wm+tWc。合併也可以用同樣的方法啟用。

當三角形T的基鄰居TB來自更粗糙的層次時,它不能直接分割。為了使T強制分割,必須首先使TB強制分割,可以看出,這樣將會引起更深層次的遞迴分割。圖5 顯示了一個4次分割的情況。

大於一個三角形的基本網格就可以用於表示帶有邊界的任意型別的曲面。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-990136/,如需轉載,請註明出處,否則將追究法律責任。

相關文章