高 揚,黎展榮,魏 為,劉 峰
(廣西大學 計算機與電子信息學院,廣西 南寧 530004)
基于參數L系統的小葉榕樹建模方法研究
高 揚,黎展榮,魏 為,劉 峰
(廣西大學 計算機與電子信息學院,廣西 南寧 530004)
為建立具有較強真實感的觀賞性樹木模型,以南方小葉榕樹為建模研究對象,結合參數L系統,提出了根據特征差異性進行分步建模的方法。首先從整體的角度對小葉榕樹的形態特征進行分析,之后把樹木不同部位的特征參數化,結合參數L系統建立具有二級映射關系的產生式規則,以此構建具有良好交互性的小葉榕樹枝干模型。在最后繪制模型時,為減少模型的數據量以及保證繪制的高效率,使用改進的矩形面片拼接的方法來實現這些要求,借助OpenGL圖形庫繪制出整棵榕樹的模型。實驗結果表明:繪制出的模型數據量小,具有較強的真實感以及良好的交互性。
小葉榕樹;參數L系統;分步建模;交互性;OpenGL
對現實場景進行虛擬化時,樹木模型一直都是不可或缺的元素。在植物建模領域,L系統對植物的分支結構具有良好的模擬效果,已成為構建植物模型普遍采用的方法[1]。許多學者以此為基礎,對多種特定樹木模型及可視化進行了相關研究,成為樹木建模的一個重要組成部分。
在當前特定樹木模型研究領域,更多的是針對農業作物的模型研究,而對觀賞性植物的建模研究卻不多,后者更多地要求在整體形態方面具有良好的逼真度,且具有較好的交互性。雖然農業作物的建模研究多集中在植物的局部細節,但對于觀賞性植物的建模研究也有一定的借鑒意義。文獻[2-5]在L系統的基礎上,分別對四種作物的不同部位進行了建模,但對植物的整體形態缺少模型化描述,模型的可交互性也顯得不足,這些在觀賞性植物的建模方面仍需要做進一步研究。
小葉榕樹是一種典型的南方樹種,作為觀賞性植物具有很強的代表性,被廣泛應用于市政綠化、園藝設計等領域。文中以小葉榕樹為建模研究對象,從樹木的整體形態出發對各個部分進行形態分析,汲取對農業植物局部建模的優點,結合參數L系統來構建小葉榕樹的模型,使其具有良好的交互性,從而為園藝設計起到一定的指導作用,也為南方城市場景的虛擬化提供具有較強真實感的樹木模型。
1.1 參數L系統
美國生物學家Lindenmayer于1968年首次提出了一種字符串迭代重寫機制,這種機制便稱之為L系統[6]。L系統可以用來模擬植物的分支結構,但在面對樹木這類具有復雜分支結構的植物時,模擬能力還是相當有限。為此,Lindenmayer和Hanan[7-8]提出在L系統中引入參數的方法,構建了參數L系統。它在原先L系統的基礎上新增了一個形式參數集合,從而被定義為一個有序四元組:
G=
其中,V表示字母表;Σ表示形式參數集;ω表示起始字符串;P表示產生式,由前驅和后繼組成。
產生式的替換規則應當滿足的條件有:模塊中的字母和產生式前驅中的字母相同;模塊中實際參數的數目要和產生式前驅中的形式參數數目相同;如果條件值為真,則使用產生式中的形式參數置換實際參數[9]。若滿足條件,則用產生式的后繼替換現有模塊,否則對現有模塊進行自身恒等替換。下列字符串組合演示了參數L系統的替換過程:
ω:X(1)Y(3,2)
P1:Y(a,b):b≤3→Y(a*2,a+b)
P2:Y(a,b):b>3→X(a)Y(a/b,0)
P3:X(a):a<1→D
P4:X(a):a≥1→X(a-1)
迭代1次:S1:X(0)Y(6,5)
迭代2次:S2:X(2)X(6)Y(1.2,0)
1.2 空間幾何解釋
在平面內,L系統采用的是二維海龜解釋模型,根據Abelson和diSessa[10]的思想,可以將L系統的龜形解釋模型擴展到三維空間。在圖1(a)中,使用[L,U,H]三個相互垂直的單位向量來確定海龜的當前位置,在這三個方向上構成3×3的旋轉矩陣[11]并根據旋轉的角度實現控制海龜的朝向。

