基于Open GL的黄芪生长可视化模型构建研究①

2022-02-13 06:37高何璇何玉英贾尚云李红岭高晓阳
热带农业工程 2022年6期
关键词:绘制器官黄芪

李 东 高何璇 何玉英 贾尚云 李红岭 金 李 张 旭 高晓阳③

(1 甘肃农业大学机电工程学院 甘肃兰州 730000;2 甘肃省干旱生境作物学重点实验室 甘肃兰州 730000;3 兰州银行网络金融部 甘肃兰州 730000;4 中国人民银行兰州支行 甘肃兰州 730000)

农业在整个国家的经济中扮演着举足轻重的角色。早在20世纪60年代中期国外就开始研究农作物模型,模拟农作物的生长过程,探索预测作物产量[1-2]。随着科学技术的飞速进步,国内外相继涌现出了许多作物模型系统和虚拟植物可视化软件。目前,虚拟植物研究主要是解决农作物生长的虚拟模型[3-5]。

1 黄芪生长可视化系统设计与实现

利用OpenGL的绘图函数,对其主要器官的茎、叶和根进行了仿真设计。该系统基于WIN‐DOWS,基于OpenGL的 Visual Studio 2010作为开发平台。

1.1 OpenGL图形库和功能函数调用

OpenGL系统是一个专业图形库,具有很多图形编程接口和功能函数。本文利用OpenGL提供的图形绘制功能,实现黄芪生长的不同形态和生长过程可视化[6]。

1.1.1 绘制模型[7]

首先利用该方法在植株的各个部位上输入一个节点,并在该图形库中调用该功能,比如glver‐tex3f()并指定各顶点,将这些点绘制成多边形,再进行变形拼接等构建出三维模型。

1.1.2 模型坐标变换

使用 OpenGL的 glTranslate()、glscale()、glscale()转换功能对该模型的坐标进行平移、旋转和缩放,从而设定该模型的座标值。

1.1.3 显示图画

为了防止在建模过程中出现的卡顿,使用两种不同的缓存技术进行绘制[8]。通过调用glflush()函数来显示缓存中的内容,再调用swapbuf‐fers函数交换2个缓存的数据,实现边绘制边显示的双缓存显示,节省绘制等待时间,提高动画显示流畅效果。

1.1.4 颜色光照设定

为了让本论文的模型更加真实,利用OpenGL的RGB色彩空间处理功能设置了glcolor3f()的模式色彩,然后进行了光照。

1.1.5 动画显示效果

为了防止在建模过程中出现卡顿,使用2种不同的缓存技术进行绘制。使用glflush()功能来表示快取中的内容,然后调用swapbuffers功能对两个高速缓存进行交换,从而达到了“边渲染即显示”的双重缓冲效应,节约了绘图延迟,改善了动画的流畅性。

1.2 虚拟黄芪的框架设计

本论文中的黄芪生长仿真系统由场景、黄芪器官、黄芪植株、rule等组成。在这些分类中,or‐gan类是指确定各个器官特征的所有虚拟器官的总称。根据不同组织之间的父子联系,以黄芪的主茎为根,构建了一个具有代表性的虚拟器官;根据试验所得的黄芪生长规律,确定了其生长规律;最后,根据植物与生长规律的组合,进行了黄芪的可视化仿真[9-11]。

2 系统功能模块设计

2.1 黄芪器官的立体几何模型研究

要实现黄芪的形态可视化,必须先建立一个立体的器官几何模型。根据植物形态建成模拟模型输出的叶片和其他器官的形态参数,对其器官进行观察[12]。

叶片的几何建模,黄芪的叶子包括叶柄,叶柄在叶的下面是柱状的,多片相并着生于枝条节间。本文对叶片选用NURBS曲面来建模[8]。NURBS 曲面表示如下:

(i=0、1、......m,j=0、1、...n) -一组控制点。wi,j-加权系数,它与最高点di,j相关联。Ni,k(i=0、 1、 ......m),Nj,l(j=0、1、......n),即u次k,v次标准B样条,其中,u和v方向的结点向量U=(u0,u1,..., um+ k+1),按照德布尔递推公式确定V=(v0,v1,...,vn+l+1)。在NURBS平面上,确定了其控制点,并进行了数学建模。在NURBS的各个表面上,有10行的控制点,5行的刀片和刀柄,每行7个控制点。刀片的前行是一个由7个控制点组成的矩形,并将其作为一个外切型的圆形[13]。

2.2 系统程序模块设计

本文采用 OpenGL图形库的相关功能函数,在visual Studio 2010 平台上[12,14-16]。首先,建立了一个基于植物的器官模型,并以一个类的形式进行了封装。以黄芪为对象,分别进行了植株绘制类、茎类类编程,具体内容如下。

2.2.1 绘制植株

Class CCapsicum:public CObeject//植株绘制类的定义

2.2.2 茎绘制类

2.2.3 绘制叶类

2.3 黄芪虚拟生长系统的模拟实现

本文主要实现黄芪生长过程中形态变化功能,设计的程序运行后将开始从幼苗期到成熟期的黄芪植株虚拟生长仿真。程序的主要功能是显示黄芪从幼苗期到成熟期的植株生长过程,分别显示黄芪在幼苗期、分支期(生长期)和成熟期等的生长状态,也可单独显示在生长过程中黄芪各器官(叶、茎)的发育变化[11,14-15]。

本程序的主菜单及选项操作有:

“文件”选项卡。下面的选择是:“幼苗期”——表示在苗期的成长。“分支期”——在枝叶发育过程中的表现。“成熟期”——在成熟阶段的表现。“退出”——离开该体系。

选择“控制”。下面的选择是:“暂停”——停止生长并在这个时候查看它的成长状况。“日/夜”——可以在白天或晚上之间进行转换[16]。

在“生长过程”中选择“整株植物”——展示了整个黄耆的整个成长历程。“叶”——观察了不同时期的红花叶片的生长情况。“茎”——说明了不同时期的黄芪根的生长情况。

“程序说明”选项位于“帮助”菜单下。

3 结论与讨论

研究在WINDOWS操作系统下,以visual stu‐dio为开发平台,运用OpenGL图形库,首先设计建立了黄芪虚拟生长系统的主要功能模块和结构框架[17]。基于形态建成模型输出的叶茎等器官的形态特征参数,采用NURBS曲面方法建立了黄芪叶片及茎秆3维模型[18],并对所建几何模型进行颜色和光照等渲染处理,提高了仿真显示效果及逼真度。然后,根据黄芪田间实验取得的植株生长变化规则,以建立的植物器官为基本图形单元,采用类封装方法,实现了植物类绘制、茎类、叶类的虚拟程序[19]。最后,结合植物和植物的生长规律,形成一个情景,进行黄芪生长可视化模拟仿真,并对黄芪生长可视化系统的操作功能进行了简要说明。仿真运行结果表明本研究基本实现设计要求。随着虚拟仿真技术的不断进步还仍要继续完善改进。

猜你喜欢
绘制器官黄芪
“补气之王”黄芪,你吃对了吗?
类器官
ORGANIZED GIVING
超萌小鹿课程表
黄芪是个宝
放学后
带鱼黄芪汤缓解胃下垂
肺脏:隐藏多年的造血器官
老年恙虫病并多器官损害1例
在转变中绘制新蓝图