
郴州動畫數(shù)學(xué)課件之場景圖的三角面片生成BSP樹制作
這樣,對于三維空間中任意n個物體組成的場景S,對應(yīng)的BSP樹可以定義為一棵具有如下性質(zhì)的二 叉樹T: 樹T的葉子節(jié)點是物體或被分割面H切開的物體碎片。
樹T的中間節(jié)點是分割平面H:,左子樹對應(yīng)H,一空間,右子樹對應(yīng)H,+空間。即左于樹空間中的 物體S滿足:aJ+~+cz十d<0。右子樹空間中的物體S滿足:+,.1.十枷十,《葉d>0。
圖3.5(a)表示一個場景,圖3.5(b)是對應(yīng)的BSP表示樹。場景中包含三個物體..B,l’和D與2個 分割面Pl和尸:。尸,將物體AB分成A和B場景中包含t個物體Ali,l,和I,'j兩個分割面尸I和尸:。 C,D-起處于BSP樹的葉子中,而BSP兩部分,樹的巾間竹點就是分割面P1,和尸:。它們與分割后物體 在樹中的位置指示了物體在場景巾所處的1蔓域。 第3章 角色*33D —/、\《 尸羅 ≤、+叉\/X (b)圖3.5 場景及其BSP樹表示3.3.4 構(gòu)造BSP樹 雖然在建立BSP樹的過程要盡量選擇優(yōu)化的分割面,使得最終生成的BSP樹的規(guī)模較小,但劃分時 分割面的選取仍然具有很大的自由度和任意性。實際中常用的兩種分割面的選取方式是:
(1)選擇與某個軸垂直的平面作為分割面。
(2)直接使用場景圖中物體的三角面片所在的平面作為分割面。 由于使用與軸垂直的平面作為分割面可能會引入更多的分割面,所以應(yīng)當(dāng)直接使用場景中物體的 三角面片所在的平面作為BSP樹的分割平面。 由三維場景中物體的三角面片生成BSP樹的算法如下: BSP樹TalgorithmBSPConstnjct(場景圖的三角面片集合S) { if(S包含1個三角面片) | 直接生成BSP樹T,S存儲在T中 return T l else(將第一個三角面片S。所在平面P。作為分割面) { T十=algorithmBSPconstruct(位于擴空間的三角面片集合) T-=algorithmBSPconstruct(位于環(huán)空間的三角面片集合) H=S, return T } }
上述算法能夠根據(jù)三維場景的三角面片集合S得到對應(yīng)的BSP樹,但由于每次分割時,直接使用第 一個三角面片S。所在的平面尸。作為分割面,而這個平面的位置并不一定是最優(yōu)的,這使得整個算法 的穩(wěn)定性下降。該算法生成BSP樹的效率,或者說是生成的I3SP樹的 *flash動畫創(chuàng)作與后期視頻處理技術(shù)*規(guī)模,主要取決于三角面片集合的輸入順序。如果能夠有一種較 好的三角面片的選取策略,則可以提高生成BSP樹的效率。
轉(zhuǎn)載請注明:
郴州flash動畫制作公司:http://www.haldonestatewines.com/city104/