圖1 空間幾何解釋
上述海龜幾何解釋模型是L系統使用的傳統解釋方法。如圖1(b)所示,通過對樹木枝干的生長角度分析,可知枝干生成的角度和位置只在θ和Φ兩個維度進行變化[12]。相對于傳統龜形幾何解釋,文中只使用在Z和A方向上的幾何解釋以實現小葉榕樹的枝干模型,并在表1中給出了幾何字符解釋。

表1 幾何字符解釋
2.1 小葉榕樹的形態分析
通過對小葉榕樹的形態進行分析,從而實現對小葉榕樹枝干及樹葉的特征提取。把提取到的特征數據化,將其作為參數引入到參數L系統,為產生式的提出提供依據。結合現實中小葉榕樹的分枝形態以及文獻[13]對小葉榕樹的特征描述,可將小葉榕樹的形態特征總結為以下3個部分:
(1)榕樹基部主干。
作為支撐整棵樹木重量的部分,相較于側枝,它具有短而粗的特點。隨著樹齡的增長,主干直徑逐漸增加,一般主干直徑多在20~50 cm之間,高度在1.5~2 m之間。
(2)榕樹側生主干。
側生主干是構成榕樹冠蓋的主體組成部分,根據其生長在主干上的不同位置,又可將其歸納為兩類:
一類是生長在主干較低的位置,沿著近似平行于地面的角度橫向生長,角度在70°~90°之間,長度在5~7 m之間,之后在末端逐漸形成向上生長的分枝。
另一類則是生長在主干較高的位置,沿著與主干20°~40°的夾角向上生長,在末端形成更多細小的分枝。
(3)榕樹末枝與樹葉。
西方人飲食崇尚營養和天然,這與中國飲食講究色香味俱全的文化有著天壤之別。區別的背后,是中國飲食為了追求色香味幾近極致的“創舉”,比如派生出擅長雕龍刻鳳的廚師,對胡椒、生姜、八角、桂皮、大蒜等佐料推崇備至,對味精、醬油等調味品的使用習以為常……很難說誰對誰錯,但可以肯定的是,飲食演變絕非一朝一夕,肯定鍥入了太多的歷史基因,比如餐桌上那僅供觀瞻的雕刻,很大程度上來自于宮廷的幻象。
末枝是側生主干的最后衍生部分,圍繞著側生主干的末端朝著不同的方向生長,與主枝干形成20°~60°的夾角。最后樹葉從末枝長出,呈橢圓狀,邊緣光滑無鋸齒。不同位置的樹葉差異性較小,顏色由深綠向淺綠色過渡。
2.2 榕樹模型的產生式規則
通過以上對小葉榕樹形態的分析,主干與側生主干有較大的差異性,故相較于側枝的建模,主干的建模較為簡單,其關鍵在于如何控制側枝主干的生成位置。文中給出了在有限范圍內產生隨機變量的方法來控制側枝的出現位置,并對出現的位置進行標記,用來實現和側枝模型的對接。其產生式規則如下:

P1:B(d,r)→F(d)$(r*0.85)F(d)$(r* 0.85)F(d)$(r*0.85)
P2:D(d,r)→F(d*0.57) $(r*0.95)[A]
A:{A|<Σ,Φ,Ω,δ,η>}
其中,[]用來表示分枝在字符串中出現的位置;A是一個有序的特殊字符集。
文中只對主干的起始字符串迭代一次,則最終字符串將會包含5個A字符,這5個字符將由A字符集中的5個字符依次替換,用來標記側枝在主干中出現的層級。另外A中每個特殊字符被賦予整數值,用來表示在某一層級出現分枝的個數,用戶可以修改這些整數值,用來構建不同的分枝形態,從而為榕樹的側生主干建模奠定基礎。
由于側生主干具有多種不同特征,將這些特征參數化后會產生大量數據,從而導致參數L系統的產生式規則產生大量冗余。為了簡化字符串的迭代步驟,文中通過建立產生式規則映射表的方法來壓縮產生式的規模。如表2所示,在產生式映射表中,每個字母對應帶有參數的產生式,用以描述榕樹側生主干的局部特征,從而形成一級產生式。之后,在一級產生式的基礎上建立了二級產生式P1-P4,最終建立的側枝主干的模型只需根據起始字符串使用二級產生式迭代即可得到最終字符串。

