国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

樹(shù)木模型的.X文件轉(zhuǎn)換與林分建模

2013-12-29 02:57陳宇拓顏君萍
關(guān)鍵詞:林分分枝胸徑

陳宇拓 ,顏君萍 ,鄧 靜

(1.中南林業(yè)科技大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,湖南 長(zhǎng)沙 410004;2.南昌工學(xué)院 民族教育學(xué)院,江西 南昌 330000)

樹(shù)木模型的.X文件轉(zhuǎn)換與林分建模

陳宇拓1,顏君萍2,鄧 靜1

(1.中南林業(yè)科技大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,湖南 長(zhǎng)沙 410004;2.南昌工學(xué)院 民族教育學(xué)院,江西 南昌 330000)

通過(guò)對(duì).X文件結(jié)構(gòu)和內(nèi)核的詳細(xì)解讀,給出了復(fù)雜模型的.X文件轉(zhuǎn)換方法,并以構(gòu)建一大型林分三維場(chǎng)景為例,闡述了對(duì)其高效、快速建模的方法過(guò)程。針對(duì)樹(shù)木和林分形態(tài)結(jié)構(gòu)的多樣性、復(fù)雜性和信息量大等特征,利用所建樹(shù)木基礎(chǔ)模型,快速群生林分中樹(shù)木模型及其. X文件,根據(jù)樣地屬性和對(duì)應(yīng). X文件建立林分三維模型。實(shí)驗(yàn)結(jié)果表明,利用.X文件表述復(fù)雜模型,不僅可以大大提高模擬大型復(fù)雜三維場(chǎng)景的速度,而且能夠減少對(duì)原始數(shù)據(jù)的依賴,降低算法復(fù)雜度,提高建模效率。

樹(shù)木模型;.X文件;數(shù)據(jù)交換;林分建模

在三維空間中,一個(gè)復(fù)雜的三維模型由成千上萬(wàn)個(gè)三角面片組成。要快速、高效的構(gòu)建擁有諸多復(fù)雜模型的大型三維場(chǎng)景,需要有高性能計(jì)算機(jī)支撐,而在普通的微機(jī)上很難實(shí)現(xiàn)。林分三維模型是一個(gè)典型的大型復(fù)雜三維場(chǎng)景,且具有不規(guī)則性、隨機(jī)性和不可控性等特點(diǎn),一個(gè)林分通常由上千棵千枝百態(tài)的樹(shù)木及復(fù)雜的地表組合構(gòu)成,每棵樹(shù)本身就是一個(gè)非常復(fù)雜的三維模型[1-2]。如何在計(jì)算機(jī)性能配置標(biāo)準(zhǔn)不是很高的情況下,快捷、高效率、高真實(shí)度地構(gòu)建林分三維模型,實(shí)現(xiàn)樹(shù)木模型與林分模型的數(shù)據(jù)流暢交換與重構(gòu)是關(guān)鍵。

研究和實(shí)驗(yàn)表明,由于林分模型的復(fù)雜性和多樣性,直接用建模軟件進(jìn)行林分三維建模,幾乎是無(wú)法實(shí)現(xiàn)的,更難以實(shí)現(xiàn)林分三維模型的交互式動(dòng)態(tài)演示和瀏覽。本研究對(duì)林分建模的基本思路是:根據(jù)某一樹(shù)種的一棵或多棵樹(shù)木較詳盡的實(shí)測(cè)數(shù)據(jù),建立該樹(shù)種的樹(shù)木基礎(chǔ)三維模型;然后利用擬合的該樹(shù)種樹(shù)木結(jié)構(gòu)與生長(zhǎng)規(guī)律曲線參數(shù)方程,結(jié)合樹(shù)木主要結(jié)構(gòu)因子和隨機(jī)變量,對(duì)基礎(chǔ)模型數(shù)據(jù)進(jìn)行編輯調(diào)整,得到該樹(shù)種各種年齡和各種形狀結(jié)構(gòu)的樹(shù)木模型數(shù)據(jù),由這些樹(shù)木模型數(shù)據(jù)建模,并分別將所建模型存儲(chǔ)為.X文件;最后根據(jù)林分樣地屬性和對(duì)應(yīng)樹(shù)木.X文件構(gòu)建該樹(shù)種的整個(gè)林分模型。

