劉玉耀,張?zhí)t,古麗米拉·克孜爾別克
(新疆農(nóng)業(yè)大學(xué) 計算機與信息工程學(xué)院,新疆 烏魯木齊 830052)
阿爾泰金蓮花[1]主要分布在中國新疆北部(塔城、阿爾泰等地),是新疆典型的藥用植物之一,具有清熱解毒、止血止咳、降血壓等功效,在醫(yī)學(xué)上有很高的藥用研究價值。在研究過程中,研究人員無法全程觀察阿爾泰金蓮花的生長變化過程,通過計算機的可視化模擬可較為真實地模擬動態(tài)生長過程,為阿爾泰金蓮花的深入研究提供借鑒。虛擬植物[2]始于20世紀60年代,國內(nèi)外研究人員先后對虛擬植物展開研究,取得了一定的研究成果。澳大利亞研究機構(gòu)基于L系統(tǒng)研發(fā)了Virtual Plants軟件,可以用來模擬花生、小麥、玉米等農(nóng)作物的生長;法國農(nóng)業(yè)發(fā)展研究中心(CIRAD)利用自動機模型以及植物學(xué)長發(fā)育規(guī)律研制了AMAP模型[3],并成功模擬了多個種類植物;國紅等[4]利用Greenlab模型模擬了1、3和5年生油松幼樹形態(tài);王美麗[5]基于L系統(tǒng)實現(xiàn)了小麥根系在外界因素中的動態(tài)生長模擬;周娟等[6]將分析方法和數(shù)學(xué)模型相結(jié)合,構(gòu)建棉花形態(tài)模型,以反映棉花器官形態(tài)特征參數(shù)和影響因子之間的關(guān)系。然而從總體上來看,虛擬植物的研究主要集中在重要的經(jīng)濟作物(小麥、玉米、棉花等)和自然景觀設(shè)計上[7-8],涉及藥用植物方面的研究還比較薄弱。對此,文中通過實驗觀測提取阿爾泰金蓮花各器官特征參數(shù),建立各器官幾何模型,并結(jié)合參數(shù)L系統(tǒng)方法,實現(xiàn)阿爾泰金蓮花三維可視化模擬。
該系統(tǒng)基于參數(shù)L系統(tǒng)[9-10]、植物生理生態(tài)學(xué)以及計算機圖形學(xué)來實現(xiàn)阿爾泰金蓮花三維可視化模擬。其中利用參數(shù)L系統(tǒng)表現(xiàn)植株的拓撲結(jié)構(gòu),基于植物生理生態(tài)學(xué)將各器官組合成完整植株,最后通過計算機展示阿爾泰金蓮花靜態(tài)及動態(tài)的三維形態(tài)。功能上可分為5大模塊:器官可視化模塊、單株可視化模塊、模型操作模塊、數(shù)據(jù)存儲模塊、用戶交互模塊。圖1為阿爾泰金蓮花可視化模擬系統(tǒng)功能結(jié)構(gòu)圖。
圖1 系統(tǒng)功能結(jié)構(gòu)
(1)器官可視化模塊:主要包括莖、葉片、花的可視化。系統(tǒng)根據(jù)各器官的形態(tài)特征進行歸類,分別采用不同的建模方法對莖、葉片以及花朵進行建模,并載入紋理貼圖使各器官模擬效果更加逼真。此外,阿爾泰金蓮花在不同生長階段各器官的形態(tài)結(jié)構(gòu)會有所不同,因此系統(tǒng)引入了不同的生長參數(shù)以控制各器官的形態(tài)變化。
(2)單株的可視化模塊:包括靜態(tài)可視化和動態(tài)生長可視化。靜態(tài)可視化,應(yīng)用大量的測定數(shù)據(jù)建立植物或器官的幾何模型,以靜態(tài)的方式展示阿爾泰金蓮花的形態(tài)模型;動態(tài)生長可視化,系統(tǒng)通過提取阿爾泰金蓮花生長規(guī)則建立模型,能夠動態(tài)描述阿爾泰金蓮花形態(tài)結(jié)構(gòu)的生長規(guī)律。
(3)模型操作模塊:包括模型載入和模型導(dǎo)出。系統(tǒng)能夠載入當(dāng)前大部分模型文件格式,同時也可以導(dǎo)出當(dāng)前選定模型,導(dǎo)出后的模型能夠很好地兼容其他建模軟件。
(4)數(shù)據(jù)存儲模塊:使用數(shù)據(jù)庫存儲各種數(shù)據(jù),包括阿爾泰金蓮花各器官形態(tài)參數(shù),初始化參數(shù),文法規(guī)則等。還可以對各器官模型進行存儲,每個模型都由頂點、三角形索引、法向量、紋理坐標等信息組成,將這些信息導(dǎo)出到文本文件,然后存儲到數(shù)據(jù)庫中。
(5)用戶交互模塊:系統(tǒng)通過鍵盤輸入修改各種參數(shù),如文法規(guī)則、葉片大小、旋轉(zhuǎn)角度、植株高度等實現(xiàn)與用戶交互,同時還可以通過鼠標移動視角,達到全方位觀測植物的結(jié)構(gòu)形態(tài)。
阿爾泰金蓮花器官的可視化模擬,主要針對葉片、花朵、莖的建模。在自然界中,阿爾泰金蓮花由于受到內(nèi)外因素的影響,不同植株之間同一類器官的形態(tài)結(jié)構(gòu)會有所不同。通過對不同生長階段的阿爾泰金蓮花各器官的外觀形態(tài)進行觀測、歸納分析之后,提取各器官特征參數(shù),采用不同的建模方法再結(jié)合植物生理生態(tài)學(xué)建立各器官的幾何模型。
阿爾泰金蓮花的莖高為26~70 cm,形態(tài)結(jié)構(gòu)比較簡單,無分支。節(jié)間形狀類似于圓柱體,因此可以利用柱體來模擬莖的生長,同時設(shè)置長度變量和粗度變量分別控制莖的長度以及莖的粗度。莖在生長過程中并不是筆直生長,如光照引起植物向入射方向產(chǎn)生的彎曲等,引入彎曲變量可以較好地模擬莖在自然生長過程中產(chǎn)生的彎曲效果。最后,使用材質(zhì)、紋理貼圖、燈光等讓模擬效果更加逼真。
葉片建模的方法主要包括基于幾何特征的方法、基于圖像的造型[11]、基于自由曲線和曲面的方法[12-13]。經(jīng)過研究對比分析,對于幾何特征的方法,阿爾泰金蓮花形態(tài)結(jié)構(gòu)較為復(fù)雜,葉片幾何特征較難提?。粚τ谧杂汕€和曲面的方法,阿爾泰金蓮花葉片中央全裂片菱形,邊緣有鋸齒狀,而該方法適用于構(gòu)建比較光滑的曲面,對于一些有棱角或者邊緣比較尖銳的曲面效果就不太理想;對于基于圖形的造型,圖片數(shù)據(jù)來源比較容易,建模直接對圖片進行分析和處理,從中提取植物的特征信息,從而使得模擬效果更加具有真實感。故對阿爾泰金蓮花葉片的幾何建模采用基于圖像造型的方法來實現(xiàn)。
其中,邊緣提取是基于圖像的造型重要技術(shù)之一。常見的邊緣算法有Canny、Sobel、Roberts、Prewitt等算子,分別使用這些算子提取阿爾泰金蓮花葉片邊緣信息,分析提取結(jié)果,可以看出Canny算子邊緣更清晰,效果更好。因此采用Canny算子并加入人為干預(yù),提取阿爾泰金蓮花葉片的輪廓信息,將提取后的葉片輪廓進行三角化剖分,經(jīng)過這一系列操作,完成葉片建模。
圖2為阿爾泰金蓮花葉片幾何建模過程。
圖2 阿爾泰金蓮花葉片建模過程
2.3.1 花的形態(tài)結(jié)構(gòu)
阿爾泰金蓮花的花朵由花萼、花瓣、雄蕊和雌蕊組成,萼片橙色或黃色,10~15枚,倒卵形或?qū)挼孤研危敹藞A形;花瓣比雄蕊稍短或等長,線形,頂端漸變狹;雄蕊長7~13 mm,花絲長6~10 mm,花藥長3~4 mm,心皮約16,花柱紫色。
2.3.2 花的幾何建模
將花朵各器官分類后,分別采取不同的方法建立模型,具體方法如下所示:
對于單個萼片和花瓣的模擬,采用比較常用的雙三次張量積Bezier曲面來構(gòu)造。m×n次張量積Bezier曲面公式如下:
(1)
Bezier曲面矩陣表達式為:
p(u,v)=[B0,n(u),B1,n(u),…,Bm,m(u)]
(2)
當(dāng)m=n=3時,為雙三次張量積Bezier曲面,創(chuàng)建一個雙三次Bezier曲面需要4×4控制點和兩個變量t、v。計算在分量v上沿4條平行曲線的點,然后利用這4個點計算在分量t上的點,計算出這些點之后使用三角帶連接它們,畫出貝塞爾曲面。
根據(jù)提取的阿爾泰金蓮花花朵的單個萼片和花瓣的特征參數(shù),分別建立16個控制點的幾何矩陣P1[4][4][3]、P2[4][4][3]進行描述,萼片曲面如圖3(a),花瓣曲面如圖3(b)。
圖3 花朵部分貝塞爾曲面
其中控制點矩陣P1、P2為:
(3)
(4)
對雄蕊和雌蕊的模擬,觀察其外形結(jié)構(gòu),花絲和花柱類似,多為細長圓柱結(jié)構(gòu),花藥和柱頭類似,多為橢球型結(jié)構(gòu)。因此對該部分幾何建??煞譃閮深悾阂活愂怯芍w變形之后的花絲和花柱幾何模型,另一類是由橢球體變形之后的花藥和柱頭幾何模型。
最后,根據(jù)阿爾泰金蓮花花朵的拓撲結(jié)構(gòu),定義一個繪制函數(shù)實現(xiàn)阿爾泰金蓮花花朵的幾何模型。為了使模擬效果更加逼真,可以加入材質(zhì)、紋理貼圖、光照等。
阿爾泰金蓮花單株的可視化模擬就是定量化測定植株的拓撲結(jié)構(gòu)、幾何特征等,通過數(shù)學(xué)統(tǒng)計、模式識別等方法提取各器官形態(tài)結(jié)構(gòu)特征以建立器官模型,然后基于植物生理生態(tài)學(xué)對各器官進行組合,在計算機上再現(xiàn)植株的三維模型。
單株的可視化模擬又分為靜態(tài)可視化模擬和動態(tài)生長可視化模擬[14-15]。
靜態(tài)可視化模擬主要側(cè)重于植物形態(tài)結(jié)構(gòu)的仿真,根據(jù)測定的植物的形態(tài)結(jié)構(gòu)特征數(shù)據(jù),建立植物或器官模型,再結(jié)合計算圖形學(xué)以靜態(tài)方式實現(xiàn)植物的三維可視化模擬。該類模型能夠精確地再現(xiàn)阿爾泰金蓮花各器官的形態(tài)結(jié)構(gòu),可用來分析與其結(jié)構(gòu)有關(guān)的生理生態(tài)、生物物理過程,如冠層光分布的分析、形態(tài)結(jié)構(gòu)對遙感檢測精度的影響等。
靜態(tài)可視化模擬的關(guān)鍵是可視化模擬效果的逼真性,因此在模型中加入顏色、光照、紋理映射、渲染等技術(shù)。雖然靜態(tài)可視化模擬在外部形態(tài)的逼真性上具有很大的優(yōu)勢,但不適合反映阿爾泰金蓮花形態(tài)結(jié)構(gòu)的動態(tài)規(guī)律。
動態(tài)生長可視化模擬主要側(cè)重于植物生長發(fā)育的模擬,對植物生長過程中拓撲結(jié)構(gòu)演變以及幾何形態(tài)變化規(guī)律的研究,提取生長規(guī)則建立相應(yīng)模型。因此文中采用比較著名的植物模型L系統(tǒng)以可視化的方式表現(xiàn)阿爾泰金蓮花拓撲結(jié)構(gòu)。阿爾泰金蓮花屬于多年生草本植物,地上部分由莖、葉、花等器官組成,莖高70 cm,基生葉,花單獨頂生。在阿爾泰金蓮花生理發(fā)育階段,分別建立相應(yīng)文法規(guī)則,實現(xiàn)動態(tài)生長可視化模擬。其中,生理發(fā)育階段可分為種子萌發(fā)、營養(yǎng)生長、生殖生長三個階段。
記種子萌發(fā)為t1,營養(yǎng)生長為t2,生殖生長為t3,則參數(shù)L系統(tǒng)的文法規(guī)則如下所示:
ω:A(0)
P1:A(t):t<=t1→~(8)!(0.95)F(t*0.12)/(137.5)[&(30)J(t*1.05)]A(t+1)
P2:A(t):t<=t2→~(8)!(0.95)F(t*2.4)/(137.5)[&(60)J(t*1.5)]A(t+1)
P3:A(t):t=t3→~(8)!(0.95)F(t*0.005)[&(80)M]A(t+1)
公理中A(0)表示植株的生長時間為0;產(chǎn)生式P1表示植株處于種子萌發(fā)階段,此時植株生長出莖、葉形成幼芽;產(chǎn)生式P2表示植株處于營養(yǎng)生長階段,此時植株快速生長,莖逐漸增高、增粗,葉片也不斷伸長,增大,式中J表示葉片模型,通過改變括號內(nèi)的參數(shù)實現(xiàn)葉片逐漸生長過程;產(chǎn)生式P3表示植株處于生殖生長階段,此時植株開始分化形成花芽,花芽逐漸生長形成花朵,式中M表示花朵模型。其中,~()表示隨機旋轉(zhuǎn)角度;!()表示莖粗度的縮放比例;/()表示莖和器官之間的夾角。
對于葉片和花朵的器官模型,采用前文介紹的方法進行構(gòu)建,然后根據(jù)文法規(guī)則載入系統(tǒng),最終實現(xiàn)阿爾泰金蓮花的動態(tài)可視化模擬。
系統(tǒng)以Qt4.8為平臺,結(jié)合OpenGL[16],使用MYSQL為數(shù)據(jù)庫實現(xiàn)可交互式的阿爾泰金蓮花三維可視化模擬。系統(tǒng)主界面分為左右兩部分,左半側(cè)為三維展示區(qū)域,在該區(qū)域內(nèi)用戶可以通過鼠標事件來任意操作視角,鼠標左鍵移動視角,中鍵和右鍵縮放視角,達到對阿爾泰金蓮花各器官的全方位觀測;右半側(cè)為參數(shù)控制區(qū)域,在該區(qū)域內(nèi)用戶根據(jù)需求,調(diào)整控制參數(shù)值,改變阿爾泰金蓮花外部形態(tài)結(jié)構(gòu)。系統(tǒng)還使用第三方模型加載庫Assimp,實現(xiàn)了對植物各器官模型的導(dǎo)入導(dǎo)出功能。Assimp可以導(dǎo)入十幾種目前比較主流的模型格式文件,如FBX、OBJ、3ds等,同時還可以導(dǎo)出部分模型格式。該功能主要針對結(jié)構(gòu)比較精細復(fù)雜的模型,這些模型需要經(jīng)過3D建模工具的特殊處理,然后導(dǎo)入到系統(tǒng)中進行使用。
使用該系統(tǒng)分別模擬阿爾泰金蓮花動態(tài)生長過程(見圖4)。其中花開過程主要是通過改變貝塞爾曲面的控制點、曲面旋轉(zhuǎn)角度、初始坐標等實現(xiàn)。
圖4 阿爾泰金蓮花動態(tài)生長效果
通過對阿爾泰金蓮花各器官進行分類,提取特征參數(shù)分別建立莖、葉片、花朵幾何模型,通過調(diào)整控制參數(shù)能夠較好地描述阿爾泰金蓮花各器官的形態(tài)建成過程。利用參數(shù)L系統(tǒng),再結(jié)合各器官幾何形態(tài)結(jié)構(gòu)模型,實現(xiàn)阿爾泰金蓮花動態(tài)生長可視化模擬,能夠較為真實地反映整個植物的生長過程。目前,該研究尚有不足,阿爾泰金蓮花主要入藥部位是花朵,但系統(tǒng)只針對植株地上部分進行了可視化模擬。眾所周知,根系在植物的整個生命周期中起著至關(guān)重要的作用,故在今后的研究中將加入地下部分的可視化模擬,以建立完整的植株模型,從而更加真實地模擬植物的動態(tài)生長過程。