VR技术在药用植物园数字化平台中的应用研究①

2018-02-05 08:00桂红兵张继美
关键词:浏览者碰撞检测药用

桂红兵, 张继美

(亳州职业技术学院信息工程系,安徽 亳州 236800)

0 引 言

数字药用植物园是利用虚拟现实技术,面向社会公众,建立在互联网上,模拟现实中的药用植物园,通过公众的访问与互动活动,介绍药用植物园的药用植物活体、药用植物标本、药用植物园景观风貌等,多角度、多方位展示植物形象,普及和推广药用植物科学知识与技能的数字平台[1]。这样的数字化虚拟平台具有不受时空的限制,以及具有较强交互性的特点,具有较好的临场感和真实感,是实践教学的一个重要补充[2]。

虚拟现实技术在工业生产及娱乐生活等方面应用较多,但在药用植物园的数字化平台中应用少见。虚拟现实技术简称VR技术是一项综合技术,运用计算机对现实世界进行高度仿真,创建与现实世界类似的环境[3],通过多种传感设备使用户“投入”到该环境中,实现用户与该环境的直接自然交互[4]。在实现人机交互效果中,碰撞检测技术是关键技术之一,广泛应用于虚拟环境中角色与角色、角色与物体、物体与物体之间的碰撞效果设计当中。

1 碰撞检测算法设计

近年来,随着VR技术的发展,其重要的技术碰撞检测技术也得到长足的发展,有了诸多成熟的理论,较为突出的有AABB轴包围盒算法、Sphere球包围盒、OBB方向包围盒以及K-Dops[5]。这些算法的核心思想是将虚拟现实中的两个复杂形体用规则的几何包裹住,原复杂形体在虚拟环境中碰撞的检测,就转换成规则的几何体之间的碰撞检测,计算机实现起来就容易得多,上述算法各有优缺点,如表1所示。

表1 常见包围盒算法比较

从表1中可以看出,Sphere球形包围盒实现起来最为简单,且物体发生旋转后不需要对其包围盒进行更新,但其最大的不足就是紧密性不好,在实际应用中误差较大;OBB算法和k-Dops算法的紧密性非常好,也就是采用这两种算法所进行的碰撞检测误差较小,但是其算法复杂度较高,且对象发生旋转后的更新较慢,对硬件环境要求较高;AABB算法有较好的紧密性,更新速度快,算法复杂度较低,但在实际应用中的主要问题是随着对象的体积与其包围盒体积比不断递减,误差也会随之增大[6],如图1所示,图中对象与包围间镂空部位为检测误差区域。

图1 不同对象碰撞检测误差比较

在药用植物园数字化平台建设中,碰撞检测采用AABB算法,为最大化提高碰撞检测的用户体验效果,减少检测误差,对算法提出改进,即在系统设计中,将碰撞检测交互对象分为两种类型,一类为体积接近其包围盒的,直接采用AABB算法;另一类为物体与其包围盒的体积差别较大的,即直接采用AABB包围盒紧密性不好的,则采用若干关键点小包围盒替代法进行碰撞检测,如图2所示,将图2(a)中的各叶子的完整的AABB包围盒用图2(b)中的若干关键点替代包围盒来替代,从图中误差明显减小。

图2 采用关键点替代包围盒前后对比

计算机为实现碰撞检测,首先为需要进行检测的对象建立对象数组bwBox(i),然后根据它的体积与包围盒之间的关系进行分类,建立目标对象数组如公式(1)所示,若不需要替代包围盒,则直接将bwBox(i)中的元素复制到mbBox(i)数组中,即用对象的AABB包围盒即可完成碰撞检测;若需要替代包围盒,则将原对像数组bwBox(i)分解成一个二维对象数组mbBox(i,j),即对bwBox(i)所指的对象进行检测,变成对mbBox(i,1) ,mbBox(i,2) ,mbBox(i,3)…等若干元素的遍历。

(1)

2 药用植物园数字化平台关键模块设计

平台运行效果是以一个浏览者的视角展开,将数字化药用植物园区分在若干分园区,如“芍药园”、“ 牡丹”园等,浏览者在园区内活动主要分为两大类,一类是在园区主干道上浏览,这一类活动主要是实现各分园区的切换,系统在设计时在各分园区入口设置自动碰撞检测区域,如图3所示。

图3 分园入口碰撞检测区

由于入口相对固定,且形状也相对规则,故直接采用区域检测的AABB算法即可,首先对浏览者定义成对象visitor_mc,对园区主干道定义对象daolu_mc,对各入口定义成对象如:mudanEntrance_mc、shaoyaoEntrance_mc等,接着给对象编写程序如下:

Visitor_mc.onMouseMove=function()

