丁維龍,朱元偉,章謙元,張玉屏
(1.浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023;2.中國水稻研究所水稻生物學(xué)國家重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310006)
水稻生長可視化模擬系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
丁維龍1,朱元偉1,章謙元1,張玉屏2
(1.浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,浙江 杭州 310023;2.中國水稻研究所水稻生物學(xué)國家重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310006)
針對目前國內(nèi)外虛擬作物的研究現(xiàn)狀,在Windows平臺(tái)上,使用OpenGL圖形接口,采用面向?qū)ο缶幊碳夹g(shù),設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)集水稻形態(tài)模擬及可視化、場景動(dòng)態(tài)渲染、水稻生長動(dòng)畫等功能的三維結(jié)構(gòu)可視化模擬系統(tǒng)原型.首先結(jié)合水稻的空間結(jié)構(gòu)特點(diǎn),基于參數(shù)化L系統(tǒng),在器官尺度上模擬了單株水稻的拓?fù)浣Y(jié)構(gòu).在此基礎(chǔ)上,結(jié)合水稻的生長特性,構(gòu)建了水稻生長的有限狀態(tài)自動(dòng)機(jī)模型,實(shí)現(xiàn)了對水稻動(dòng)態(tài)生長過程的可視化描述.簡述了系統(tǒng)的總體結(jié)構(gòu)及基本功能,論述了系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)過程中涉及的關(guān)鍵技術(shù),并給出了系統(tǒng)的界面以及實(shí)現(xiàn)的一些典型效果圖.
虛擬作物;可視化;水稻生長建模;參數(shù)化L系統(tǒng);自動(dòng)機(jī)模型
以植物為對象的建模、仿真與可視化研究開始于上世紀(jì)60年代.早期的研究主要是基于計(jì)算機(jī)圖形學(xué)的樹木外型模擬,追求的是視覺效果的真實(shí)性.近十幾年來,基于結(jié)構(gòu)功能反饋機(jī)制的虛擬作物研究受到了越來越多的關(guān)注.國內(nèi)外眾多學(xué)者在棉花[1]、玉米[2-3]、高粱[4]、西瓜[5]、小麥[6]等作物的器官建模以及植株生長的可視化模擬方面做了較多工作[5].由于水稻分蘗多、株型復(fù)雜,導(dǎo)致其虛擬仿真研究相對其他形態(tài)簡單的作物而言比較薄弱.另一方面,盡管目前國內(nèi)外已開發(fā)出多種流行的植物形態(tài) 可 視 化 建 模 系 統(tǒng),如 Xfrog[7],PlantStudio,Virtual Plants及Tree Professional等,但專門針對某種作物的可視化仿真軟件卻未見文獻(xiàn)報(bào)道.因此,以水稻為例,研究了水稻拓?fù)浣Y(jié)構(gòu)及其生長過程的可視化建模方法,在此基礎(chǔ)上,開發(fā)了交互式的水稻植株形態(tài)設(shè)計(jì)系統(tǒng),實(shí)現(xiàn)了水稻植株形態(tài)及其生長過程的交互式模擬.
系統(tǒng)設(shè)計(jì)的總體思路是通過田間試驗(yàn)獲取水稻生長數(shù)據(jù),在分析水稻冠層結(jié)構(gòu)特征的基礎(chǔ)上,利用L系統(tǒng)構(gòu)建水稻拓?fù)浣Y(jié)構(gòu),結(jié)合有限態(tài)自動(dòng)機(jī)模型,模擬水稻生長.系統(tǒng)運(yùn)行時(shí),先把數(shù)據(jù)載入系統(tǒng)中,再對數(shù)據(jù)進(jìn)行處理,作為水稻生長的數(shù)據(jù).然后,利用三維可視化技術(shù),將數(shù)據(jù)轉(zhuǎn)化為三維可視化,從而輸出虛擬水稻植株.
水稻虛擬生長系統(tǒng)的設(shè)計(jì),主要實(shí)現(xiàn)了三大功能:拓?fù)浣Y(jié)構(gòu)的構(gòu)建、虛擬生長控制、三維可視化輸出.系統(tǒng)共分為6個(gè)模塊,各模塊功能如下:
數(shù)據(jù)載入模塊是系統(tǒng)最先運(yùn)行的模塊,包括參數(shù)初始化單元和田間試驗(yàn)數(shù)據(jù)讀取單元.參數(shù)初始化單元包括水稻品種選擇、信息輸出格式等初始化操作.其中,田間試驗(yàn)數(shù)據(jù)讀取模塊負(fù)責(zé)從Excel文檔中讀入數(shù)據(jù).
該模塊包括L系統(tǒng)定義單元、拓?fù)浣Y(jié)構(gòu)建立單元、導(dǎo)龜設(shè)計(jì)與構(gòu)建單元.其中L系統(tǒng)定義單元包括對L系統(tǒng)公理和產(chǎn)生式的定義.拓?fù)浣Y(jié)構(gòu)建立單元,用于根據(jù)水稻知識(shí)庫建立水稻的拓?fù)浣Y(jié)構(gòu).導(dǎo)龜設(shè)計(jì)與構(gòu)建單元,用于對L系統(tǒng)的字符串進(jìn)行圖形化解釋,并進(jìn)行三維視圖和坐標(biāo)的定義,以可視化輸出模擬結(jié)果.
有限態(tài)自動(dòng)機(jī)模塊包括:水稻生長參數(shù)初始化單元、事件觸發(fā)器單元、三維可視化信息輸出單元.水稻生長參數(shù)初始化單元包括:時(shí)間軸的初始化和導(dǎo)龜狀態(tài)的初始化.事件觸發(fā)器單元根據(jù)時(shí)間軸的變化,不斷產(chǎn)生新的事件,并對事件按發(fā)生的時(shí)間進(jìn)行排序,從最早發(fā)生的事件開始,直到時(shí)間軸末端停止.三維可視化信息輸出單元,主要是利用導(dǎo)龜機(jī)制對L系統(tǒng)解析,并可視化輸出模擬結(jié)果.
該模塊主要包括水稻器官的建模算法.它根據(jù)水稻各器官的三維特征,利用數(shù)學(xué)建模和計(jì)算圖形學(xué)知識(shí),得到水稻器官的三維數(shù)學(xué)描述.關(guān)于該模塊的建模算法,在筆者發(fā)表的論文[8~9]中有詳細(xì)的描述,此處不再贅述.
光照模塊包括光照環(huán)境模擬模型,光照量計(jì)算模型.光照環(huán)境模擬模型用以完成光照強(qiáng)度、光源等參數(shù)的設(shè)置.光照量計(jì)算模型,以層為單位進(jìn)行,將水稻冠層分為五層,如圖1所示.假設(shè)上一葉層基部的輻射量即為下一葉層的輻射輸入量.基于Goudriaan J.提出的冠層光合產(chǎn)量計(jì)算的算法思想[10],確定水稻生長的地理?xiàng)l件、生長日期、環(huán)境因素、自身生長情況等參數(shù),然后計(jì)算出各層的光合產(chǎn)量以及整個(gè)冠層的光合總產(chǎn)量.

