APP下载

一种基于Unity3D的虚拟杨梅三维修剪系统

2014-02-05叶少挺吴子朝梁森苗郑可锋祝利莉胡为群彭一辉

浙江农业科学 2014年10期
关键词:杨梅鼠标枝条

叶少挺,吴子朝,梁森苗,郑可锋,祝利莉,胡为群,彭一辉

(1.浙江省农业科学院,浙江杭州 310021;2.杭州电子科技大学,浙江杭州 310058)

一种基于Unity3D的虚拟杨梅三维修剪系统

叶少挺1,吴子朝2,梁森苗1,郑可锋1,祝利莉1,胡为群1,彭一辉1

(1.浙江省农业科学院,浙江杭州 310021;2.杭州电子科技大学,浙江杭州 310058)

本文基于Unity3D平台,提出了一种虚拟杨梅三维修剪系统的实现方法。该方法重点解决了场景模型组织、切割求交、重新三角化、知识展示等问题,设计和实现了修剪教学、标准修剪和自由修剪等功能。试验表明,系统功能完善,有较好的拟真度和交互性,可以满足在Internet上发布和实时传输的要求,在推广中也获得了较好的评价。

Unity3D;杨梅;虚拟修剪;建模

对杨梅进行适当的整形修剪,有利于培养结构合理的丰产树型,促进幼树营养生长向生殖生长转化,提早进入结果期,且可改善树冠的通风透光条件,减少病虫害的发生,有利于提升果实品质[1]。在实际生产中,种植者往往很难快速掌握修剪的技术和要诀,会由此导致修剪效果不佳,影响杨梅的生长和采收。

虚拟杨梅三维修剪系统(简称系统)利用计算机图形学和互联网络技术,模拟一系列高仿真、可自主学习的虚拟杨梅植株场景,提供一种方便的可多次模拟、反复练习,以掌握先进修剪技术的新方法[2]。用户可在系统中一边自主修剪,一边学习相关科学知识,最终过渡到实际生产中的杨梅修剪操作[2],达到快速学习和掌握杨梅修剪实用关键技术的系统目标。

1 系统设计

系统采用基于Web的虚拟现实技术,面向Internet发布。用户通过Web浏览器访问系统,使用鼠标键盘可360°观察虚拟杨梅植株,并进行枝条修剪等交互操作。其修剪操作满足如下要求:准确、快速地拾取待剪枝条;修剪过程具有实时性;用户界面友好,人机交互过程符合真实的人工修剪操作等[3]。

1.1 平台选择

目前,基于Web的虚拟现实开发工具主要有WebGL,Unity3D,VRML,Quest3D,Virtools, Cult3D等。其中Unity3D是由Unity Technologies开发的一个功能强大的集成游戏引擎和编辑器,它可以通过简单的用户界面迅速高效地创建对象、导入外部资源,并可通过简单的拖拽操作实现诸如变量赋值,连接脚本等操作。目前,Unity3D以其优越的框架已在众多三维可视化应用系统开发中用作支撑平台。经过综合考虑,本系统采用Unity3D平台进行开发。

1.2 功能设计

系统拟提供以下功能模块。

修剪教学。提供修剪入门教程。包括如何使用鼠标选取枝条,选择合理切割位置和切割方向等信息。

标准修剪。本模块对用户行为有一定的限制性和引导性。当用户使用鼠标滑过待剪枝条时,系统会将该枝条高亮显示,同时提示枝条类型和修剪位置等信息,并在修剪完成后提示修剪原因和相关技术知识,逐步引导用户修剪出标准的杨梅树型。

自由修剪。是“标准修剪”的进阶功能,对用户行为无限制。用户可以沿任意方向对枝条进行自主修剪,修剪过程中系统不作任何提示,直到修剪完成后才会给出相关评价。

2 关键技术

2.1 场景模型组织

为了保持杨梅植株逼真的视觉效果,同时降低系统负担,系统使用面片建模法,在3D MAX中构建具有较少面片数但不影响真实感的植株模型[4]。

根据现实中杨梅植株的枝条层次关系和修剪规范要求,植株模型被分解成若干个子模型,如图1所示,标号为②的二级主枝与③④号子枝条作为一个子模型被创建,该子模型的形态在术语中被称为“直立枝”。在“标准修剪”模块中这个“直立枝”模型将被整体高亮显示并参与修剪运算。

图1 植株模型的组织关系

模型组织完毕后,导入到Unity3D中,分别通过具体设计赋予其材质、光照等属性,并添加交互事件和相关知识等接口,方便具体操作过程的交互和提示,具体流程如图2所示。

图2 虚拟场景构建的流程

2.2 修剪算法

修剪算法是系统实现的核心部分。为了逼真地实现枝条修剪操作,系统采用鼠标拖拽的方式来模拟该过程。

当用户在虚拟场景中点击鼠标并拖拽时,采用光射投射算法确定该射线同网格的具体相交点和拖拽方向,并根据该相交点和拖拽方向确定相交平面。然后将该平面与相交的模型作求交,并采用基于八叉树的数据结构来加速该求交过程,得到三角形内的切割位置。如图3所示,当用户使用鼠标在模型上作切割之后,通过射线与模型求交,会得到一系列与线条有相交的三角形列表。随后,采用Delaunay三角剖分的策略来重新网格化。具体Delaunay策略描述如下。