{Mouse.hide() //隐蔽鼠标;

If(this.hitTest(daolu_mc)){ //判断浏览者是否在道路中行走;

this._x=_xmouse

this._y=_ymouse}//以上程序实现浏览者在园区的自由活动 ;

If(this.hitTest(mudanEntrance_mc))

{ gotoAndPlay("shaoyaoScene ", 1);}

If(this.hitTest(shaoyaoEntrance_mc))

{ gotoAndPlay("mudanScene ", 1);

}//以上通过碰撞检测实现在各分园区的切换;}

另一类活动就是进入具体的分园区仔细观看某一中药植物,此时平台要能够及时并智能的判断浏览者想看的部位及其所关心的问题,系统根据浏览者的虚拟手指的活动进行判断,及时检测其触及到中药植物的部位,给出相应的交互反应,为使此时的碰撞检测更有效率和更有真实感,采用关键部位的替代包围盒检测法,进行替代碰撞检测。分别给各关键点定义对象如:shaoyao1_mc,ye1_mc,keyplace1_mc等。程序代码如下:

Shaoyao1_mc.ye1_mc.keyplace1_mc.onRollOver=function(){

loadMovie(“syyetexing.swf”,1)

}//关键点检测到碰撞则调出相应的影片供观看

以上代码是一个关键点的代码,园中的关键位置的每个观测点都写入以上代码,即可实现浏览者的虚拟手指的碰撞交互效果。

3 功能仿真效果分析

平台以浏览者的视角展开,为每个进园的用户提供一个可以自由游览的账号,可以选择可行的任一条路径进行游览。当用户在主干道上移动表示其有两种去向可能,一是结束游览,即该用对象移动到出口反应区;二是选择自己感兴趣的分园进行参观,此时用户对象应移向相应的分园入口的反应区(如前所述,以上两种可能均采用的是原AABB包围盒算法)。当用户进入分园,表示将对某具体的药用植物进行仔细的观览,如对其叶、花、果、茎等进行细致的观看,并了解其药用成份等,此时采用改进的关键点替代的AABB包围盒,以增强用户的体验。以芍药园为例,分析采用改进的关键点替代的AABB包围盒算法对增强平台的交互性体验上的优势,重点分析那些直接采用AABB包围盒算法而存在明显紧密性问题的对象,将其与改进的包围盒算法进行比较分析。

图4 AABB算法改进前后的碰撞实验比较

图4是对AABB碰撞检测算法改进前后的对照实验,实验模拟人物在框内随意的走动,当人物走动过程中踩到花朵时表示人物与花朵发生了一次碰撞,碰撞次数会被实验系统记录下来,图4(a)采用的是未改进的算法。碰撞检测的主要代码如下:

if(girl_mc.hitTest(hua_mc))

{cs=cs+1;cs_txt.text=cs}

if(girl_mc.hitTest(hua_mc))

{cs=cs+1;cs_txt.text=cs}

图4(b)是改进后的关键点替代算法,在人物脚的关键位置上添加两个检测点,即关键点替代包围盒。碰撞检测的主要代码如下:

if(girl_mc.g_mc.qfoot_mc.hitTest(hua_mc))//在人物脚关键位置上添加了检测点

{cs=cs+1;cs_txt.text=cs}

if(girl_mc.g_mc.hfoot_mc.hitTest(hua_mc)) //在人物脚关键位置上添加了检测点

{cs=cs+1;cs_txt.text=cs}

从4图中可以看出在相同的时间内(a)实验发生的碰撞次数明显大于(b)实验,其中多出来的碰撞多为未改进的AABB算法碰撞检测的误差,为进一步研究关键点替代算法的有效性,对上面的实验分别取四组数据进行比较分析,从表2可以看出四组数据中关键点替代算法的碰撞频率明显小于未改进的AABB算法的碰撞频率,说明采用关键点替代算法很大程度上减小了碰撞检测的误差。

表2 AABB算法与本文算法碰撞频率对照

4 结 语

数字化药用植物园是典型的基于虚拟现实的虚拟平台,为增加虚拟现实效果,同时考虑平台的硬件的依赖程度,其中的碰撞检测采用AABB检测算法,根据实际情况提出了关键点替代检测法,进一步提高了系统中的碰撞检测精度,最终使得整个平台有了良好的交互体验。

[1] 吴涛,刘维丽,鞠爱霞. 虚拟药用植物园在中医药领域中的作用探讨[J]. 黑龙江科技信息,2015,(29):34.

[2] 徐玉平,祝军委,谭荣. 浅谈药用植物园在综合性大学制药类专业建设中的必要性[J]. 黔南民族医专学报,2015,(02):151-153.

[3] 高东锋,王森. 虚拟现实技术发展对高校实验教学改革的影响与应对策略[J]. 中国高教研究,2016,(10):56-59.

[4] 张海荣,陈云虹. 基于虚拟现实技术的医学教学系统设计[J]. 西安邮电大学学报,2015,(03):120-124.

[5] 樊晓平,侯锦蓉,廖志芳,等. 虚拟环境中的混合层次包围盒算法研究[J]. 小型微型计算机系统,2011,(05):994-997.

[6] 刘纬琪,王夏黎,荆树旭. 一种基于OBB包围盒算法的交通事故检测方法[J]. 计算机技术与发展,2014,(10):34-37.

猜你喜欢
浏览者碰撞检测药用
基于动力学补偿的机器人电机力矩误差碰撞检测
全新预测碰撞检测系统
药用矿物及其在河北省分布概况
基于视觉传达的公共空间色彩导视系统设计
浅析网页设计中色彩的运用
基于BIM的铁路信号室外设备布置与碰撞检测方法
新媒体界面设计中视觉传达的效率问题研究
试论药用观赏植物在园林绿化配置中的应用
蕨类植物在利尿通淋中的药用研究(二)
蒙药药用资源