APP下载

阿尔泰金莲花三维可视化模拟

2018-11-22刘玉耀张太红古丽米拉克孜尔别克

计算机技术与发展 2018年11期
关键词:阿尔泰金莲花曲面

刘玉耀,张太红,古丽米拉·克孜尔别克

(新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830052)

0 引 言

阿尔泰金莲花[1]主要分布在中国新疆北部(塔城、阿尔泰等地),是新疆典型的药用植物之一,具有清热解毒、止血止咳、降血压等功效,在医学上有很高的药用研究价值。在研究过程中,研究人员无法全程观察阿尔泰金莲花的生长变化过程,通过计算机的可视化模拟可较为真实地模拟动态生长过程,为阿尔泰金莲花的深入研究提供借鉴。虚拟植物[2]始于20世纪60年代,国内外研究人员先后对虚拟植物展开研究,取得了一定的研究成果。澳大利亚研究机构基于L系统研发了Virtual Plants软件,可以用来模拟花生、小麦、玉米等农作物的生长;法国农业发展研究中心(CIRAD)利用自动机模型以及植物学长发育规律研制了AMAP模型[3],并成功模拟了多个种类植物;国红等[4]利用Greenlab模型模拟了1、3和5年生油松幼树形态;王美丽[5]基于L系统实现了小麦根系在外界因素中的动态生长模拟;周娟等[6]将分析方法和数学模型相结合,构建棉花形态模型,以反映棉花器官形态特征参数和影响因子之间的关系。然而从总体上来看,虚拟植物的研究主要集中在重要的经济作物(小麦、玉米、棉花等)和自然景观设计上[7-8],涉及药用植物方面的研究还比较薄弱。对此,文中通过实验观测提取阿尔泰金莲花各器官特征参数,建立各器官几何模型,并结合参数L系统方法,实现阿尔泰金莲花三维可视化模拟。

1 系统设计

该系统基于参数L系统[9-10]、植物生理生态学以及计算机图形学来实现阿尔泰金莲花三维可视化模拟。其中利用参数L系统表现植株的拓扑结构,基于植物生理生态学将各器官组合成完整植株,最后通过计算机展示阿尔泰金莲花静态及动态的三维形态。功能上可分为5大模块:器官可视化模块、单株可视化模块、模型操作模块、数据存储模块、用户交互模块。图1为阿尔泰金莲花可视化模拟系统功能结构图。

图1 系统功能结构

(1)器官可视化模块:主要包括茎、叶片、花的可视化。系统根据各器官的形态特征进行归类,分别采用不同的建模方法对茎、叶片以及花朵进行建模,并载入纹理贴图使各器官模拟效果更加逼真。此外,阿尔泰金莲花在不同生长阶段各器官的形态结构会有所不同,因此系统引入了不同的生长参数以控制各器官的形态变化。

(2)单株的可视化模块:包括静态可视化和动态生长可视化。静态可视化,应用大量的测定数据建立植物或器官的几何模型,以静态的方式展示阿尔泰金莲花的形态模型;动态生长可视化,系统通过提取阿尔泰金莲花生长规则建立模型,能够动态描述阿尔泰金莲花形态结构的生长规律。

(3)模型操作模块:包括模型载入和模型导出。系统能够载入当前大部分模型文件格式,同时也可以导出当前选定模型,导出后的模型能够很好地兼容其他建模软件。

(4)数据存储模块:使用数据库存储各种数据,包括阿尔泰金莲花各器官形态参数,初始化参数,文法规则等。还可以对各器官模型进行存储,每个模型都由顶点、三角形索引、法向量、纹理坐标等信息组成,将这些信息导出到文本文件,然后存储到数据库中。

(5)用户交互模块:系统通过键盘输入修改各种参数,如文法规则、叶片大小、旋转角度、植株高度等实现与用户交互,同时还可以通过鼠标移动视角,达到全方位观测植物的结构形态。

2 阿尔泰金莲花器官的可视化模拟

阿尔泰金莲花器官的可视化模拟,主要针对叶片、花朵、茎的建模。在自然界中,阿尔泰金莲花由于受到内外因素的影响,不同植株之间同一类器官的形态结构会有所不同。通过对不同生长阶段的阿尔泰金莲花各器官的外观形态进行观测、归纳分析之后,提取各器官特征参数,采用不同的建模方法再结合植物生理生态学建立各器官的几何模型。

2.1 茎的模拟

阿尔泰金莲花的茎高为26~70 cm,形态结构比较简单,无分支。节间形状类似于圆柱体,因此可以利用柱体来模拟茎的生长,同时设置长度变量和粗度变量分别控制茎的长度以及茎的粗度。茎在生长过程中并不是笔直生长,如光照引起植物向入射方向产生的弯曲等,引入弯曲变量可以较好地模拟茎在自然生长过程中产生的弯曲效果。最后,使用材质、纹理贴图、灯光等让模拟效果更加逼真。