圖1 光線在冠層中投射示意圖Fig.1 The light in different layers
輸出模塊包括三維可視化輸出單元和屏幕信息輸出單元.三維可視化輸出單元根據(jù)有限態(tài)自動(dòng)機(jī)模塊輸出的三維信息,結(jié)合水稻器官建模模塊,利用計(jì)算機(jī)圖形繪制接口(OpenGL)進(jìn)行繪制輸出.屏幕信息輸出單元負(fù)責(zé)水稻生長過程中的信息輸出,包括生長時(shí)期、當(dāng)前葉數(shù)、分蘗數(shù),以及光照環(huán)境等提示信息的輸出.
水稻主莖和分蘗的生長具有遞歸性的特點(diǎn),即莖上長出第四片葉的同時(shí)產(chǎn)生一個(gè)分蘗.同時(shí),它們也具有同伸關(guān)系,即n葉抽出≈n-3號(hào)分蘗的第1葉抽出.分蘗的第1葉抽出后,其出葉速度與主莖葉片的出葉速度大體相同.
水稻莖葉的生長關(guān)系,就單莖而言,葉片的生長具有互生關(guān)系,生于莖節(jié)的兩側(cè).每個(gè)莖節(jié)生長一片葉子,單株常保持4-5片綠葉,隨著上部新葉的生長,下部老葉逐漸枯死.每片葉子具有相似的形態(tài),因此,水稻莖葉的分形特征比較明顯.將水稻植株在器官尺度上分成:基部、生長單元、分蘗(單莖)、植株四個(gè)部分.其中生長單元,由葉下節(jié)間、葉鞘葉片或者稻穗組成.然后,通過多次試探,歸納出描述水稻單莖拓?fù)浣Y(jié)構(gòu)的L系統(tǒng)公理及其產(chǎn)生式規(guī)則:

式中:W 為L系統(tǒng)公理;P1,P2,P3為產(chǎn)生式規(guī)則;R為基部;B為生長單元,由葉下節(jié)間、葉鞘、葉片組成;I,S,L,P分別代表節(jié)間、葉鞘、葉片、穗.&(180)用來控制水稻葉片的互生關(guān)系;參數(shù)i和j分別表示分孽莖號(hào)和節(jié)位號(hào),初始都為0.maxB為最大單莖數(shù),maxI為最大節(jié)數(shù).
利用上述產(chǎn)生式P1進(jìn)行迭代,隨著迭代次數(shù)的增加不斷抽出新的分蘗;產(chǎn)生式P2的迭代則會(huì)使單個(gè)分蘗新器官不斷抽出和生長;產(chǎn)生式P3則為最后一個(gè)生長單元穗和穗下節(jié)間的抽出和生長.通過控制產(chǎn)生式的迭代次數(shù),可以生成不同葉數(shù)和分蘗數(shù)的水稻植株的拓?fù)浣Y(jié)構(gòu).
實(shí)現(xiàn)單株水稻拓?fù)浣Y(jié)構(gòu)模擬的算法思想,可以概括為:首先根據(jù)公理和產(chǎn)生式以及迭代次數(shù)來生成字符串,然后計(jì)算機(jī)對字符串進(jìn)行解釋,從而畫出相應(yīng)的植物拓?fù)浣Y(jié)構(gòu).該算法的偽代碼如下:


采用有限狀態(tài)自動(dòng)機(jī)模型來控制水稻的生長.如前所述,在L系統(tǒng)迭代過程中,每次迭代都會(huì)有新的生長單元加入.假設(shè)每種生長單元都有相同或者近似的生長過程,如節(jié)間生長、出葉、葉片生長、抽穗、穗的生長.采用有限狀態(tài)自動(dòng)機(jī)中的狀態(tài)來描述這些生長過程.經(jīng)過抽象和簡化,在模型中定義了4種狀態(tài):基部、節(jié)間、葉、穗.相應(yīng)地,在模型中也定義了4種大事件:狀態(tài)事件、分蘗事件、拔節(jié)事件、抽穗事件.狀態(tài)事件分為生長事件和枯萎事件(主要針對葉狀態(tài)).模型中的“動(dòng)作”是指由事件引起的狀態(tài)生長變化.在模型中,建立一個(gè)“事件觸發(fā)器”,事件觸發(fā)器接收水稻生長的時(shí)間軸天數(shù),結(jié)合單個(gè)器官生長方程,計(jì)算模型中每個(gè)狀態(tài)(由幾何參數(shù)表征),當(dāng)狀態(tài)值滿足一定得條件,則觸發(fā)一個(gè)事件.
從水稻種子發(fā)芽開始(在時(shí)間軸上從0天開始),隨著天數(shù)的增加,事件觸發(fā)器不斷的觸發(fā)事件,導(dǎo)龜則根據(jù)不同的事件,通過掃描L系統(tǒng)字符串,讀取相應(yīng)的字符串作為狀態(tài),進(jìn)行解析,根據(jù)不同的事件做出不同的動(dòng)作.詳細(xì)的過程流程如圖2所示.

