劉玉耀,張太紅,古麗米拉·克孜爾別克
(新疆農業大學 計算機與信息工程學院,新疆 烏魯木齊 830052)
阿爾泰金蓮花[1]主要分布在中國新疆北部(塔城、阿爾泰等地),是新疆典型的藥用植物之一,具有清熱解毒、止血止咳、降血壓等功效,在醫學上有很高的藥用研究價值。在研究過程中,研究人員無法全程觀察阿爾泰金蓮花的生長變化過程,通過計算機的可視化模擬可較為真實地模擬動態生長過程,為阿爾泰金蓮花的深入研究提供借鑒。虛擬植物[2]始于20世紀60年代,國內外研究人員先后對虛擬植物展開研究,取得了一定的研究成果。澳大利亞研究機構基于L系統研發了Virtual Plants軟件,可以用來模擬花生、小麥、玉米等農作物的生長;法國農業發展研究中心(CIRAD)利用自動機模型以及植物學長發育規律研制了AMAP模型[3],并成功模擬了多個種類植物;國紅等[4]利用Greenlab模型模擬了1、3和5年生油松幼樹形態;王美麗[5]基于L系統實現了小麥根系在外界因素中的動態生長模擬;周娟等[6]將分析方法和數學模型相結合,構建棉花形態模型,以反映棉花器官形態特征參數和影響因子之間的關系。然而從總體上來看,虛擬植物的研究主要集中在重要的經濟作物(小麥、玉米、棉花等)和自然景觀設計上[7-8],涉及藥用植物方面的研究還比較薄弱。對此,文中通過實驗觀測提取阿爾泰金蓮花各器官特征參數,建立各器官幾何模型,并結合參數L系統方法,實現阿爾泰金蓮花三維可視化模擬。
該系統基于參數L系統[9-10]、植物生理生態學以及計算機圖形學來實現阿爾泰金蓮花三維可視化模擬。其中利用參數L系統表現植株的拓撲結構,基于植物生理生態學將各器官組合成完整植株,最后通過計算機展示阿爾泰金蓮花靜態及動態的三維形態。功能上可分為5大模塊:器官可視化模塊、單株可視化模塊、模型操作模塊、數據存儲模塊、用戶交互模塊。圖1為阿爾泰金蓮花可視化模擬系統功能結構圖。

圖1 系統功能結構
(1)器官可視化模塊:主要包括莖、葉片、花的可視化。系統根據各器官的形態特征進行歸類,分別采用不同的建模方法對莖、葉片以及花朵進行建模,并載入紋理貼圖使各器官模擬效果更加逼真。此外,阿爾泰金蓮花在不同生長階段各器官的形態結構會有所不同,因此系統引入了不同的生長參數以控制各器官的形態變化。
(2)單株的可視化模塊:包括靜態可視化和動態生長可視化。靜態可視化,應用大量的測定數據建立植物或器官的幾何模型,以靜態的方式展示阿爾泰金蓮花的形態模型;動態生長可視化,系統通過提取阿爾泰金蓮花生長規則建立模型,能夠動態描述阿爾泰金蓮花形態結構的生長規律。
(3)模型操作模塊:包括模型載入和模型導出。系統能夠載入當前大部分模型文件格式,同時也可以導出當前選定模型,導出后的模型能夠很好地兼容其他建模軟件。
(4)數據存儲模塊:使用數據庫存儲各種數據,包括阿爾泰金蓮花各器官形態參數,初始化參數,文法規則等。還可以對各器官模型進行存儲,每個模型都由頂點、三角形索引、法向量、紋理坐標等信息組成,將這些信息導出到文本文件,然后存儲到數據庫中。
(5)用戶交互模塊:系統通過鍵盤輸入修改各種參數,如文法規則、葉片大小、旋轉角度、植株高度等實現與用戶交互,同時還可以通過鼠標移動視角,達到全方位觀測植物的結構形態。
阿爾泰金蓮花器官的可視化模擬,主要針對葉片、花朵、莖的建模。在自然界中,阿爾泰金蓮花由于受到內外因素的影響,不同植株之間同一類器官的形態結構會有所不同。通過對不同生長階段的阿爾泰金蓮花各器官的外觀形態進行觀測、歸納分析之后,提取各器官特征參數,采用不同的建模方法再結合植物生理生態學建立各器官的幾何模型。
阿爾泰金蓮花的莖高為26~70 cm,形態結構比較簡單,無分支。節間形狀類似于圓柱體,因此可以利用柱體來模擬莖的生長,同時設置長度變量和粗度變量分別控制莖的長度以及莖的粗度。莖在生長過程中并不是筆直生長,如光照引起植物向入射方向產生的彎曲等,引入彎曲變量可以較好地模擬莖在自然生長過程中產生的彎曲效果。最后,使用材質、紋理貼圖、燈光等讓模擬效果更加逼真。
葉片建模的方法主要包括基于幾何特征的方法、基于圖像的造型[11]、基于自由曲線和曲面的方法[12-13]。經過研究對比分析,對于幾何特征的方法,阿爾泰金蓮花形態結構較為復雜,葉片幾何特征較難提取;對于自由曲線和曲面的方法,阿爾泰金蓮花葉片中央全裂片菱形,邊緣有鋸齒狀,而該方法適用于構建比較光滑的曲面,對于一些有棱角或者邊緣比較尖銳的曲面效果就不太理想;對于基于圖形的造型,圖片數據來源比較容易,建模直接對圖片進行分析和處理,從中提取植物的特征信息,從而使得模擬效果更加具有真實感。故對阿爾泰金蓮花葉片的幾何建模采用基于圖像造型的方法來實現。
其中,邊緣提取是基于圖像的造型重要技術之一。常見的邊緣算法有Canny、Sobel、Roberts、Prewitt等算子,分別使用這些算子提取阿爾泰金蓮花葉片邊緣信息,分析提取結果,可以看出Canny算子邊緣更清晰,效果更好。因此采用Canny算子并加入人為干預,提取阿爾泰金蓮花葉片的輪廓信息,將提取后的葉片輪廓進行三角化剖分,經過這一系列操作,完成葉片建模。
圖2為阿爾泰金蓮花葉片幾何建模過程。