表2 產生式規則映射表
表2中z對應的產生式中,R1是取(0,180)之間的無重復隨機數,R2是取(15,90)之間的隨機數,二者共同確定了側枝主干在主干中的出現位置。文中給出了7個分枝的起始字符串,用來替換主干產生式A序列中的特殊字符。用戶可以定義每層產生分枝的個數,但總的側枝主干數不超過7個。文中給出的7個分枝字符串如下:
①zaae[H(d,r)][K(d,r)]
②zaea[H(d,r)]aaa[K(d,r)]aaaee
③zeaa[K(d,r)]N(d,r)[H(d,r)]eee
④zaaa[K(d,r)][H(d,r)]eN(d,r)
⑤ze[H(d,r)][K(d,r)]eN(d,r)
⑥zaa[heN(d,r)]a[H(d,r)]aee
⑦ze[kN(d,r)]e[iN(d,r)]e[k]eeM(d,r)
把主干與側枝分開建模,結合二級產生式規則,實現了對小葉榕樹的模塊化建模。用戶可以修改模型的參數,替換產生式映射表的內容,使整個系統具有良好的交互性,從而為建立不同形態的小葉榕樹模型提供了可能。
3.1 繪制枝干模型
繪制速度快、占用系統資源少是繪制樹木模型的優點,另外作為虛擬化城市場景的一部分,樹木模型的數據量應當盡可能小,以保證場景瀏覽的流暢度。那么對于繪制小葉榕樹的模型,也應當滿足以上要求。
在文獻[14]中,孔令麒等使用多個矩形面片拼接的方法繪制圓柱來模擬枝干的變化,這樣可以起到減少模型數據量的效果,然而使用該方法會出現兩個圓柱連接處的面片坐標被重復計算的問題,從而導致過多內存資源被占用。
文中以建立連接處頂點坐標索引的方法來解決該問題,從而提高系統資源的使用效率,最終實現繪制速度快、數據量小的小葉榕樹模型。
如圖2所示,每個字母分別代表矩形面片的頂點坐標,e和d的坐標相同,f和c的坐標相同,而原來的方法要對相同的坐標計算兩次。繪制矩形是按照逆時針的順序排列坐標,如abcd、efgh,那么將c和d在序列中的位置3,4記錄在索引表中,在需要e,f的坐標時只查找索引表找到c,d的坐標就可重復使用,從而避免了相同坐標的重復計算。文中采用這種改進的繪制圓柱體的方法來模擬小葉榕樹的枝干,從而大大提高了小葉榕模型的繪制效率。

圖2 拼接矩形面片
3.2 繪制樹葉模型
繪制小葉榕樹的樹葉由兩個要素決定:一是確定樹葉在末枝的長出位置;二是對樹葉本身的坐標計算以及著色。
確定樹葉的長出位置由末枝條的半徑大小來確定。如果枝條半徑小于設定的閾值,則使用特定序列內的隨機數來確定樹葉在垂直于末枝的水平面中出現的角度以及與末枝的夾角。依據小葉榕樹葉片生長的特征,文中使用的特定序列是{60,50,40,30},縱向夾角在20°~50°之間。以上方法可以快速地確定葉片的長出位置。
在確定了樹葉的長出位置后,就需要計算葉片的坐標。葉片本身是一種不規則的幾何體,如果使用三角面片拼接的方法,不僅會增加模型的數據量,還會降低樹葉的仿真度。故文中使用矩形面片結合葉片貼圖的方法來模擬榕樹樹葉,這樣可以較好地保證樹葉的仿真度。
在樹葉的繪制階段,通過對三種不同反射光線的計算得到材質的屬性,之后將貼圖的每個像素點與矩形坐標相對應,位于葉片之外的像素忽略不計。
使用該方法可以有效減少葉片坐標的數量,從而減少對系統資源的消耗并提高繪制速度。
實驗硬件環境為Intel i7-4790、NVDIA GeForce GTX 970。軟件環境為Qt、Visual Studio 2013,OpenGL著色語言—GLSL。
圖3左側為真實的小葉榕樹圖片,右側則是根據小葉榕樹的枝干數據構建的枝干模型。圖4為小葉榕樹模型添加樹葉后兩種不同形態的效果圖。

圖3 真實小葉榕樹的枝干模型