2.2 阿尔泰金莲花叶片的模拟

叶片建模的方法主要包括基于几何特征的方法、基于图像的造型[11]、基于自由曲线和曲面的方法[12-13]。经过研究对比分析,对于几何特征的方法,阿尔泰金莲花形态结构较为复杂,叶片几何特征较难提取;对于自由曲线和曲面的方法,阿尔泰金莲花叶片中央全裂片菱形,边缘有锯齿状,而该方法适用于构建比较光滑的曲面,对于一些有棱角或者边缘比较尖锐的曲面效果就不太理想;对于基于图形的造型,图片数据来源比较容易,建模直接对图片进行分析和处理,从中提取植物的特征信息,从而使得模拟效果更加具有真实感。故对阿尔泰金莲花叶片的几何建模采用基于图像造型的方法来实现。

其中,边缘提取是基于图像的造型重要技术之一。常见的边缘算法有Canny、Sobel、Roberts、Prewitt等算子,分别使用这些算子提取阿尔泰金莲花叶片边缘信息,分析提取结果,可以看出Canny算子边缘更清晰,效果更好。因此采用Canny算子并加入人为干预,提取阿尔泰金莲花叶片的轮廓信息,将提取后的叶片轮廓进行三角化剖分,经过这一系列操作,完成叶片建模。

图2为阿尔泰金莲花叶片几何建模过程。

图2 阿尔泰金莲花叶片建模过程

2.3 阿尔泰金莲花的花朵模拟

2.3.1 花的形态结构

阿尔泰金莲花的花朵由花萼、花瓣、雄蕊和雌蕊组成,萼片橙色或黄色,10~15枚,倒卵形或宽倒卵形,顶端圆形;花瓣比雄蕊稍短或等长,线形,顶端渐变狭;雄蕊长7~13 mm,花丝长6~10 mm,花药长3~4 mm,心皮约16,花柱紫色。

2.3.2 花的几何建模

将花朵各器官分类后,分别采取不同的方法建立模型,具体方法如下所示:

对于单个萼片和花瓣的模拟,采用比较常用的双三次张量积Bezier曲面来构造。m×n次张量积Bezier曲面公式如下:

(1)

Bezier曲面矩阵表达式为:

p(u,v)=[B0,n(u),B1,n(u),…,Bm,m(u)]

(2)

当m=n=3时,为双三次张量积Bezier曲面,创建一个双三次Bezier曲面需要4×4控制点和两个变量t、v。计算在分量v上沿4条平行曲线的点,然后利用这4个点计算在分量t上的点,计算出这些点之后使用三角带连接它们,画出贝塞尔曲面。

根据提取的阿尔泰金莲花花朵的单个萼片和花瓣的特征参数,分别建立16个控制点的几何矩阵P1[4][4][3]、P2[4][4][3]进行描述,萼片曲面如图3(a),花瓣曲面如图3(b)。

图3 花朵部分贝塞尔曲面

其中控制点矩阵P1、P2为:

(3)

(4)

对雄蕊和雌蕊的模拟,观察其外形结构,花丝和花柱类似,多为细长圆柱结构,花药和柱头类似,多为椭球型结构。因此对该部分几何建模可分为两类:一类是由柱体变形之后的花丝和花柱几何模型,另一类是由椭球体变形之后的花药和柱头几何模型。

最后,根据阿尔泰金莲花花朵的拓扑结构,定义一个绘制函数实现阿尔泰金莲花花朵的几何模型。为了使模拟效果更加逼真,可以加入材质、纹理贴图、光照等。

3 阿尔泰金莲花单株的可视化模拟

阿尔泰金莲花单株的可视化模拟就是定量化测定植株的拓扑结构、几何特征等,通过数学统计、模式识别等方法提取各器官形态结构特征以建立器官模型,然后基于植物生理生态学对各器官进行组合,在计算机上再现植株的三维模型。

单株的可视化模拟又分为静态可视化模拟和动态生长可视化模拟[14-15]。

3.1 静态可视化模拟

静态可视化模拟主要侧重于植物形态结构的仿真,根据测定的植物的形态结构特征数据,建立植物或器官模型,再结合计算图形学以静态方式实现植物的三维可视化模拟。该类模型能够精确地再现阿尔泰金莲花各器官的形态结构,可用来分析与其结构有关的生理生态、生物物理过程,如冠层光分布的分析、形态结构对遥感检测精度的影响等。