圖2 阿爾泰金蓮花葉片建模過程
2.3.1 花的形態結構
阿爾泰金蓮花的花朵由花萼、花瓣、雄蕊和雌蕊組成,萼片橙色或黃色,10~15枚,倒卵形或寬倒卵形,頂端圓形;花瓣比雄蕊稍短或等長,線形,頂端漸變狹;雄蕊長7~13 mm,花絲長6~10 mm,花藥長3~4 mm,心皮約16,花柱紫色。
2.3.2 花的幾何建模
將花朵各器官分類后,分別采取不同的方法建立模型,具體方法如下所示:
對于單個萼片和花瓣的模擬,采用比較常用的雙三次張量積Bezier曲面來構造。m×n次張量積Bezier曲面公式如下:

(1)

Bezier曲面矩陣表達式為:
p(u,v)=[B0,n(u),B1,n(u),…,Bm,m(u)]

(2)
當m=n=3時,為雙三次張量積Bezier曲面,創建一個雙三次Bezier曲面需要4×4控制點和兩個變量t、v。計算在分量v上沿4條平行曲線的點,然后利用這4個點計算在分量t上的點,計算出這些點之后使用三角帶連接它們,畫出貝塞爾曲面。
根據提取的阿爾泰金蓮花花朵的單個萼片和花瓣的特征參數,分別建立16個控制點的幾何矩陣P1[4][4][3]、P2[4][4][3]進行描述,萼片曲面如圖3(a),花瓣曲面如圖3(b)。