目前能為高級(jí)語(yǔ)言調(diào)用的三維模型數(shù)據(jù)格式甚少,且存在對(duì)模型數(shù)據(jù)編輯能力差、解讀繁瑣和數(shù)據(jù)量大等缺陷,尤其是針對(duì)三維模型數(shù)據(jù)。在 Microsoft DirectX3 D 中,引入了一種開(kāi)放的3 D數(shù)據(jù)存儲(chǔ)格式——.X文件。它支持自定義模板結(jié)構(gòu),可以存儲(chǔ)自定義的任何一種數(shù)據(jù),同時(shí)在DirectX中的D3DX庫(kù)提供了豐富的支持函數(shù),幾乎可以不用自己接觸最底層的數(shù)據(jù)讀入工作,就可以輕松編輯使用.X文件,為從樹(shù)木模型高效快捷群生林分模型提供了一個(gè)有效的途徑。

1 樹(shù)木模型的數(shù)據(jù)轉(zhuǎn)換

1.1 .X 文件的組織形式

1.1.1 .X 文件的頭信息

.X文件一般都包含類(lèi)似這樣的頭部說(shuō)明:xof 0302txt 0032,其中xof說(shuō)明是X文件,0302表示使用的是X文件格式Version3.2,即版本號(hào)3.2。而txt表示是文本格式,可以用記事本打開(kāi)編輯。0032表示32位浮點(diǎn)數(shù)據(jù)長(zhǎng)度,也可以用0064表示64位浮點(diǎn)數(shù)據(jù)長(zhǎng)度[3]。

1.1.2 定義模板

.X文件是由模板(template)驅(qū)動(dòng)的,模板定義了如何存儲(chǔ)一個(gè)數(shù)據(jù)對(duì)象,這樣用戶便可以自己定義具體的格式。一個(gè)模板和一個(gè)數(shù)據(jù)對(duì)象之間的差異在于所有的模板都是以一個(gè)template單詞開(kāi)始,模板看起來(lái)很像一個(gè)C語(yǔ)言的結(jié)構(gòu)定義,數(shù)據(jù)對(duì)象就是那些模板的實(shí)例。使用模板定義包含在.X文件里的數(shù)據(jù)對(duì)象(一個(gè)模板定義了數(shù)據(jù)對(duì)象的布局),每個(gè)模板都可以通過(guò)一個(gè)數(shù)據(jù)類(lèi)型的集合去定義并容納任何類(lèi)型的數(shù)據(jù)。同時(shí),任何數(shù)據(jù)類(lèi)型的組合都可以在一個(gè)模板里使用。

模板header的定義如下:

template Header {

<3 D 8 2 A B 4 3-6 2 D A-1 1 c f-A B 3 9-0020AF71E433>

WORD major;

WORD minor;

DWORD f l ags;

}

模板由四部分組成:第一部分是模板的名字,可由數(shù)字、字符、下劃線構(gòu)成,但不能以數(shù)字開(kāi)頭,第二 部分是 GUΙD(Global Unique Ιdentif i er,全局唯一標(biāo)識(shí)符),第三部分由各個(gè)數(shù)據(jù)項(xiàng)構(gòu)成,最后一部分用于控制模板的限制程度(開(kāi)放、閉合受限)。模板的使用與結(jié)構(gòu)體有相似之處。

另外,.X文件都至少包含一個(gè)Mesh模板。在一個(gè)Mesh模板中,還可以嵌套多個(gè)子模板,例如材質(zhì)模板、法線模板、紋理模板等。

1.1.3 數(shù)據(jù)對(duì)象

定義好模板之后,我們就可以實(shí)例化模板以存儲(chǔ)實(shí)際數(shù)據(jù)。

定義格式:模板名 + < 實(shí)例名 >{...} 例:Mesh Fram{...}

其中,實(shí)例名不是必須的,可以省略。{ }里的是存儲(chǔ)的實(shí)際數(shù)據(jù)。

1.2 樹(shù)木模型的 .X 文件結(jié)構(gòu)設(shè)計(jì)

依據(jù)樹(shù)木實(shí)測(cè)數(shù)據(jù)建模,是構(gòu)建樹(shù)木模型最精確的方法。我們依據(jù)某樹(shù)種少量樹(shù)木較詳盡的實(shí)測(cè)數(shù)據(jù)建立該樹(shù)種基礎(chǔ)模型,通過(guò)擬合的該樹(shù)種生長(zhǎng)參數(shù)方程和結(jié)構(gòu)關(guān)系參數(shù)方程(胸徑、樹(shù)高、樹(shù)冠、分枝之間的關(guān)系參數(shù)方程,參數(shù)方程的構(gòu)建方法與過(guò)程在另文中討論),同時(shí)結(jié)合隨機(jī)變量的控制對(duì)基礎(chǔ)模型數(shù)據(jù)進(jìn)行編輯、調(diào)整和變換,得到一片林分中以不同胸徑為基本結(jié)構(gòu)參數(shù)的所有樹(shù)木模型數(shù)據(jù),同一胸徑的樹(shù)木模型通過(guò)參數(shù)和變量控制隨機(jī)生成各種形狀結(jié)構(gòu)。整個(gè)林分樹(shù)木模型建模完成后分別生成.X文件。下面給出生成樹(shù)木模型.X文件的基本思想。

