虚拟农场地形地貌建模研究

虚拟农场地形地貌建模研究

ID:25427757

大小:59.00 KB

页数:10页

时间:2018-11-20

虚拟农场地形地貌建模研究_第1页
虚拟农场地形地貌建模研究_第2页
虚拟农场地形地貌建模研究_第3页
虚拟农场地形地貌建模研究_第4页
虚拟农场地形地貌建模研究_第5页
资源描述:

《虚拟农场地形地貌建模研究》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、虚拟农场地形地貌建模研究刘桂阳,李媛媛,张园园(黑龙江八一农垦大学信息技术学院,黑龙江大庆163319)摘要:提出了利用导入农场地形轮廓、合理规划地形高度图的方法建立可动态更新的统一数据地形,并通过合理设计地形纹理,使纹理贴图与地形有机结合,实现了逼真的地表效果。在农场地貌设计中,为了解决虚拟农场中无法实现按农艺要求种植植物的问题,提出了在虚拟场景编辑模式下建立自定义插件,完成批量精确定位种植植物的方法,实现了虚拟环境下种植农作物的自动化、精确化。以上方法建立的地形及地形上的植物可动态实时更新,为后期进一步开发农场仿真操作提供了技术保障。..关键词:虚拟农场;地形地貌;植物建模;Un

2、ity3D中图分类号:TP391文献标识码:A:0439-8114(2015)07-1726-05DOI:10.14088/j.ki.issn0439-8114.2015.07.050近年来,虚拟现实技术在农业虚拟仿真、农业生态旅游等方面应用越来越广泛。利用虚拟植物、虚拟农田等模型,建立虚拟农场使人们在计算机上种植虚拟作物并进行虚拟农场管理,可以从任意角度甚至在作物冠层内漫游观察作物生长状况的动态过程,还可以通过改变环境条件和栽培措施,直观地观察作物生长过程[1]。在虚拟农场设计过程中,农场的地形建模是真实世界模拟的一个重要组成部分,目前地形的建模研究已经很广泛,其中包括快速生成大规

3、模的地形高度数据、地形地貌的细分优化、地表泥土的模拟等[2]。通过对目前流行的虚拟现实软件进行比较,选用Unity3D作为虚拟农场的开发环境[3]。利用Unity3D建立的Terrain地形,可以存储和动态设置地形上各个网格点高度坐标,灵活地动态实现各种复杂地形。同时支持用户在地形上交互式增加和删除三维植物,这是大多三维虚拟软件所不具备的。由于使用了植物模型优化和动态修改功能,为后期虚拟农场操作提供了保障。常规的地形建模一般都是利用Unity3D下的Terrain地形建立山脉、湖泊等大体结构,其他如建筑、公路、田垅等细节都是利用第三方建模工具单独建模后进行导入[4],这样做的缺点是地

4、形上的元素不能保持一致,对后期的仿真带来不便。鉴于农场仿真操作大都是在野外条件下进行,而且一般都会涉及到农作物的操作,所以在此除单体的建筑物外,其他的道路、沟渠、田垅等细节采用统一的地形建模。地形的生成分为地形的轮廓导入及地形细节设计两个步骤,地形的原始数据于GoogleEarth,导入到Unity3D虚拟现实场景中,生成了农场地形的轮廓。地形细节利用高度图手工绘制,最后在地形上添加地貌纹理、河流、植被等对象。这种方法建立的地形在保证整体上与实际地形一致的同时,在细节设计上保留了较大的自由度。建立的地形支持高度自由变换、随机栽种植物、地表纹理绘制等功能,为后期虚拟农场的仿真操作提供了

5、技术保障。1地形轮廓的生成1.1Mesh网格地形下载要建立虚拟农场中的地形,首先要有地形DEM的原始数据,由于SketchUp与GoogleEarth三维地理信息系统的完美结合,可以下载全球任一地区的真实地形数据(这个数据精度不是太大,但基本能够满足虚拟农场需要)。首先在SketchUp中利用“插入地形”工具得到小块地形,由于GoogleEarth每次插入的地形大小有限,如果要实现大面积的地形效果,需要多次插入小面积的地块,然后经过“解锁、炸开、合并”等操作建立一个完整地块[5]。最后将地形通过3DS格式导出到3DSMax中进行后期处理。其中主要包括地形的规格化、顶点焊接、修补漏洞、

6、更新轴心点、重新命名等操作。最后通过FBX格式将Mesh网格地形导入到Unity3D中(图1),其中图1a为在GoogleEarth中选择单个小地形图,图1b为将多个小地形在SketchUp中进行拼接,图1c为在3DSMax中进行后期处理,图1d为将地形导入到Unity3D中。这里得到的地形数据可以作为虚拟农场的周边背景,但由于是外部导入的三维物体,在Unity3D中无法根据平面坐标取得或改变地形上每个点的海拔高度,不能满足虚拟农场后期仿真的需要,故需要将Mesh地形转化为Unity3D下内置的Terrain对象。1.2地形轮廓的导入Terrain对象是Unity3D内置对象,只能对

7、该对象进行设计,而不能通过其他三维模型转换得到。在这里设计算法实现了将Mesh地形的高度值导入到Terrain地形上。算法的主要原理是利用了Unity3D内置物理引擎中的光线投射功能(RayCast),在Mesh地形的上方进行光线扫描,逐行逐列地向下发射光线,当光线遇到Mesh地形时会记录光线的长度,再用Terrain对象的Height高度属性值减去光线长度,从而得到Mesh地形在这一点的高度值,再将该值映射到Terrain对象上,最后Terrain对象具

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。