樊景超+丘耘+周國民



摘 要:為解決果樹整形試驗中不可逆、難以快速成型的缺點,以小冠疏層形蘋果樹為研究對象,采用馬爾科夫隨機過程模型建立蘋果樹枝條的隨機生長模型。在此基礎上,利用Visual C++與OpenGL圖形引擎實現了蘋果樹枝條生長過程及光照、陰影在降雨降雪等自然環境的三維可視化仿真。通過調控生長參數來模擬不同生長條件下的果樹枝條發育過程,為蘋果樹樹形培訓和推廣提供了一種可行的技術手段。
關鍵詞:OpenGL;果樹培訓;虛擬技術
中圖分類號:S661.1 文獻標識碼:A DOI 編碼:10.3969/j.issn.1006-6500.2015.08.018
我國是果樹種植大國[1],果樹樹形對果樹的產量和品質有著重要的影響[2-3]。科學高效地推廣先進的樹形成為提高我國蘋果果品質量的重要手段。目前果樹樹形的培訓和推廣工作,主要存在以下問題:一是口頭講解、教學光盤等形式不夠直觀形象[4];二是果樹培訓方面的農技推廣人員相對短缺[4];三是果樹整形具有不可逆性,錯誤的整形往往容易帶來不可彌補的損失[4]。虛擬植物技術通過模擬植物的生長過程,可以替代農業生產過程中相對費時費力的試驗,目前常見的虛擬植物建模方法(如L系統、粒子系統、分形方法)和生成的軟件(如AMAP、Xfrog、Plant Studio)已經在多個農業領域展開虛擬植物研究工作。然而與小麥、玉米等一年生作物不同,果樹是一個多年生的、復雜的人工生態系統,傳統的基于植物生長機理的建模方法不適于果樹的虛擬生長研究。果樹枝條的分枝過程可以看作是一種開放性高且復雜的系統,同時亦是一種具有可控概率的系統[5],非常適合使用馬爾科夫模型預測果樹的分枝模式[6-7]。
本研究在總結前人研究的基礎上,以小冠疏層形蘋果樹為對象,利用馬爾可夫模型來描述蘋果樹枝條的生長過程,結合OpenGL圖形引擎實現蘋果樹枝條生長過程以及果樹生長過程中自然環境的可視化,對我國果樹樹形的推廣進行有益地探索和嘗試。
1 系統功能設計
蘋果樹枝條虛擬生長系統擁有3個功能模塊:果樹枝條模擬模塊、自然環境虛擬模塊、生長控制模塊。蘋果枝條模擬包含了果樹枝干、新梢和葉片的模擬;自然環境模擬包含氣象數據顯示、光照和陰影顯示以及降雨、降雪的模擬;生長控制模塊包含果樹枝條生長參數的設置和枝條生長模擬功能。這些功能模塊彼此互相獨立,它們之間的功能組合構成了蘋果樹枝條虛擬生長系統,系統功能結構如圖1所示。
2 蘋果枝條模擬
2.1 蘋果枝干、新梢模擬
在OpenGL中,一般使用gluCylinder函數構建一個圓柱體來近似模擬一段枝干,再使用貼圖技術模擬枝干的外皮。這種做法在普通林木的三維模擬中比較常見且符合人眼直觀感覺,然而經過人工整形的果樹枝干多是彎曲生長的,因此不能直接使用該函數。本研究根據當前枝條的節作為自然分割點,將節間的枝干部分加入彎曲函數,達到整體枝干自然彎曲的效果。蘋果樹新梢相對筆直,使用gluCylinder函數直接繪制即可。
在果樹的生長周期內,果樹枝條的長度和半徑根據蘋果物候日期發生響應變化才能達到動態生長的視覺效果。本研究通過生長間隔設置枝條長度的動態增量來實現枝條的增長,而半徑的增長是通過在母枝條和子枝條之間設定一個響應的衰減系數來同步改變的。隨著各個枝條長度和半徑的連續變化就能實現枝條形狀連續生長的模擬。
2.2 蘋果葉片模擬
葉片是果樹的重要功能器官,光合作用和蒸騰作用主要由葉片來完成。蘋果葉片在一年內的生長過程中,形狀上呈現由小到大,在顏色上呈現由淺到深的變化,在位置上葉片的著生位置圍繞沿新梢呈螺旋狀生長。同時葉片在動態生長過程中應該呈現一定的飄動效果,使果樹枝條的仿真更加逼真。由于果樹葉片數量相對較多,為達到實時刷新的目的,本研究使用OpenGL繪制葉片,使用幾何四邊形加上葉片的紋理貼,葉片圖像的四個角對應四邊形的四個角。葉片圖像的背景色為白底,在OpenGL中使用glAlphaFunc函數將白色底色進行透明化處理,使得渲染后的圖片僅顯示葉片部分。該函數有兩個參數func和ref,func被允許的符合常量有GL_NEVER、GL_LESS、GL_EQUAL、GL_LEQUAL、GL_GREATER、GL_NOTEQUAL、GL_GEQUAL和 GL_ALWAYS,初始值為GL_ALWAYS。Ref則指明與引入的alpha值比較的參照值,該值屬于區間[0, 1],初始值為0。在果樹枝條生長過程中,葉片根據當前物候日期加載響應季節的蘋果葉片達到動態生長的效果。為使葉片更加逼真,在調用繪制葉片函數前使用glRotatef函數讓葉片圍繞新梢進行一定角度的隨機擺動,系統在實時繪制果樹葉片時,整株果樹的葉片呈現飄動效果。
3 自然環境模擬
蘋果園是一個復雜的人工系統,蘋果果樹生長是由氣象條件和栽培模式共同作用的結果。雨、雪和光照是植物生長不可或缺的自然環境,在虛擬場景中加入對自然環境的模擬,不僅可以增強果樹生長可視化的真實感,同時能夠更準確地重構出貼近自然的虛擬場景。
3.1 氣象數據顯示
蘋果樹與周圍環境是一個矛盾的統一體,了解蘋果與環境之間的相互關系,特別是對生態環境條件的要求與反應,有助于揭示其生態規律,指導引種、合理區劃,設計栽培模式、調控果園生態系統,保持相對平衡,以提高蘋果園質量、產量和生物量,提高生態、經濟和社會綜合效益。本研究使用蘋果樹生長所在地的年度氣象數據包括最高溫度、最低溫度、平均溫度、光照時間、空氣濕度、降雨量和氣象日期數據。通過使用OpenGL的DrawString函數將果樹模擬生長當日的氣象數據以文字形式顯示在系統的渲染區域,使用戶可以直觀看到果樹當前生長的物候時期和當日的氣象情況,同時系統根據當日的氣象情況動態控制光照和陰影以及降雨降雪的顯示。
3.2 光照和陰影模擬
光照是蘋果生長不可缺少的能量來源,是果樹進行光合作用的基礎。OpenGL所繪制的三維物體都需要提供光照才能渲染出逼真的材質效果。本研究將光源設置在無窮遠處以模擬太陽相對于地球植物的距離。同時光源需用從所繪制果樹的左上方到右上方的一個拋物線運動來模擬一天內太陽軌跡的變化。
在現實世界中,陰影無處不在。陰影提供了光線與物體位置的相關信息,因此陰影對人們理解三維場景的影響是非常巨大的。常用的陰影算法是以光源為視點對象對場景中的景物進行消隱的過程,使用Z-Buffer方法可以快速消隱。但是該方法的計算量隨著場景中三維模型的復雜度呈線性增長,所需存儲空間也會大大增加。因此本研究引用陳應松[8]提出的三維模型投影到平面上的陰影生成方法:先把原物體投影到陰影平面上,然后再把所得的陰影繪制成黑色或其他半透明的暗色,其中把一個物體投影到陰影平面上的過程是利用矩陣變換交換來完成的。構造適當的矩陣并乘以當前的模型視圖矩陣,將所有的頂點投射到陰影平面上,調用繪制物體的函數就可以完成其陰影的繪制。用此構造的矩陣就可以把復雜的三維物體投射到二維平面上,從而簡化陰影的繪制工作。
3.3 降雪、降雨模擬
自然雨雪的模擬是計算機圖形學中具有挑戰性的問題之一[9]。粒子系統是模擬不規則物體最常用的圖形生產方法之一[10]。本研究使用粒子系統模擬雨雪降落過程。雨雪粒子系統由大量的雨雪粒子組成,對粒子系統主要考慮粒子數、粒子產生區域、粒子平均周期;對粒子則要考慮形狀、位置、速度、大小、生存期、顏色、透明度等屬性。圖2和圖3是使用粒子系統模擬降雪和降雨的系統截圖。普通粒子系統是將粒子貼圖之后以隨機角度渲染出來,這就導致粒子圖片容易與用戶的觀察角度成垂直狀態,從而導致觀察不到雨雪粒子,因此在本研究中粒子系統的圖片旋轉角度限定在一定的范圍內,這樣方便用戶觀察渲染效果。
4 生長控制
4.1 生長參數設置
果樹虛擬生長的參數主要有主干根部半徑、主干頂部半徑、主干高度,他們用于描述所導入果樹的初始數據。衰減系數用于控制新生枝條與母枝條之間的直徑比例關系,分枝x軸角度、分枝y軸角度、分枝z軸角度用于控制新生枝條繞母枝條的旋轉角度,二級枝數量用于控制主干上二級枝條的數量,以符合人工修剪的需要,如圖4所示。
參數控制面板上有3個按鈕,其中“保存修改”按鈕用于把當前參數的修改保存到系統的內存變量中,能及時觀察所生成果樹是否符合果樹生長的經驗值;“同步到數據庫”按鈕將當前果樹生長參數數據保存到數據庫中永久保存,下次啟動系統時按照當前參數運行系統;“關閉”按鈕表示放棄當前修改。
4.2 虛擬生長
果樹枝條發育過程具有顯著的馬爾可夫鏈性質,本研究根據蘋果樹設定的初始參數和生長參數,按照馬爾科夫[11-12]的分枝概率計算不同年月日的枝干生長變化情況,再由系統根據生長日期動態顯示果樹的虛擬生長情況。果樹虛擬生長過程分為3類:第1類是果樹跨年生長的對比截圖,從圖5中可以看到果樹的枝條形態結構發生了較大變化;第2類是果樹逐日生長的對比截圖,從圖5中可以看到果樹的枝條和葉片緩慢生長的模擬情況;第3類顯示的為大齡果樹的年內變化對比情況,從圖5中可以看到系統對多年生蘋果樹枝條的模擬效果良好,系統響應迅速。
5 系統實現
本研究使用微軟公司的Visual Studio C++結合OpenGL進行系統實現。圖6是果樹生長模擬系統的主界面,系統分為菜單區和渲染區。菜單區展示系統所具有的功能,通過菜單來選擇并執行系統具體功能。其主要功能是對果樹進行初始參數設置和導入果樹的氣象數據,再生成果樹枝條的模擬生長數據然后交由渲染區進行繪制。渲染區主要顯示4部分內容:太陽、氣象數據、虛擬果樹以及果樹陰影以及雨雪。太陽和陰影與雨雪屬于互斥關系,不能同時出現,可根據當前虛擬生長日期的氣象數據進行交互繪制。
6 結 論
本研究是對果樹整形培訓推廣的一個初步的嘗試[13-14]。通過參數化方法構建果樹初始三維模型并利用馬爾科夫生長模型對果樹枝條的生長進行了動態模擬,從果樹枝條生長效果來看,效果逼真、成型快速,有效克服了傳統田間果樹培訓中果樹生長不可逆的問題。
參考文獻:
[1] 周國民.我國數字果園的研究與發展[J].農業網絡信息,2012(1):10-12.
[2] 樊慶忠.樹形改造對紅富士蘋果生長和結果的影響[D].泰安:山東農業大學,2005.
[3] 楊飛,盧桂賓,杜俊杰,等.樹形結構對果樹生產能力的影響分析[J].山西林業科技,2012,41(1):46-49.
[4] 王劍,周國民.基于虛擬現實技術的果樹修剪培訓系統的研究[J].浙江農業科學,2009(1):213-216.
[5] 呂萌萌,郭新宇,陸聲鏈,等.基于Unity3D果樹交互虛擬修剪技術及其實現[J].農機化研究,2015,4(4):7-11.
[6] 夏寧,李保國,鄧西民.桃樹修剪分枝模式的模擬[J].植物學報,2004,40(7):793-802.
[7] 熊瑛,張光年,郭新宇,等.基于馬兒可夫模型的蘋果樹枝條生長仿真[J].農機化研究,2009(7):70-73.
[8] 陳應松,肖世德,胡漢春.用OpenGL繪制三維模型投影到平面的陰影方法[J].微計算機應用,2003,24(6):355-358.
[9] 趙春江,郭新宇,陸聲鏈,等.農林植物生長系統虛擬設計與仿真[M].北京:科學出版社,2010.
[10] 羅維佳,都金康,謝順平.基于粒子系統的三維場地實時模擬[J].中國圖像圖形學報,2004,9(4):495-500.
[11] Costers E, Guedon Y. Modelling the sylleptic branching on one-year-old trunks of apple cultivars[J].Journal of the American Society for Horticultural Science, 1997,122(1):53-62.
[12] Costers E, Sinoquet J H, Kelner J, et al. Exploring within tree architeural development of two apple tree cultivars over 6 years[J].Annals of Botany,2003,91(1):91-104.
[13] 趙靈芝,陳春園,趙勇,等.果樹立體生態種植模式的應用[J]華北農學報,2006,21(S):32-36.
[14] 李雄,孫伯筠,李福榮,等.蘋果梨樹適宜負載量及樹體參數的研究[J].華北農學報,1997,12(4):111-115.