以杉樹(shù)為例,構(gòu)建其基礎(chǔ)模型的參數(shù)主要包括主干、一級(jí)分枝、二級(jí)分枝3個(gè)Frame模板[4-5]。每個(gè)Frame模板由兩個(gè)子模 板 組 成:FrameTransformMatrix和 Mesh,F(xiàn)rameTransformMatrix模板定義部件初始世界變換矩陣,Mesh模板定義部件的頂點(diǎn)的坐標(biāo)、材質(zhì)、法線、紋理等屬性。Mesh中定義的3D物體的所有頂點(diǎn)乘以世界初始變換矩陣,得到Mesh中表示的3D物體的初始位置。主干、一級(jí)分枝和二級(jí)分枝三者之間存在階層關(guān)系,所以主干模板嵌套了一級(jí)分枝模板,一級(jí)分枝模板嵌套了二級(jí)分枝模板。

以下為樹(shù)木模型的.X文件結(jié)構(gòu)設(shè)計(jì):

xof 0302txt 0064 //頭信息

Header {........} //Header 模板

Frame frm_Frame0 {//存儲(chǔ)樹(shù)木模型開(kāi)始,首先存儲(chǔ)樹(shù)木主干信息

//frm_Frame0由FrameTransformMatrix和Mesh這兩個(gè)子模板組成

FrameTransformMatrix { ........} //定義樹(shù)木主干的世界變換矩陣

Mesh //此處存儲(chǔ)主干的各三角片頂點(diǎn)坐標(biāo)

{ MeshMaterialList {... ...} //存儲(chǔ)主干的材質(zhì)信息

MeshNormals { .......} //存儲(chǔ)組成主干的各三角片頂點(diǎn)的法向量

MeshTextureCoords {........} //存儲(chǔ)主干的紋理信息 }

Frame frm_Frame_1 {//存儲(chǔ)第一根一級(jí)分枝開(kāi)始,一級(jí)分枝模板信息

FrameTransformMatrix { ........} //存儲(chǔ)該一級(jí)分枝的世界變換矩陣

Mesh{......} //存儲(chǔ)該一級(jí)分枝的相關(guān)信息,存儲(chǔ)格式與上面的Mesh相同

Frame frm_Frame_1_1 {//存儲(chǔ)第一根二級(jí)分枝開(kāi)始,二級(jí)分枝模板信息

FrameTransformMatrix { ........} //存儲(chǔ)該二級(jí)分枝的世界變換矩陣

Mesh{.......}//存儲(chǔ)該二級(jí)分枝的信息

}//存儲(chǔ)該二級(jí)分枝完成

......................

Frame frm_Frame_1_n {}//存儲(chǔ)該一級(jí)分枝上的第n根二級(jí)分枝的信息

}//存儲(chǔ)第一根一級(jí)分枝結(jié)束

Frame frm_Frame_2 {.....} //存儲(chǔ)第二根一級(jí)分枝

.........................

Frame frm_Frame_m {.....} //存儲(chǔ)第 m 根一級(jí)分枝

}//存儲(chǔ)樹(shù)木模型.X結(jié)束

其中,一級(jí)分枝的完整變換矩陣為:

frm_Frame0.FrameTransformMatrix*frm_Frame_m.FrameTransformMatrix

二級(jí)分枝的完整變換矩陣為:

frm_Frame0.FrameTransformMatrix*frm_Frame_m.FrameTransformMatrix

*frm_Frame_m_n.FrameTransformMatrix

2 林分的建模

以構(gòu)建湖南攸縣黃豐橋林場(chǎng)一片10年生杉樹(shù)林為例,該林分面積為80 m×40 m近似長(zhǎng)方形,擁有956棵樹(shù),胸徑集中在8~16 cm范圍,基本呈正態(tài)分布。構(gòu)建其林分模型,首先根據(jù)林分的樣地屬性構(gòu)建林分的地表模型;然后根據(jù)樣地林分信息表(本研究建模方法只需用到樹(shù)種、樹(shù)木位置坐標(biāo)X、Y、Z和胸徑信息),讀取林分各位置坐標(biāo)對(duì)應(yīng)胸徑范圍內(nèi)的樹(shù)木模型.X文件,不同位置出現(xiàn)的樹(shù)木,其胸徑可能屬于同一胸徑范圍,但是它們的結(jié)構(gòu)是不同的(由于分枝數(shù)量、長(zhǎng)度、仰角、方位角的細(xì)節(jié)變化是利用受約束隨機(jī)變量來(lái)控制的,同一胸徑范圍下可隨機(jī)生成自定義任意棵數(shù)結(jié)構(gòu)細(xì)節(jié)不同樹(shù)木模型和.X文件,選取該胸徑范圍下哪個(gè)樹(shù)木模型采用隨機(jī)結(jié)合立地因子方式。例如:假設(shè)某位置對(duì)應(yīng)的樹(shù)木模型的胸徑大小屬于[m,n]范圍內(nèi),m和n的取值在林分中最大與最小胸徑之間,m和n的差值大小決定林分的建模精度,每個(gè)[m,n]胸徑范圍內(nèi)建有多個(gè)不同結(jié)構(gòu)樹(shù)木模型及.X文件,則可在[m,n]范圍內(nèi)隨機(jī)確定一個(gè).X文件,如“m_n_k.X”,作為該位置的樹(shù)木模型);最后將.X文件對(duì)應(yīng)的樹(shù)木模型一一重構(gòu)在地表相應(yīng)的位置上,生成林分模型。

2.1 樹(shù)木模型的讀取

讀取樹(shù)木模型.X文件的源代碼:

private void ReadX() //讀取樹(shù)木模型的 X 文件

{ ExtendedMaterial[] materials = null;

mesh = Mesh.FromFile( “Tree.X”, MeshFlags.SystemMemory,

device, out materials);

if (meshTextures == null)//如果還未設(shè)置紋理

{

meshTextures = new Texture[materials.Length]; //紋理數(shù)組

meshMaterials = new Material[materials.Length]; //材質(zhì)數(shù)組

for (int i = 0; i < materials.Length; i++)

{

//讀取樹(shù)木模型的材質(zhì)

meshMaterials[i] = materials[i].Material3D;

meshMaterials[i].Ambient = meshMaterials[i].Diffuse;

//讀取樹(shù)木模型的紋理信息

meshTextures[i] = TextureLoader.FromFile(device,

materials[i].TextureFilename);

}

}

}

2.2 生成林分模型

按林分樣地屬性樹(shù)木空間位置坐標(biāo)和胸徑,讀入和選取相應(yīng)樹(shù)木模型的.X文件之后,在地表模型上定位插入該樹(shù)木模型,構(gòu)建整個(gè)林分三維模型。

本研究研發(fā)的林分建模系統(tǒng)運(yùn)行環(huán)境,硬件為 DELL PRECΙSΙON T3600(基本配置: Ιntel 至強(qiáng)E5 CPU主頻3.0GHz,內(nèi)存容量8GB);軟件為WΙN7專(zhuān)業(yè)版64位操作系統(tǒng),在VS2008編譯環(huán)境下,采用C#程序語(yǔ)言和Direct 3D進(jìn)行程序設(shè)計(jì)。林分建模系統(tǒng)對(duì)湖南攸縣黃豐橋一塊10年生杉樹(shù)林分樣地(共956棵樹(shù))進(jìn)行建模,采用.X文件比不采用.X文件建模,生成林分模型的時(shí)間從12 min縮短到15 s,并能流暢實(shí)現(xiàn)林分模型動(dòng)態(tài)生成與交互式導(dǎo)航演示。圖1和圖2分別為一株10年生杉木模型和群生956棵10年生杉木林分模型。

圖1 十年生杉樹(shù)模型Fig.1 Model of ten-year-old Chinese f i r

圖2 十年生杉樹(shù)林分模型Fig.2 Model of ten-year-old Chinese f i r stand

3 結(jié) 論

本研究主要探討如何實(shí)現(xiàn)復(fù)雜模型到.X文件的數(shù)據(jù)轉(zhuǎn)換,高效、快捷地構(gòu)建群生模型,如大型林分模型場(chǎng)景等。在構(gòu)建的基礎(chǔ)樹(shù)木模型的基礎(chǔ)上,通過(guò)少量樹(shù)木的實(shí)測(cè)數(shù)據(jù)及參數(shù)和變量控制,生成一系列能表述不同形態(tài)結(jié)構(gòu)的樹(shù)木模型,通過(guò)開(kāi)發(fā)針對(duì)性的程序轉(zhuǎn)換為.X文件,并利用.X文件中的變換矩陣,隨機(jī)參數(shù)和變量實(shí)現(xiàn)樹(shù)木模型的幾何變化,林分模型的構(gòu)建。實(shí)驗(yàn)表明,該方法大大減少了對(duì)實(shí)測(cè)數(shù)據(jù)的依賴,提高了林分建模的速度和靈活性,使不同建模軟件平臺(tái)構(gòu)建的復(fù)雜模型數(shù)據(jù)能夠自由通暢交換,在普通微機(jī)上實(shí)現(xiàn)大型復(fù)雜三維場(chǎng)景模型的構(gòu)建和動(dòng)態(tài)模擬。

[1]熊啟明 ,楊柳青 ,陳 偉 ,等 . 基于 GΙS 的樹(shù)木三維模型研究[J]. 中南林業(yè)科技大學(xué)學(xué)報(bào),2011,31(4)∶174-177.

[2] 石銀濤,程效軍,張鴻飛. 基于參數(shù)L-系統(tǒng)的三維樹(shù)木仿真[J]. 同濟(jì)大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,39(12)∶1871-1874.

[3] 郭 楊,李玉萍.基于X文件的數(shù)據(jù)庫(kù)管理方法的研究[J].計(jì)算機(jī)時(shí)代.2011,5∶34-35.

[4] 盧康寧,張懷清,劉 閩. 基于實(shí)測(cè)數(shù)據(jù)的杉木構(gòu)筑型研究[J]. 林業(yè)科學(xué)研究,2011,24(1)∶132-136.

[5] 陶嗣魏,趙 東.樹(shù)木幾何結(jié)構(gòu)快速建模的研究[J].北京林業(yè)大學(xué)學(xué)報(bào) ,2013,35(2)∶97-101.

Conversion of .X f i le of tree model and forest stand modeling

CHEN Yu-tuo1, YAN Jun-ping2, DENG Jing1
(1. School of Computer Science & Ιnformation Engineering, Central South University of Forestry and Technology, Changsha 410004, Hunan, China; 2. College of National Education, Nanchang University of Technology, Nanchang 330000, Jiangxi, China)

Through minutely unscrambling the structure and kernel of .X f i le, the conversion method of .X f i le for complicated model was given. By taking the construction of a large forest 3D scene as the example, the methods and processes for high-eff i cient and rapid modeling were expounded. Taking into account the characteristics of tree and stand structure’s diversity, complexity and large amount of information, and using the basic tree model constructed, the tree models and theirs .X f i les which grew quickly by clusters, and according to the sample plot properties and the corresponding .X f i les, the forest stand 3D model has been set up. The results show that the expression of complicated model by using .X f i le not only could raise the speed of simulating large complicated 3D scene but also could reduce the dependence on the original data, low down the complexity of the algorithm, and improve the eff i ciency of modeling.

tree model; .X f i le; data exchange; forest stand modeling

S771;TH126.2;TP391.72

A

1673-923X(2013)12-0006-04

2013-07-05

國(guó)家863計(jì)劃資助項(xiàng)目(2012AA102002)

陳宇拓(1963-),男,湖南衡山人,博士,教授,主要研究方向?yàn)閳D形圖象處理、森林工程;E-mail:cyt28@126.com

