
錦州四叉樹的場(chǎng)景劃分4步驟動(dòng)畫演講制作
基于四叉樹的場(chǎng)景劃分步驟包括以下4步: 步驟一:將虛擬三維空間等價(jià)轉(zhuǎn)換為二維平面。前提是高度相對(duì)于廣度可以忽略,或背研究問(wèn)題 對(duì)象允許簡(jiǎn)化三維參數(shù)變量。
步驟二:遍歷場(chǎng)景中的所有模型區(qū)域,選取合適的分割平面。由于虛擬:維建筑多數(shù)屬于規(guī)則圖 形,因此,在逐層分割的過(guò)程中,沒有必要逐個(gè)去分解每個(gè)多邊形,只需要選取經(jīng)過(guò)象限頂點(diǎn)且與X軸 或Z軸垂直的平面作為分割面即可。
步驟三:分割完成后,分別創(chuàng)建“左上”、“左下”、“右上”以及“右下”四個(gè)象限的子節(jié)點(diǎn) 。判斷對(duì)應(yīng)象限內(nèi)包含的多邊形數(shù)量是否超過(guò)設(shè)定的閥值。若超過(guò),該象限區(qū)域繼續(xù)分割,同時(shí)四叉 樹的葉子節(jié)點(diǎn)繼續(xù)分解;若未超過(guò),則該節(jié)點(diǎn)就作為葉子節(jié)點(diǎn),保存當(dāng)前各層場(chǎng)景的相關(guān)屬性。
步驟四:重復(fù)步驟二、三處理,直至不存在可以分割的節(jié)點(diǎn)為止,VRMI.中利用模型語(yǔ)言提供的原 型節(jié)點(diǎn),對(duì)基于四叉樹劃分后的節(jié)點(diǎn)進(jìn)行自定義類型,得到的四叉樹數(shù)據(jù)結(jié)構(gòu)的形式如下: PR()TO QuadTNode{ #自定義的節(jié)點(diǎn)的基本場(chǎng)景屬性 exPoseField SFRotation rotate exPoseField SFVec3f scale 0.0 1.0 0.0 exPoseField SFColor color l.0 0.0 1.0 coord DEF PlaneOl-C()()RDCoordinateI Point[ 00,10,11,0 1] } 以下定義非葉子節(jié)點(diǎn)的四個(gè)子節(jié)點(diǎn)( children),每個(gè)children對(duì)應(yīng)一個(gè)子節(jié)點(diǎn)定義,每個(gè)子節(jié)點(diǎn) 也是QuadTNode節(jié)點(diǎn)類型。 Group{ children[ geometry cylinder{} ] children[ geometry cylinder{} ]chilclren[ geometry cylinder{ } geometry cylindert } } 對(duì)四又樹中的每個(gè)節(jié)點(diǎn)(包括葉子節(jié)點(diǎn)和非葉子節(jié)點(diǎn)),應(yīng)該定義此節(jié)點(diǎn)所表示的場(chǎng)景空間的包 圍范圍,定義這個(gè)節(jié)點(diǎn)所覆蓋的場(chǎng)景空間的區(qū)域。對(duì)應(yīng)于上述VRML四叉樹定義中的coord DEF PlaneOl-COORD,指定這個(gè)節(jié)點(diǎn)的四個(gè)頂點(diǎn)所表示的坐標(biāo)索引。通過(guò)這四個(gè)頂點(diǎn)的坐標(biāo)也就可以計(jì)算出 此節(jié)點(diǎn)所覆蓋的平面區(qū)域的大小。如圖4.6所示,圖中節(jié)點(diǎn)的四個(gè)頂點(diǎn)的坐標(biāo)為(4,4),(4,-4), (-4,-4),(-4,4)。┏━┳━┳━┳━┳━┳━━┳━━┳━━━┳━━┓┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃-/ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃ ┃/ ┃,/ ┃ ┃┃ ┃ ┃ ┃ ┃ ┃/ ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃L ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━╋━━┫┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃┣━╋━╋━╋━╋━╋━━╋━━╋━━━┫ ┃┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃┣━┻━┻━┻━╋━┻━━┻━━┻━━━┻━━┫┃-4) ┃ (4,-4.) ┃┗━━━━━━━┻━━━━━━━━━━━━━━ ┛圖4.6 四叉樹剖分中心位置X=1中心位置)\1半距=l 采用該數(shù)據(jù)結(jié)構(gòu)的四叉樹實(shí)現(xiàn)場(chǎng)景模型的空間剖分后,在場(chǎng)景渲染的時(shí)候,可以以L()D方式高效 繪制場(chǎng)景圖??梢酝ㄟ^(guò)計(jì)算包圍球或包圍長(zhǎng)方體的方法,實(shí)現(xiàn)對(duì)可見體的裁剪處理。
轉(zhuǎn)載請(qǐng)注明:
錦州flash動(dòng)畫制作公司:http://www.bpbang.com/city130/