圖2 生長控制流程圖Fig.2 Flowchart of rice plant growth
依據(jù)上述水稻形態(tài)建模思想,研究開發(fā)了水稻生長三維形態(tài)可視化模擬系統(tǒng)“VirtualRice-1”.該系統(tǒng)在VisualStudio 2005集成開發(fā)環(huán)境下,使用C++并結(jié)合三維繪圖程序工具OpenGL開發(fā),操作系統(tǒng)是Windows Vista.計(jì)算機(jī)硬件條件為Intel Core2 Duo E7300 CPU,主頻為2.66 G及2.67 G;顯卡為NVIDIA GeForce GTX 260;4 G內(nèi)存.使用Excel文件存儲(chǔ)實(shí)驗(yàn)數(shù)據(jù).
系統(tǒng)基于MFC中的SDI,利用窗口分割技術(shù),把窗口分割成三個(gè)板塊,其主界面如圖3所示.系統(tǒng)主界面主要包括菜單欄、操作區(qū)、動(dòng)畫顯示區(qū)、進(jìn)度控制區(qū).菜單欄包括數(shù)據(jù)管理、場景選擇、系統(tǒng)幫助信息.操作區(qū)可進(jìn)行的操作有:導(dǎo)入水稻數(shù)據(jù)、選擇水稻品種、啟動(dòng)水稻生長、光照計(jì)算控制、器官展示和數(shù)據(jù)顯示選擇.動(dòng)畫區(qū)將顯示水稻生長三維動(dòng)畫,及其當(dāng)前的生長狀態(tài)信息.進(jìn)度控制區(qū)顯示當(dāng)前水稻生長進(jìn)度,并可以調(diào)節(jié)當(dāng)前進(jìn)度.圖4是在計(jì)算機(jī)上模擬出的水稻生長的效果圖,其中圖4(a)為分蘗期;圖4(b)為抽穗期的形態(tài),圖4(c)為穗成熟期的形態(tài).從模擬結(jié)果可以看出,建立的系統(tǒng)較好地模擬了水稻生長的形態(tài)變化過程.