静态可视化模拟的关键是可视化模拟效果的逼真性,因此在模型中加入颜色、光照、纹理映射、渲染等技术。虽然静态可视化模拟在外部形态的逼真性上具有很大的优势,但不适合反映阿尔泰金莲花形态结构的动态规律。

3.2 动态生长可视化模拟

动态生长可视化模拟主要侧重于植物生长发育的模拟,对植物生长过程中拓扑结构演变以及几何形态变化规律的研究,提取生长规则建立相应模型。因此文中采用比较著名的植物模型L系统以可视化的方式表现阿尔泰金莲花拓扑结构。阿尔泰金莲花属于多年生草本植物,地上部分由茎、叶、花等器官组成,茎高70 cm,基生叶,花单独顶生。在阿尔泰金莲花生理发育阶段,分别建立相应文法规则,实现动态生长可视化模拟。其中,生理发育阶段可分为种子萌发、营养生长、生殖生长三个阶段。

记种子萌发为t1,营养生长为t2,生殖生长为t3,则参数L系统的文法规则如下所示:

ω:A(0)

P1:A(t):t<=t1→~(8)!(0.95)F(t*0.12)/(137.5)[&(30)J(t*1.05)]A(t+1)

P2:A(t):t<=t2→~(8)!(0.95)F(t*2.4)/(137.5)[&(60)J(t*1.5)]A(t+1)

P3:A(t):t=t3→~(8)!(0.95)F(t*0.005)[&(80)M]A(t+1)

公理中A(0)表示植株的生长时间为0;产生式P1表示植株处于种子萌发阶段,此时植株生长出茎、叶形成幼芽;产生式P2表示植株处于营养生长阶段,此时植株快速生长,茎逐渐增高、增粗,叶片也不断伸长,增大,式中J表示叶片模型,通过改变括号内的参数实现叶片逐渐生长过程;产生式P3表示植株处于生殖生长阶段,此时植株开始分化形成花芽,花芽逐渐生长形成花朵,式中M表示花朵模型。其中,~()表示随机旋转角度;!()表示茎粗度的缩放比例;/()表示茎和器官之间的夹角。

对于叶片和花朵的器官模型,采用前文介绍的方法进行构建,然后根据文法规则载入系统,最终实现阿尔泰金莲花的动态可视化模拟。

4 系统实现

系统以Qt4.8为平台,结合OpenGL[16],使用MYSQL为数据库实现可交互式的阿尔泰金莲花三维可视化模拟。系统主界面分为左右两部分,左半侧为三维展示区域,在该区域内用户可以通过鼠标事件来任意操作视角,鼠标左键移动视角,中键和右键缩放视角,达到对阿尔泰金莲花各器官的全方位观测;右半侧为参数控制区域,在该区域内用户根据需求,调整控制参数值,改变阿尔泰金莲花外部形态结构。系统还使用第三方模型加载库Assimp,实现了对植物各器官模型的导入导出功能。Assimp可以导入十几种目前比较主流的模型格式文件,如FBX、OBJ、3ds等,同时还可以导出部分模型格式。该功能主要针对结构比较精细复杂的模型,这些模型需要经过3D建模工具的特殊处理,然后导入到系统中进行使用。

使用该系统分别模拟阿尔泰金莲花动态生长过程(见图4)。其中花开过程主要是通过改变贝塞尔曲面的控制点、曲面旋转角度、初始坐标等实现。

图4 阿尔泰金莲花动态生长效果

5 结束语

通过对阿尔泰金莲花各器官进行分类,提取特征参数分别建立茎、叶片、花朵几何模型,通过调整控制参数能够较好地描述阿尔泰金莲花各器官的形态建成过程。利用参数L系统,再结合各器官几何形态结构模型,实现阿尔泰金莲花动态生长可视化模拟,能够较为真实地反映整个植物的生长过程。目前,该研究尚有不足,阿尔泰金莲花主要入药部位是花朵,但系统只针对植株地上部分进行了可视化模拟。众所周知,根系在植物的整个生命周期中起着至关重要的作用,故在今后的研究中将加入地下部分的可视化模拟,以建立完整的植株模型,从而更加真实地模拟植物的动态生长过程。

猜你喜欢

阿尔泰金莲花曲面
金莲花的本草考证Δ
金莲花化学成分和药理活性研究进展
基于数据挖掘的金莲花系列制剂治疗上呼吸道感染的作用机制
妈妈的吻
妈妈的吻
相交移动超曲面的亚纯映射的唯一性
圆环上的覆盖曲面不等式及其应用
基于曲面展开的自由曲面网格划分
蒙药金莲花资源分布、种植现状、主要化学成分及药理作用
新疆阿尔泰铁矿成矿规律浅析