趙慶丹 羅傳文 孫海洪 陳 立
(東北林業(yè)大學(xué),哈爾濱,150040)
近年來(lái),隨著科學(xué)計(jì)算可視化技術(shù)的發(fā)展,日益深入了對(duì)樹(shù)木生長(zhǎng)機(jī)理的研究、森林生態(tài)系統(tǒng)的模擬與預(yù)測(cè)的研究。人們力求構(gòu)造更加通用的三維建模與可視化系統(tǒng),對(duì)樹(shù)木及林分的自然生長(zhǎng)和人工經(jīng)營(yíng)措施等進(jìn)行實(shí)時(shí)的本真還原和科學(xué)模擬,讓決策者有一個(gè)真實(shí)的、身臨其境的感受,對(duì)輔助森林經(jīng)營(yíng)管理及影響評(píng)價(jià)具有極其重要的科學(xué)意義。所以,以樹(shù)木、森林景觀為主要對(duì)象的計(jì)算機(jī)建模和可視化技術(shù)成為森林經(jīng)理學(xué)、生態(tài)學(xué)、自然地理學(xué)、植物學(xué)等領(lǐng)域的一個(gè)研究熱點(diǎn)[1-2]。自1968年美國(guó)生物學(xué)家Aristid Lindenmayer提出L-system并被Smith引入到圖形學(xué)以來(lái),國(guó)外專家學(xué)者在植物可視化領(lǐng)域做了許多研究[3]:1981年,美國(guó)科學(xué)家Witten和Sander提出了對(duì)部分樹(shù)木的形態(tài)結(jié)構(gòu)進(jìn)行計(jì)算機(jī)模擬的DLA模型;1984年,Aono與Knnii提出了樹(shù)木三維幾何模型,使用分枝角、開(kāi)度角等幾何參量,實(shí)施對(duì)樹(shù)木幾何結(jié)構(gòu)的控制和修改;Toronto大學(xué)景觀研究中心構(gòu)造了以圖像方式表達(dá)樹(shù)木模型的數(shù)學(xué)建筑物模型;EXRI公司的ArcView 3DX則采用簡(jiǎn)單矢量植物模型;Gruen Al等人利用自主開(kāi)發(fā)的三維交互式建模系統(tǒng)建立了一些城市景觀模型,但真實(shí)性較差。我國(guó)數(shù)字植物研究始于20世紀(jì)90年代,起步相對(duì)較晚,但近年來(lái)我國(guó)在此領(lǐng)域也取得了一定的進(jìn)展[4]4-19:郝小琴、宋鐵英等較早地在樹(shù)木可視化方面進(jìn)行了開(kāi)創(chuàng)性的工作;徐楊等應(yīng)用L-System模擬樹(shù)木的基本形狀;魏瓊等以DOL為基本算法,對(duì)樹(shù)木的形態(tài)進(jìn)行三維模擬;雷蕾等提出了一種基于能量模型的葉片紋理構(gòu)造算法,比通常的紋理貼圖法有更好的隨機(jī)性和立體感;宋仁波、常敏基于實(shí)測(cè)數(shù)據(jù)和經(jīng)驗(yàn)?zāi)P徒⒘碎L(zhǎng)白落葉松人工林單木靜態(tài)結(jié)構(gòu)模型等。由于樹(shù)木形態(tài)的復(fù)雜性,以及樹(shù)木生長(zhǎng)的生理確定性(如樹(shù)種、方向性等生理性質(zhì))和長(zhǎng)勢(shì)不確定性(如生長(zhǎng)受地理位置、條件等約束)等特點(diǎn),使得樹(shù)木三維可視化的研究至今仍未得到一個(gè)完備的三維計(jì)算機(jī)樹(shù)木模型。筆者將以東北重要樹(shù)種——紅松(Pinus koraiensisSieb)為例,將表達(dá)樹(shù)木形態(tài)結(jié)構(gòu)特征的實(shí)測(cè)數(shù)據(jù)轉(zhuǎn)化為圖形或圖像形式在計(jì)算機(jī)上進(jìn)行模擬,積累樹(shù)木建模和繪制的經(jīng)驗(yàn),逐步開(kāi)發(fā)一個(gè)通用的樹(shù)木模型及可視化系統(tǒng),以期在林業(yè)研究領(lǐng)域得以應(yīng)用。
樹(shù)木可視化,就是一種運(yùn)用計(jì)算機(jī)圖形學(xué)的理論與方法對(duì)樹(shù)木形態(tài)結(jié)構(gòu)和生長(zhǎng)過(guò)程進(jìn)行仿真的技術(shù)。它將構(gòu)成樹(shù)木形態(tài)結(jié)構(gòu)特征的數(shù)據(jù)轉(zhuǎn)化為圖形或圖像形式在計(jì)算機(jī)上進(jìn)行模擬,即把樹(shù)木結(jié)構(gòu)的描述方法與幾何形態(tài)參數(shù)反演成具體的樹(shù)木空間形態(tài),通過(guò)光照、紋理、渲染等手段繪制成樹(shù)木[4]12。
文中以穆棱地區(qū)天然次生混交林(穆H-1)中的紅松為例,在VC++6.0開(kāi)發(fā)平臺(tái)上結(jié)合OpenGL開(kāi)放式圖形庫(kù),采用傳統(tǒng)的幾何實(shí)體建模技術(shù)和樹(shù)木形態(tài)結(jié)構(gòu)相結(jié)合方法,實(shí)現(xiàn)基于實(shí)測(cè)數(shù)據(jù)(包括胸徑、樹(shù)高、一級(jí)枝條構(gòu)件的組成數(shù)據(jù)(枝條、弦長(zhǎng)、基徑、著枝角度、方位角、弓高等))的靜態(tài)單木可視化模擬。同時(shí),運(yùn)用紋理貼圖技術(shù),對(duì)樹(shù)模型及樹(shù)木生長(zhǎng)的環(huán)境進(jìn)行真實(shí)感描繪,將這些圖片轉(zhuǎn)化為二維紋理放置于三維樹(shù)模型可視化系統(tǒng)中,以提高模擬的逼真性。
結(jié)構(gòu)模型一般包括分解信息、幾何結(jié)構(gòu)信息(描述各組分的形狀和空間位置)和拓?fù)浣Y(jié)構(gòu)信息3個(gè)部分的內(nèi)容[5]。幾何結(jié)構(gòu)模型是指對(duì)植物整體和器官的三維幾何形態(tài)的描述。拓?fù)浣Y(jié)構(gòu)模型描述植物器官之間的連接關(guān)系。植物的拓?fù)浣Y(jié)構(gòu)與其分解的組成單元密切相關(guān)。文中主要討論幾何形態(tài)描述的方法,且只對(duì)紅松的地上部分(樹(shù)干、枝條、樹(shù)葉)進(jìn)行三維可視化研究。
1.2.1 樹(shù)干模型
樹(shù)干是樹(shù)木的重要組成部分,其干形一般有通直、完滿、彎曲、尖削以及主干是否明顯之分。紅松的干形通直、明顯,且分叉少。干形的變化,隨其粗度自下而上逐漸減少,可用形狀和削度來(lái)描述。樹(shù)干的形狀一般從橫斷面和縱斷面兩個(gè)方面進(jìn)行研究。在研究中,橫斷面被認(rèn)為是圓形的。樹(shù)干的縱斷面形狀由干曲線式來(lái)描述。(孔茲干曲線式:y2=Pxr。式中:y為樹(shù)干橫斷面半徑;x為樹(shù)干梢頭至該橫斷面的長(zhǎng)度;P表示系數(shù);r為形狀指數(shù),且r=2[ln(y1)-ln(y2)]/[ln(x1)-ln(x2)]。
經(jīng)學(xué)者研究表明,樹(shù)干各部分的形狀指數(shù)一般都不是整數(shù),即樹(shù)干各部分只是近似于某種幾何體。所以,結(jié)合干形削度(d2r/D2=-0.108 6+1.085 9(H-Lr)/(H-1.3)。式中:D為胸徑;H為樹(shù)高;Lr為任一高度;dr為高度Lr處的直徑)的變化,將樹(shù)干按區(qū)分段(每個(gè)區(qū)段長(zhǎng)度為1 m)進(jìn)行解析,并將樹(shù)干看作由若干個(gè)圓臺(tái)體和一個(gè)圓錐體組成。
圖1 樹(shù)干模型
1.2.2 枝條模型
枝條的長(zhǎng)度、大小、方位以及與樹(shù)干的角度決定著樹(shù)冠的形狀,并對(duì)葉片起著支撐的作用,它的分枝結(jié)構(gòu)決定著葉片的空間分布。枝條分枝級(jí)數(shù)的確定依據(jù)文獻(xiàn)[6]采用由內(nèi)及外的方法,即以主干為0級(jí)枝,從樹(shù)干上分出來(lái)的枝條為1級(jí)枝,從1級(jí)枝上分出來(lái)的枝條為二級(jí)枝,從2級(jí)枝條分出來(lái)的枝條為3級(jí)枝,并以此類推。枝條的建模繪制也采用簡(jiǎn)單的幾何圖形及利用實(shí)測(cè)的數(shù)據(jù)生成。以一級(jí)枝條為例,將枝條分成若干斷,將每一斷看成是圓柱體或圓臺(tái)體,進(jìn)行一定角度的偏轉(zhuǎn)來(lái)實(shí)現(xiàn)。通過(guò)總著枝深度、方位角、著枝角度可以確定一級(jí)枝條的具體生長(zhǎng)位置,通過(guò)基徑、枝長(zhǎng)、弦長(zhǎng)和弓高數(shù)據(jù)可以確定枝條的生長(zhǎng)和形態(tài)。
由于枝條存在彎曲度,其繪制方法略不同于樹(shù)干,一般有參數(shù)曲線擬合方法和參數(shù)設(shè)定彎曲度模擬的方法。前者需要對(duì)枝條的彎曲形狀做大量測(cè)量,不適合模擬植物形態(tài)及其生長(zhǎng)過(guò)程。后者雖然簡(jiǎn)單,但是很難形成逼真的彎曲形狀。鑒于二級(jí)枝條、三級(jí)枝條……數(shù)量多,且不容易進(jìn)行測(cè)量,故以分形理論,用迭代的方法產(chǎn)生這種具有自相似性的結(jié)構(gòu)。每一個(gè)枝段可以用彎折、扭轉(zhuǎn)、長(zhǎng)度和半徑4個(gè)參數(shù)來(lái)表示。一條形態(tài)復(fù)雜的樹(shù)枝可以看成是由一個(gè)給定初始值的枝段通過(guò)若干次的迭代生成的。通過(guò)生枝段的參數(shù)設(shè)置并經(jīng)過(guò)若干次的迭代之后,樹(shù)枝將逐段發(fā)生扭轉(zhuǎn),各枝段的長(zhǎng)度和半徑均將逐漸縮小,而各枝段的彎折程度則保持不變。
1.2.3 樹(shù)葉模型
紅松的葉子為針形,且為五針一束。每一針葉子組成的形狀近似為細(xì)長(zhǎng)的圓錐體,在繪制葉子時(shí),可以根據(jù)實(shí)測(cè)的葉子的長(zhǎng)度、寬度和厚度采用簡(jiǎn)單的幾何圖形來(lái)繪制。但如果對(duì)樹(shù)葉逐片通過(guò)實(shí)測(cè)數(shù)據(jù)進(jìn)行幾何建模,將耗費(fèi)巨大的空間和計(jì)算量。因此需要將空間上相鄰的多個(gè)葉片及連接它們的細(xì)枝合并,形成“葉簇”。有些研究[4]96則采用“枝片”來(lái)簡(jiǎn)化細(xì)枝條的幾何表示,即采用一種基于圖像的枝條細(xì)節(jié)表示方式,由一個(gè)可變形、由細(xì)枝中心線擴(kuò)展而成的四邊形條帶來(lái)表示細(xì)枝及其子枝和葉子,然后用預(yù)計(jì)算的枝片紋理實(shí)現(xiàn)葉簇的外觀。這種方法能顯著地減少模型的面片數(shù)量,又能獲得更多細(xì)節(jié),實(shí)現(xiàn)葉子和細(xì)枝條的模擬,并達(dá)到仿真效果。研究中葉子的建模繪制利用OpenGL提供的簡(jiǎn)單的線條圖形函數(shù)并利用實(shí)測(cè)的數(shù)據(jù)、參考葉簇方式繪制生成。
三維世界中的物體經(jīng)過(guò)一系列的幾何變換,通過(guò)投影使物體以合適的狀態(tài)顯示出來(lái),然后定義視口,使投影后的物體顯示其內(nèi),相應(yīng)的流程見(jiàn)圖2。
圖2 三維圖形繪制的實(shí)現(xiàn)流程
[7],基于OpenGL的樹(shù)木可視化可以分為5個(gè)步驟。
①坐標(biāo)變換,生成基本圖元:將現(xiàn)實(shí)世界中的物體顯示到計(jì)算機(jī)的二維屏幕上需要一系列復(fù)雜的過(guò)程,主要涉及多種坐標(biāo)系之間的轉(zhuǎn)換。根據(jù)基本圖形單元建立景物模型,并且對(duì)所建立的模型進(jìn)行數(shù)學(xué)描述。在 OpenGL中,所有的幾何體都是由若干個(gè)有序的頂點(diǎn)集合來(lái)描述,而不是將線段、多邊形組合起來(lái)構(gòu)造幾何體。
②裁剪變換:把景物模型放在三維空間的合適位置上,并且設(shè)置視點(diǎn)以觀察所感興趣的場(chǎng)景。三維幾何物體是在三維坐標(biāo)中考慮的,當(dāng)三維圖形的頂點(diǎn)繪制到屏幕上時(shí),它將是二維圖像。因此,將幾何物體的三維坐標(biāo)轉(zhuǎn)化到屏幕上的像素位置,需要在計(jì)算機(jī)進(jìn)行3種操作:矩陣相乘的變換,包括造型、視圖和投影等操作,這些操作包括旋轉(zhuǎn)、平移、縮放、反射、正交投影和透視投影;窗口裁減,由于場(chǎng)景是在一個(gè)矩形窗口中創(chuàng)建的,所以位于窗口之外的物體必須要裁減掉;視口變換,即在變換坐標(biāo)和屏幕像素之間建立對(duì)應(yīng)關(guān)系。
③色彩與光照:根據(jù)應(yīng)用要求來(lái)確定色彩,同時(shí)確定光照條件。
④光柵化,生成圖形片段:把景物模型的數(shù)學(xué)描述及其色彩信息轉(zhuǎn)換成計(jì)算機(jī)屏幕上的像素點(diǎn)。
⑤紋理貼圖:圖形硬件處理的幾何圖形越多,它所需要的渲染時(shí)間就越多,為了快速真實(shí)地反映現(xiàn)實(shí)感,采用簡(jiǎn)單的圖形應(yīng)用到一個(gè)多邊形的表面。文中樹(shù)干部分即采用該方法,先將采集的樹(shù)干紋理圖像進(jìn)行過(guò)濾,然后在物體表面進(jìn)行貼圖。
在Visual C++中應(yīng)用OpenGL編程的主要步驟具體有4個(gè)部分。
①建立應(yīng)用程序Win32API與OpenGL庫(kù)文件之間的聯(lián)系,并加入庫(kù)文件 opengl32.lib、glu32.lib 和 glaux.lib,在由MFCApplication Wizard生成的視圖類的頭文件中,加入gl.h、glu.h和glaux.h。應(yīng)用程序即可調(diào)用OpenGL提供的數(shù)據(jù)類型和函數(shù)。
②設(shè)置像素格式和管理著色描述表:在創(chuàng)建一個(gè)繪圖描述表RC(Render Context,又稱渲染描述表)之前,首先要設(shè)置像素格式,完成像素格式的設(shè)置后,需要為OpenGL建立RC,只有建立RC后,OpenGL才能調(diào)用繪圖原語(yǔ)在窗口中繪出圖形。通過(guò)填寫結(jié)構(gòu)PIXELFORMATDESCRIPTOR來(lái)設(shè)置顯示設(shè)備描述表DC(Device Context)的位圖格式屬性;MySetupPixelFormat()函數(shù)主要完成建立對(duì)所需像素格式的描述,選擇系統(tǒng)支持的最接近的像素格式,然后指定為DC的像素格式。圖形繪制完畢后,應(yīng)斷開(kāi)當(dāng)前線程與RC的聯(lián)系,并刪除RC,可在視圖類的WM_DESTROY消息處理函數(shù)中完成。
③建立OpenGL視點(diǎn),添加成員變量和成員函數(shù),調(diào)用OpenGL函數(shù)繪制圖形:主要是定義視景體、清除深度緩存、設(shè)置投影模式、建立光照模型、作圖、圖形平移、旋轉(zhuǎn)等,完成繪圖的初始化及圖形渲染繪制。
④消隱:物體被阻擋部分的光線不能到達(dá)觀察者的眼中,這些部分就是隱藏部分,是不可見(jiàn)的。如果要使計(jì)算機(jī)顯示具有真實(shí)感的三維物體,必須在視點(diǎn)確定之后,就將物體表面上不可見(jiàn)的點(diǎn)、線、面消去。OpenGL執(zhí)行這一過(guò)程的方法叫做圖形消隱。
2.3.1 樹(shù)干模擬
為了讓繪制的圖形與現(xiàn)實(shí)中的樹(shù)干看起來(lái)更加接近,根據(jù)前面構(gòu)建的樹(shù)干模型,將樹(shù)干看成是由一系列圓臺(tái)體和一個(gè)圓錐體組成,樹(shù)干的橫斷面幾何形狀近似為圓形。具體方法就是將樹(shù)干分為合適的若干段(圓臺(tái)),而不同段的上下底直徑可以通過(guò)實(shí)測(cè)數(shù)據(jù)或者樹(shù)木的削度方程,即不同高度處計(jì)算出來(lái)的直徑來(lái)獲得,主要參數(shù)包括標(biāo)準(zhǔn)地號(hào)、樹(shù)木號(hào)、RH(相對(duì)高系數(shù))、樹(shù)高、對(duì)應(yīng)樹(shù)高處的直徑等。這樣就會(huì)模擬出和現(xiàn)實(shí)相接近的圖形,并且使模擬出來(lái)的圖形能夠具有生物學(xué)的意義。
首先,讀取實(shí)測(cè)數(shù)據(jù)并進(jìn)行數(shù)據(jù)有效性檢查。單木實(shí)測(cè)靜態(tài)數(shù)據(jù)文件以EXCEL形式存放。包括以下字段項(xiàng):標(biāo)準(zhǔn)地號(hào)(穆棱混交林一號(hào)地)、解析木號(hào)(紅松平均木)、RH、h(相對(duì)高)、D(相對(duì)高處帶皮直徑)、樹(shù)高(樹(shù)木全高)。結(jié)構(gòu)形式及數(shù)據(jù)如表1所示。
其次,建立一個(gè)結(jié)構(gòu)體,表示和存儲(chǔ)各個(gè)圓臺(tái)體的信息,包括三維坐標(biāo)、旋轉(zhuǎn)角度、上下兩個(gè)面的半徑、圓臺(tái)體高度、頂點(diǎn)數(shù)組等。
然后,通過(guò)改進(jìn)后的圓臺(tái)體繪制函數(shù)進(jìn)行繪制。OpenGL提供了圓臺(tái)體幾何繪制函數(shù)gluCylinder(),但由于該函數(shù)控制的每一段圓臺(tái)體上、下面的邊數(shù)并不能隨著模擬樹(shù)干的斷面直徑進(jìn)行變化,同時(shí)在紋理貼圖方面也不能根據(jù)樹(shù)高的大小進(jìn)行調(diào)節(jié),所以將不同的圓臺(tái)按照合適的角度、位置拼接出來(lái)合適的圖形,是研究的關(guān)鍵所在。
完成樹(shù)干繪制后,為了達(dá)到更加逼真的顯示效果,應(yīng)對(duì)樹(shù)干進(jìn)行渲染。具體實(shí)現(xiàn)方法是:從下自上先渲染第一個(gè)圓臺(tái)體,然后將坐標(biāo)系在Y軸方向上移第一個(gè)圓臺(tái)體的高度,進(jìn)行第二個(gè)圓臺(tái)體的渲染,再上移第二個(gè)圓臺(tái)體的高度,渲染第三個(gè)……依次遞進(jìn)。
2.3.2 枝條模擬
通過(guò)前人的理論研究和實(shí)踐分析發(fā)現(xiàn)[9],一級(jí)枝在樹(shù)干上的垂直分布,基本符合均勻分布。一級(jí)干主要參數(shù)有枝的方位角、著枝角度、彎曲度、枝長(zhǎng)、枝的基徑、枝長(zhǎng)、弦長(zhǎng)、弓高。通過(guò)方位角、著枝深度(或總著枝深度)和著枝角度控制一級(jí)枝生長(zhǎng)的位置,通過(guò)枝節(jié)數(shù)、枝長(zhǎng)和基徑的生長(zhǎng)方程控制一級(jí)枝的生長(zhǎng)及形態(tài)。結(jié)構(gòu)形式及數(shù)據(jù)如表2所示。
表1 解析木樹(shù)干實(shí)測(cè)數(shù)據(jù)
表2 解析木部分枝條實(shí)測(cè)數(shù)據(jù)
枝條的繪制方法與樹(shù)干的繪制過(guò)程基本一致,如果樹(shù)枝是直的,那么可以將枝條看成是圓錐體,如果是彎曲樹(shù)枝,枝條的幾何形狀可以近似看成是由若干段圓臺(tái)體加一個(gè)圓錐體相互偏轉(zhuǎn)一定的角度組成拼接的弧線。一般,自然情況下生長(zhǎng)的枝條都具有一定的弧度,所以文中所繪制的都是帶有一定弧度的枝條。同時(shí),基于復(fù)雜的分枝結(jié)構(gòu),采用遞歸算法生成枝條。為了進(jìn)一步繪制多樣化和更加自然的樹(shù)木,在樹(shù)木生長(zhǎng)過(guò)程中引入隨機(jī)性和枝粗衰減系數(shù),其中隨機(jī)性包括多個(gè)生成規(guī)則的隨機(jī)選擇,生成分枝前的隨機(jī)擾動(dòng)[10]。
2.3.3 樹(shù)葉模擬
葉子的主要參數(shù)包括葉的葉數(shù)、束量、長(zhǎng)度、寬度以及高度。其中葉數(shù)為一束葉子的針數(shù),紅松葉子是五針一束,所以葉數(shù)為5,在繪制時(shí)采用了相連具有一定角度的5根線條表示;葉子的長(zhǎng)度、寬度、高度由實(shí)測(cè)數(shù)據(jù)取值(將樹(shù)冠分為上中下3層,每層各挑選一個(gè)標(biāo)準(zhǔn)枝并采集葉子樣本,再將葉子樣本按長(zhǎng)、中、短分為3組,并分別測(cè)得長(zhǎng)、寬、高各值。見(jiàn)表3),通過(guò)OpenGL線條寬度設(shè)定。由于樹(shù)葉多,很難進(jìn)行方位角、著枝角度等參數(shù)的測(cè)量,所以一律采用隨機(jī)方法產(chǎn)生。
在繪制樹(shù)葉時(shí),每束用相連且有一定角度的5根線條表示,每根線條由若干段組成,且稍有扭曲,所以將每段偏轉(zhuǎn)一定的角度來(lái)反映葉子的扭曲。葉子的初始化由兩個(gè)函數(shù)完成。InitMyLeavs()函數(shù)完成樹(shù)干上最上一段樹(shù)干(當(dāng)年生)的葉子初始化,另一個(gè)函數(shù)InitMyLeaf()對(duì)具體的枝條葉子初始化。葉子的渲染由MyShowLeavs()函數(shù)通過(guò)調(diào)用葉子結(jié)構(gòu)體成員函數(shù)Draw()實(shí)現(xiàn)。
表3 解析木樹(shù)葉實(shí)測(cè)數(shù)據(jù)
圖3 樹(shù)木可視化的效果
真實(shí)感的三維地形繪制,必須采用現(xiàn)實(shí)世界中的具體數(shù)據(jù)來(lái)構(gòu)造,一般采用數(shù)字高程模型方法。這種方法生成的地形精度高,但是數(shù)據(jù)結(jié)構(gòu)復(fù)雜,圖形生成速度慢。文中對(duì)地形方面沒(méi)有那么高的要求,主要是滿足感官上的要求,所以采用模擬地形的方法隨機(jī)生成地形,但是不能和現(xiàn)實(shí)世界一一對(duì)應(yīng)。
在場(chǎng)景中繪制藍(lán)天白云效果,可以增強(qiáng)場(chǎng)景的真實(shí)程度,繪制方法主要有盒子方法和球形方法[11],雖然這兩種方法模擬出的云彩都有流動(dòng)感,但是兩者有較大差別。為了增強(qiáng)系統(tǒng)的運(yùn)行速度,采用盒子方法,簡(jiǎn)單建立天空效果。云彩的繪制時(shí)通過(guò)一個(gè)四邊形上貼一幅云彩圖像來(lái)模擬,流動(dòng)效果是通過(guò)變換紋理坐標(biāo)來(lái)實(shí)現(xiàn),再加上霧化效果以達(dá)到更加逼真的效果。
在總結(jié)分析前人工作的基礎(chǔ)上,重點(diǎn)圍繞基于幾何實(shí)體的樹(shù)木建模技術(shù)對(duì)樹(shù)木三維可視化技術(shù)進(jìn)行了研究探討,并對(duì)紅松進(jìn)行了三維可視化模擬,實(shí)現(xiàn)了較逼真的樹(shù)木三維可視化效果,真實(shí)描繪樹(shù)木生長(zhǎng)的環(huán)境。但也存一些缺點(diǎn)和不足,有待進(jìn)一步的研究與提高:改進(jìn)渲染算法,有效降低林木渲染的復(fù)雜性問(wèn)題;與計(jì)算機(jī)硬件技術(shù)相結(jié)合,進(jìn)一步提高渲染速度的問(wèn)題;采用更加合適的構(gòu)圖法,從而建立更加通用的樹(shù)木模型,解決樹(shù)木種類繁多、不能適合所有樹(shù)種的問(wèn)題;動(dòng)態(tài)模擬樹(shù)木生長(zhǎng)過(guò)程問(wèn)題。
參考文獻(xiàn)
[1]陳彥云,林琿,孫漢秋,等.高度復(fù)雜植物場(chǎng)景的構(gòu)造和真實(shí)感繪制[J].計(jì)算機(jī)學(xué)報(bào),2000,23(9):917-925.
[2]郝小琴.林業(yè)科學(xué)與可視化[J].林業(yè)科學(xué),2001,37(6):105-109.
[3]劉倩.三維可視化技術(shù)的應(yīng)用研究[D].鄭州:河南農(nóng)業(yè)大學(xué),2008.
[4]劉兆剛.樟子松人工林樹(shù)冠動(dòng)態(tài)三維圖形模擬技術(shù)的研究[D].哈爾濱:東北林業(yè)大學(xué),2003.
[5]Godin C,Caraglio Y.A Multiscale Model of Plant Topological Structures[J].Jtheor Biol,1998,191(1):1-46.
[6]肖銳.樟子松人工林樹(shù)木構(gòu)筑型的研究[D].哈爾濱:東北林業(yè)大學(xué),2006.
[7]費(fèi)廣正,蘆麗丹,陳立新.可視化OpenGL程序設(shè)計(jì)[M].北京:清華大學(xué)出版社,2001.
[8]Wright R S,Michael S Jr.OpenGL超級(jí)寶典[M].3版.徐波,譯.北京:人民郵電出版社,2005.
[9]雷相東,常敏,陸元昌,等.長(zhǎng)白落葉松單木生長(zhǎng)可視化系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,2006,42(17):180-183.
[10]陳曉,彭國(guó)華,趙叢.基于分形三維L系統(tǒng)的真實(shí)樹(shù)木搖曳動(dòng)態(tài)模擬[J].計(jì)算機(jī)工程與應(yīng)用,2008,44(26):77-79.
[11]和平鴿工作室.OpenGL高級(jí)編程與可視化系統(tǒng)開(kāi)發(fā):高級(jí)編程篇[M].2版.北京:中國(guó)水利水電出版社,2006.