針對水稻結(jié)構(gòu)及其生長過程極為復(fù)雜的特點(diǎn),將參數(shù)化L系統(tǒng)和有限狀態(tài)自動(dòng)機(jī)模型有機(jī)融合,利用參數(shù)化L系統(tǒng)建立水稻的拓?fù)浣Y(jié)構(gòu),結(jié)合有限狀態(tài)自動(dòng)機(jī)模型描述水稻器官的生長,實(shí)現(xiàn)了水稻生長的可視化模擬.研究建立了多模型綜合集成的水稻形態(tài)三維可視化建模系統(tǒng)原型.該軟件專門針對水稻株型的模擬和設(shè)計(jì),能夠根據(jù)田間測量出的形態(tài)數(shù)據(jù),可視化模擬出不同品種水稻的株型.設(shè)計(jì)開發(fā)的水稻形態(tài)三維可視化建模系統(tǒng),目前只實(shí)現(xiàn)了基本原型,系統(tǒng)功能、界面還需要進(jìn)一步擴(kuò)充和完善,系統(tǒng)模擬的可視化效果和交互能力還需進(jìn)一步提高.在未來的工作中,為設(shè)計(jì)高產(chǎn)水稻株型及對其生長進(jìn)行調(diào)控,必需綜合考慮冠層生物量生產(chǎn)及其分配和葉片生長三者之間的關(guān)系,研究建立水稻冠層的“結(jié)構(gòu)-功能”反饋模型,在此基礎(chǔ)上建立高產(chǎn)水稻形態(tài)結(jié)構(gòu)的定量化設(shè)計(jì)方法和相關(guān)原型系統(tǒng).
[1]ROOM P M,HANAN J S.Virtual cotton:a new tool for research,management and training[C]//Proceedings of the World Cotton Research Conference-1:Challenging the Future,Brisbane.Melbourne:Csiro Australia,1995:40-44.
[2]FOURNIER C,ANDRIEU B A.A 3D architectural and process-based model of maize development[J].Annals of Botany,1998,81:233-250.
[3]郭炎,李保國.玉米冠層的數(shù)學(xué)描述與三維重建研究[J].應(yīng)用生態(tài)學(xué)報(bào),1999,10(1):39-41.
[4]KAITANIEMI P,HANAN J S,ROOM P M.Virtual sorghum:visualization of partitioning and morphogenesis[J].Computers and Electronics in Agriculture,2000,28:195-205.
[5]趙春江,陸聲鏈,郭新宇,等.西瓜三維形態(tài)幾何建模和真實(shí)感繪制技術(shù)研究[J].中國農(nóng)業(yè)科學(xué),2008,41(12):4155-4163.
[6]伍艷蓮,曹衛(wèi)星,湯亮,等.基于Open GL的小麥形態(tài)可視化技術(shù)[J].農(nóng)業(yè)工程學(xué)報(bào),2009,25(1):121-126.
[7]LINTERMANN B,DEUSSEN O.Interactive modeling of branching structures[J].IEEE Computer Graphics & Applications,1999,19(1):56-65.
[8]丁維龍,劉暢,張玉屏,等.基于彎曲變形計(jì)算的水稻穗空間形態(tài)模擬研究[J].中國水稻科學(xué),2010,24(3):309-314
[9]馬培良,丁維龍,古輝.基于OpenGL和雙三次貝塞爾曲面的稻葉可視化建模[J].浙江工業(yè)大學(xué)學(xué)報(bào),2010,38(1):36-40.
[10]GOUDRIAAN J.A simple and fast numerical method for the computation of daily totals of crop photosynthesis[J].Agricultural and Forest Meteorology,1986,38:249-254.
Design and realization of 3D visualization system for rice plant modeling
DING Wei-long1,ZHU Yuan-wei1,ZHANG Qian-yuan1,ZHANG Yu-ping2
(1.College of Computer Science & Technology,Zhejiang University of Technology,Hangzhou 310023,China;2.State Key Laboratory of Rice Biology,China National Rice Research Institute,Hangzhou 310006,China)
Considering the research situation of virtual crops,a new 3D visualization simulation system for rice plant modeling is designed and realized with C++language in the environment of Visual Studio 2005 and OpenGL,and the technique of Object-Oriented Programming is used.Based on the growth laws and the topological structure's characteristics of the rice plant,Parametric L-system is used to simulate its topological structures,and finite-state automaton is employed to describe the growth and development processes of rice plant.The system requirement is firstly analyzed,and then the general structure and basic functions in this system are introduced.The key techniques in the designing and implementation process in this system are discussed.Finally,the interface of this system and some typical effect pictures are given.
virtual crop;visualization;rice growth modeling;parametric L-system;automation model
TP391.9
A
1006-4303(2012)01-0046-04
2010-11-18
國家863計(jì)劃基金資助項(xiàng)目(2007AA10Z229)
丁維龍(1975—),男,安徽蕭縣人,副教授,博士,研究方向?yàn)樘摂M植物建模和智能系統(tǒng),E-mail:wlding@zjut.edu.cn.
(
劉 巖)