图3 植株模型切割的示意图

(1)找出面片内待插入的顶点(与边有相交的顶点),将该点与该多边形内其他点相连,从而生成一系列新的三角形。

(2)由2个公共边组成的四边形进行判断,如果其中有一个三角形的外接圆包含第4个顶点,则将这个四边形的对角线进行交换。

(3)对新的顶点,迭代(1)(2)步,直到对所有新插入的点都做好三角化。

具体细节如图4所示:给定一个三角形(顶点以a,b,c来表示)(图4中a),如果在e,f处将该三角形切割分开(图4中b),则通过任意连接一条边,假设为a,f,计算其外接圆,判断是否包含其他点(图4中c),通过优化最终将边a,f优化为e,c(图4中d)。

图4 Delaunay三角化过程

2.3 知识集成

为了让用户快速有效地掌握杨梅修剪技术,系统在相关模块中集成相关栽培知识,并在修剪过程中全方位实时展现。

这些知识存储在一系列的XML文件中,并通过Unity3D自带的GUI框架显示。系统预加载和解析XML内容信息后,通过判断鼠标位置和相关事件,触发显示事件。

图5 “标准修剪”模块的知识集成

3 试验与分析

系统开发完成后,相关实验在一台普通PC(Intel Celeron E3300 2.5GHz/2GB/IE8/电信宽带4 Mbps)上进行。

速度试验。如首次通过Internet访问系统,其响应时间平均为5~6 s,而再次访问时间可缩短到2~3 s;访问一些较大场景的响应时间平均在3~5 s;通过鼠标旋转、缩放、平移和修剪操作响应较实时,基本感觉不到等待时间,其算法效率较高(模型拥有三角形面数55 180个)。

功能试验。系统使用了一个典型的成年东魁杨梅植株模型,在这个模型上实现了修剪教学、标准修剪和自由修剪等功能模块,部分修剪效果见图6。

图6 修剪前后植株形态的比较

系统存在局限性。在“自由修剪”功能模块中,植株模型枝条在三维空间呈纵横交错之势,如果用户在视野较远的情况下进行修剪,其动作形成的平面可能会与不同纬度的多个枝条同时形成交集,导致修剪算法较难准确判断修剪目标枝条,容易对非目标枝条造成“误伤”。

现阶段实现精确修剪的操作规范。用户需先使用鼠标中键拉近与目标枝条的距离,然后通过鼠标左键在修剪部位做小范围的手势动作来完成。图7展示了2种修剪方式的比较。

然而,此局限性并不影响系统的功能完整性和拟真度,因为现实中种植者一般只对距离较近的单根枝条进行操作。

图7 “自由修剪”模块的鼠标动作

兼容试验。因为Unity3D平台具有优秀的兼容性,系统在IE,Safari,Firefox和Chrome等主流版本的浏览器下均能流畅运行。

安全试验。项目组使用Web安全测试工具IBM Security AppScan对系统进行了扫描实验,发现中高风险0个,低风险6个,参考建议21个,表明系统的安全性较强。

推广试验。科研人员已将该系统推广到5个乡镇,共计培训种植者1 253人,受训人员评价该系统操作直观,可反复练习,对掌握杨梅修剪关键技术要点有较大帮助。

4 小结

本文提出了一种使用Unity3D平台来虚拟杨梅修剪操作的方法,可以有效模拟实际生产中的修剪操作,能够满足Web用户实时交互性的需求[4],是数字农业与传统农业研究相结合的一次协同创新,在现阶段具有一定的先进性和探索性,但系统的实用性仍有待进一步提高。

随着虚拟现实技术的进一步发展和推广,本方法将得到更多面数、更高逼真度和更优秀算法的支撑,预期可以在农业实用技术推广和科研领域得到更广泛的应用。

[1] 谢志亮,吴振旺.浙江省四大杨梅良种及主要栽培技术[J].温州农业科技,2011(12):26-29.

[2] 田世平,苗良.模拟果树修剪系统研究[J].农业网络信息,2006(2):32-38.

[3] 林定,陈崇成,唐丽玉,等.基于颜色编码的虚拟树木交互式修剪技术及其实现[J].计算机辅助设计与图形学学报,2011,23(11):1799-1807.

[4] 张倩倩,淮永建.网络环境中虚拟树木的建模和实时渲染研究[J].计算机仿真,2009,26(2):259-262.

(责任编辑:高 峻)

TP 391.7

:B

:0528-9017(2014)10-1632-03

文献著录格式:叶少挺,吴子朝,梁森苗,等.一种基于Unity3D的虚拟杨梅三维修剪系统[J].浙江农业科学,2014(10):1632-1635.

2014-06-12

浙江省农科院科技创新能力提升工程项目(2012R28Y01E03);国家公益性行业(农业)科研专项经费(201203089)

叶少挺(1979-),男,助理研究员,从事农业信息技术与数字农业研究工作。E-mail:ysting@mail.zaas.ac.cn。

猜你喜欢

杨梅鼠标枝条
清欢杨梅酸
Progress in Neural NLP: Modeling, Learning, and Reasoning
冬天的枝条是破折号
杨梅
闪光的枝条
腊月杨梅红
杨梅
绝句
冬的消息
45岁的鼠标