当前位置:首页 期刊杂志

基于OpenGL的苹果枝条生长可视化研究

时间:2024-05-23

樊景超+丘耘+周国民

摘 要:为解决果树整形试验中不可逆、难以快速成型的缺点,以小冠疏层形苹果树为研究对象,采用马尔科夫随机过程模型建立苹果树枝条的随机生长模型。在此基础上,利用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.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!