圖4 添加樹葉后的小葉榕樹模型
相對于特定樹木的局部建模,文中能夠從整體的角度出發對小葉榕樹分步建模,在參數L系統的基礎上,優化了模型字符串的替換方式,使得建立的模型具有良好的可替換性與交互性。對原有的模型繪制方式進行改進,使得繪制出的小葉榕樹模型數據量小且擁有較強的真實感,從而為南方城市的場景虛擬化提供合適的模型,另外對觀賞性樹木的建模有一定的借鑒意義。由于文中對樹葉建模使用了貼圖,使得樹葉模型的特異性降低。那么如何增強樹葉模型的特異性將是以后的研究方向。
[1] 譚云蘭,賈金原,張 晨,等.3D樹木建模技術研究進展[J].中國圖象圖形學報,2013,18(11):1520-1528.
[2] 廖桂平,李錦衛,歐中斌,等.基于參數L-系統的油菜花朵與花序生長可視化研究[J].農業工程學報,2009,25(4):150-156.
[3] 劉 閣,周國民,胡 林.基于L系統的開心形蘋果樹枝干模型[J].安徽農業科學,2009,37(16):7795-7796.
[4] 胡秀珍,張 建,李 淼,等.基于參數L系統的梨樹枝干模型三維可視化[J].計算機系統應用,2011,20(8):86-90.
[5] 辛龍嬌,徐立鴻,李大威,等.基于參數L-系統的溫室番茄植株的三維重建[J].現代農業科技,2014(3):340-343.
[6] Lindenmayer.Mathematical models for cellular interaction in development[J].Journal of Theoretical Biology,1968,18:230-315.
[7] Prusinkiewicz A L P,Lindenmayer A,Hanan J S,et al.植物的算法美[M].孟 軍,鄧華玲,傅麗芳,等,譯.北京:科學出版社,1990:5-15.
[8] Lindenmayer A.Adding continuous components to L-systems[J].L Systems,1974,15:53-68.
[9] 石銀濤,程效軍,張鴻飛.基于參數L-系統的三維樹木仿真[J].同濟大學學報:自然科學版,2011,39(12):1871-1876.
[10] Abelson H.diSessa A.Turtle geometry[M].Cambridge:MIT Press,1982.
[11] Foley J D,van Dam A.Fundamentals of interactive computer graphics[M].Massachusetts:Addison-Wesley,1982.
[12] Qi Hang,Qiu Ruichao,Jia Jinyuan.L-system based interactive and lightweight web3D tree modeling[C]//Proceedings of the 10th conference on virtual reality continuum and its application in industry.New York:ACM,2011:589-592.
[13] 楊江南,孫川紅.小葉榕的改造與管護[J].四川農業科技,2010(1):39-39.
[14] 孔令麒,黎展榮,韋 婷,等.基于L系統的樹木建模與仿真[J].科學技術與工程,2013,13(32):9536-9540.
Research on Modeling Method of Ficus Microcarpa Based on Parametric L System
GAO Yang,LI Zhan-rong,WEI Wei,LIU Feng
(School of Computer and Electronic Information,Guangxi University,Nanning 530004,China)
To build the ornamental tree model with a strong sense of reality,taking the ficus microcarpa tree as the modeling object,combined with parametric L-system,a method about multi-step modeling based on characteristic difference is proposed.First the morphological characteristics of ficus microcarpa tree is analyzed from whole angle,then the characteristics of different parts is converted into parameters,to build generative rules with two levels of mapping relations on the basis of L-system,and the branch model of tree is established with better interactivity.In the part of rendering model,in order to reduce the model data and guarantee the high efficiency of rendering,an improved method of mosaicing rectangular planes is used to meet the requirements.Finally,the whole model is rendered by using OpenGL graphics library.Experiment shows that the ficus microcarpa model has a small amount of data,a strong sense of reality and good interaction.
ficus microcarpa;parametric L-system;multi-step modeling;interaction;OpenGL
2015-10-13
2016-01-19
時間:2016-05-25
國家自然科學基金青年基金項目(61401108)
高 揚(1990-),男,碩士研究生,研究方向為計算機圖形學;黎展榮,副教授,碩士研究生導師,通信作者,研究方向為計算機圖形學。
http://www.cnki.net/kcms/detail/61.1450.TP.20160525.1711.074.html
TP391.9
A
1673-629X(2016)07-0156-04
10.3969/j.issn.1673-629X.2016.07.033