圖3 花朵部分貝塞爾曲面
其中控制點矩陣P1、P2為:
(3)
(4)
對雄蕊和雌蕊的模擬,觀察其外形結構,花絲和花柱類似,多為細長圓柱結構,花藥和柱頭類似,多為橢球型結構。因此對該部分幾何建模可分為兩類:一類是由柱體變形之后的花絲和花柱幾何模型,另一類是由橢球體變形之后的花藥和柱頭幾何模型。
最后,根據阿爾泰金蓮花花朵的拓撲結構,定義一個繪制函數實現阿爾泰金蓮花花朵的幾何模型。為了使模擬效果更加逼真,可以加入材質、紋理貼圖、光照等。
阿爾泰金蓮花單株的可視化模擬就是定量化測定植株的拓撲結構、幾何特征等,通過數學統計、模式識別等方法提取各器官形態結構特征以建立器官模型,然后基于植物生理生態學對各器官進行組合,在計算機上再現植株的三維模型。
單株的可視化模擬又分為靜態可視化模擬和動態生長可視化模擬[14-15]。
靜態可視化模擬主要側重于植物形態結構的仿真,根據測定的植物的形態結構特征數據,建立植物或器官模型,再結合計算圖形學以靜態方式實現植物的三維可視化模擬。該類模型能夠精確地再現阿爾泰金蓮花各器官的形態結構,可用來分析與其結構有關的生理生態、生物物理過程,如冠層光分布的分析、形態結構對遙感檢測精度的影響等。
靜態可視化模擬的關鍵是可視化模擬效果的逼真性,因此在模型中加入顏色、光照、紋理映射、渲染等技術。雖然靜態可視化模擬在外部形態的逼真性上具有很大的優勢,但不適合反映阿爾泰金蓮花形態結構的動態規律。
動態生長可視化模擬主要側重于植物生長發育的模擬,對植物生長過程中拓撲結構演變以及幾何形態變化規律的研究,提取生長規則建立相應模型。因此文中采用比較著名的植物模型L系統以可視化的方式表現阿爾泰金蓮花拓撲結構。阿爾泰金蓮花屬于多年生草本植物,地上部分由莖、葉、花等器官組成,莖高70 cm,基生葉,花單獨頂生。在阿爾泰金蓮花生理發育階段,分別建立相應文法規則,實現動態生長可視化模擬。其中,生理發育階段可分為種子萌發、營養生長、生殖生長三個階段。
記種子萌發為t1,營養生長為t2,生殖生長為t3,則參數L系統的文法規則如下所示:
ω: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;產生式P1表示植株處于種子萌發階段,此時植株生長出莖、葉形成幼芽;產生式P2表示植株處于營養生長階段,此時植株快速生長,莖逐漸增高、增粗,葉片也不斷伸長,增大,式中J表示葉片模型,通過改變括號內的參數實現葉片逐漸生長過程;產生式P3表示植株處于生殖生長階段,此時植株開始分化形成花芽,花芽逐漸生長形成花朵,式中M表示花朵模型。其中,~()表示隨機旋轉角度;!()表示莖粗度的縮放比例;/()表示莖和器官之間的夾角。
對于葉片和花朵的器官模型,采用前文介紹的方法進行構建,然后根據文法規則載入系統,最終實現阿爾泰金蓮花的動態可視化模擬。
系統以Qt4.8為平臺,結合OpenGL[16],使用MYSQL為數據庫實現可交互式的阿爾泰金蓮花三維可視化模擬。系統主界面分為左右兩部分,左半側為三維展示區域,在該區域內用戶可以通過鼠標事件來任意操作視角,鼠標左鍵移動視角,中鍵和右鍵縮放視角,達到對阿爾泰金蓮花各器官的全方位觀測;右半側為參數控制區域,在該區域內用戶根據需求,調整控制參數值,改變阿爾泰金蓮花外部形態結構。系統還使用第三方模型加載庫Assimp,實現了對植物各器官模型的導入導出功能。Assimp可以導入十幾種目前比較主流的模型格式文件,如FBX、OBJ、3ds等,同時還可以導出部分模型格式。該功能主要針對結構比較精細復雜的模型,這些模型需要經過3D建模工具的特殊處理,然后導入到系統中進行使用。
使用該系統分別模擬阿爾泰金蓮花動態生長過程(見圖4)。其中花開過程主要是通過改變貝塞爾曲面的控制點、曲面旋轉角度、初始坐標等實現。

圖4 阿爾泰金蓮花動態生長效果
通過對阿爾泰金蓮花各器官進行分類,提取特征參數分別建立莖、葉片、花朵幾何模型,通過調整控制參數能夠較好地描述阿爾泰金蓮花各器官的形態建成過程。利用參數L系統,再結合各器官幾何形態結構模型,實現阿爾泰金蓮花動態生長可視化模擬,能夠較為真實地反映整個植物的生長過程。目前,該研究尚有不足,阿爾泰金蓮花主要入藥部位是花朵,但系統只針對植株地上部分進行了可視化模擬。眾所周知,根系在植物的整個生命周期中起著至關重要的作用,故在今后的研究中將加入地下部分的可視化模擬,以建立完整的植株模型,從而更加真實地模擬植物的動態生長過程。