亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2013-12-29 02:57:14陳宇拓顏君萍
        關(guān)鍵詞:定義模型

        陳宇拓 ,顏君萍 ,鄧 靜

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

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

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

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

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

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

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

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

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

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

        1.1 .X 文件的組織形式

        1.1.1 .X 文件的頭信息

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

        1.1.2 定義模板

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

        模板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ù)字開頭,第二 部分是 GUΙD(Global Unique Ιdentif i er,全局唯一標(biāo)識符),第三部分由各個數(shù)據(jù)項(xiàng)構(gòu)成,最后一部分用于控制模板的限制程度(開放、閉合受限)。模板的使用與結(jié)構(gòu)體有相似之處。

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

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

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

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

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

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

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

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

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

        xof 0302txt 0064 //頭信息

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

        Frame frm_Frame0 {//存儲樹木模型開始,首先存儲樹木主干信息

        //frm_Frame0由FrameTransformMatrix和Mesh這兩個子模板組成

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

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

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

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

        MeshTextureCoords {........} //存儲主干的紋理信息 }

        Frame frm_Frame_1 {//存儲第一根一級分枝開始,一級分枝模板信息

        FrameTransformMatrix { ........} //存儲該一級分枝的世界變換矩陣

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

        Frame frm_Frame_1_1 {//存儲第一根二級分枝開始,二級分枝模板信息

        FrameTransformMatrix { ........} //存儲該二級分枝的世界變換矩陣

        Mesh{.......}//存儲該二級分枝的信息

        }//存儲該二級分枝完成

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

        Frame frm_Frame_1_n {}//存儲該一級分枝上的第n根二級分枝的信息

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

        Frame frm_Frame_2 {.....} //存儲第二根一級分枝

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

        Frame frm_Frame_m {.....} //存儲第 m 根一級分枝

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

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

        frm_Frame0.FrameTransformMatrix*frm_Frame_m.FrameTransformMatrix

        二級分枝的完整變換矩陣為:

        frm_Frame0.FrameTransformMatrix*frm_Frame_m.FrameTransformMatrix

        *frm_Frame_m_n.FrameTransformMatrix

        2 林分的建模

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

        2.1 樹木模型的讀取

        讀取樹木模型.X文件的源代碼:

        private void ReadX() //讀取樹木模型的 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++)

        {

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

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

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

        //讀取樹木模型的紋理信息

        meshTextures[i] = TextureLoader.FromFile(device,

        materials[i].TextureFilename);

        }

        }

        }

        2.2 生成林分模型

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

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

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

        圖2 十年生杉樹林分模型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)建群生模型,如大型林分模型場景等。在構(gòu)建的基礎(chǔ)樹木模型的基礎(chǔ)上,通過少量樹木的實(shí)測數(shù)據(jù)及參數(shù)和變量控制,生成一系列能表述不同形態(tài)結(jié)構(gòu)的樹木模型,通過開發(fā)針對性的程序轉(zhuǎn)換為.X文件,并利用.X文件中的變換矩陣,隨機(jī)參數(shù)和變量實(shí)現(xiàn)樹木模型的幾何變化,林分模型的構(gòu)建。實(shí)驗(yàn)表明,該方法大大減少了對實(shí)測數(shù)據(jù)的依賴,提高了林分建模的速度和靈活性,使不同建模軟件平臺構(gòu)建的復(fù)雜模型數(shù)據(jù)能夠自由通暢交換,在普通微機(jī)上實(shí)現(xiàn)大型復(fù)雜三維場景模型的構(gòu)建和動態(tài)模擬。

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

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

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

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

        [5] 陶嗣魏,趙 東.樹木幾何結(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

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

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

        [本文編校:文鳳鳴]

        猜你喜歡
        定義模型
        一半模型
        永遠(yuǎn)不要用“起點(diǎn)”定義自己
        海峽姐妹(2020年9期)2021-01-04 01:35:44
        重要模型『一線三等角』
        定義“風(fēng)格”
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        3D打印中的模型分割與打包
        成功的定義
        山東青年(2016年1期)2016-02-28 14:25:25
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        修辭學(xué)的重大定義
        山的定義
        很黄很色很污18禁免费| 国产美女自拍国语对白| 日韩一级精品亚洲一区二区精品| 国产毛女同一区二区三区| 国产伦理一区二区| y111111少妇影院无码| 天堂岛国精品在线观看一区二区| 免费精品人妻一区二区三区| 日韩日韩日韩日韩日韩| 3344永久在线观看视频| 国产九九在线观看播放| 亚洲a级视频在线播放| 免费无码又爽又高潮视频| 最好看的最新高清中文视频| 国产午夜激情视频自拍| 日本国产一区二区在线观看| 欧洲成人一区二区三区| 性色av 一区二区三区| 国产品精品久久久久中文| 日日高潮夜夜爽高清视频| 性饥渴的农村熟妇| 伊伊人成亚洲综合人网7777 | 中文字幕精品一区二区三区| 日韩欧美成人免费观看| 91福利视频免费| 亚洲av色香蕉第一区二区三区| 国产一区二区三区视频网| 中文字幕一区二区三区人妻少妇| 久久久久亚洲精品天堂| 久久精品天堂一区二区| 国产免费久久精品99久久| 蜜臀aⅴ国产精品久久久国产老师| 欧美日韩国产乱了伦| 丝袜美腿人妻第一版主| 久久久无码人妻精品无码| 欧美一级人与嘼视频免费播放| 人妻精品久久久一区二区| 久久影院午夜理论片无码| 国产精品视频一区二区噜噜| 国产亚洲精品综合99久久| 男女边摸边吃奶边做视频韩国|