[本文編校:文鳳鳴]

猜你喜歡
林分分枝胸徑
分枝大苗建園蘋(píng)果樹(shù)當(dāng)年如何修剪
赤松純林胸徑結(jié)構(gòu)對(duì)枯梢病發(fā)生的效應(yīng)
武漢5種常見(jiàn)園林綠化樹(shù)種胸徑與樹(shù)高的相關(guān)性研究
一株吊蘭
五常水曲柳變異分析及優(yōu)良家系的早期選擇
油菜新品種評(píng)比試驗(yàn)總結(jié)
撫育間伐對(duì)油松林下灌木多樣性的影響
短截和摘心對(duì)矮砧蘋(píng)果幼樹(shù)分枝特性的影響
4種人工林的土壤化學(xué)性質(zhì)和酶活性特征研究
4種闊葉混交林的持水特性研究
色达县| 崇礼县| 泰州市| 金门县| 客服| 嘉峪关市| 布拖县| 隆尧县| 太康县| 乐东| 沂水县| 成都市| 禄丰县| 大姚县| 台北市| 思南县| 勐海县| 岑巩县| 昭苏县| 神池县| 佛学| 合作市| 镇远县| 巨野县| 清徐县| 改则县| 义马市| 出国| 舞钢市| 观塘区| 湄潭县| 明水县| 宕昌县| 句容市| 海丰县| 深水埗区| 铜陵市| 洛宁县| 建德市| 射阳县| 凌海市|