摘 要 提出基于3D和Virtools技术的视景仿真系统的开发方法,以北京密云县京承高速路二期都市型现代农业走廊建立虚拟场景,实现了自动漫游、手动漫游、四季景观、各种气候效果、各种实体的动态效果,并根据路线做了详细的碰撞检测。同时根据视景仿真系统的特点,在自动漫游和手动漫游过程中,以现有场景为基础,通过视频、图片、音乐对虚拟现实系统做了补充。该系统具有真实性、交互性、简单和易实现等特点。
关键词 3D;Virtools;Virtools SDK;视景仿真系统;碰撞检测
1 引言
虚拟现实(VR)是利用电脑模拟产生一个三维空间的虚拟世界,用户在此环境中利用设备与其进行交互,产生身临其境的感觉。视景仿真是虚拟现实的基本表现形式,目前已经在许多领域得到应用,如:农业景观模拟、大型机械模拟、航天器模拟、地形地貌模拟、城市建筑模拟。农业视景仿真系统应用于农业的对外宣传和招商引资中,能给许多不能亲自参观都市型现代化农业走廊的人一种新的选择和高度逼真的视觉体验。并且通过这种虚拟体验,促进文化、经济交流,有利于招商引资,因而具有较高的实际价值。
2 基于3D和Virtools技术及创新点
目前虚拟漫游系统也可以采用VRML技术[1],因为VRML 技术支持在线仿问,动态更新等优点。但是,由于网络的带宽约束,不能支持像本系统这样规模比较大的系统,同时在效果方面,也不能做出这么多动态效果。基于3D和Virtools技术[2-5]的漫游系统开发流程快,并且仿真效果也十分好,具有Virtools是一套整合软件,可以将现有常用的档案格式整合在一起,如3D模型、2D图形或是音效等。Virtools不是3D Engine,Virtools是一套具备丰富的互动行为模块的实时3D环境虚拟实境编辑软件,可以制作出许多不同用途的3D产品,如因特网、计算机游戏、多媒体、建筑设计、交互式电视、教育训练、仿真与产品展示等。Virtools除了有编辑制作的界面外,也包含了SDK,可供程序设计人员开发新的功能、新的硬件驱动程序。Virtools的“互动行为模块”就像在堆积木一样,可以利用Drag or Drop拖放方式将互动行为模块赋予在适当的对象或角色上,以流程图的方式决定行为模块的处理先后,逐渐编辑组合成一个完整的交互式虚拟世界。Virtools基本就拥有超过400个以上的互动模块可供运用,经由编辑后的互动模块群可以组合成一个新的单一互动模块以方便重复使用、编辑,甚至可以交换或卖给需要的使用者。
3 需求分析
密云县京承高速路二期都市型现代农业走廊视景仿真系统是基于虚拟现实和视景仿真技术在计算机上虚拟重构出的三维景观。基于景观的实景或规划设想,系统首先绘制出景观的三维地形图;确定房屋、温室、道路、水渠、农田林地等的具体位置;构建农林植物、房舍等的三维模型;生成景观的三维场景;设置漫游路线,结合解说讲解可将景观逼真地展示出来,具有身临其境的效果,在景观的展示和宣传等方面具有良好的应用效果。按照规划方案,以高速路中心为轴线,沿途重点规划的“一带一河一园四区”进行外围展示。具体内容包括:京承高速路二期密云段公路及两旁主要景观展示;外围单独展示:潮河生态公园、温地公园、平头高档花卉展示区、新兴村葡萄园、连花瓣村奥运蔬菜及芦笋种植基地、巨龙山庄景观展示。同时实现了自动漫游、手动漫游、视景特效、季节控制、时段控制、音乐控制、帮助模块功能。
4 农业视景仿真系统系统设计
为了体现虚拟性、交互性,增强临场感、真实感,结合Virtools中有五个主要的元素:①Virtools Library:提供3D实时的互动行为,②Virtools Dev的操作环境,③Virtools Viewer:在这里是以Web形式发布的系统,④Virtools SDK:软件开发包,可以通过开发包开发3D引擎或Virtools Library⑤3D引擎,由此设定了图1所示的架构方案:先由各类素材(模型、图片)组建虚拟场景。然后由SDK开发的引擎,和已有的引擎对场景进行渲染等操作。然后结合Virtools Library,和由SDK开发的互动行为引擎和输入设备进行交互开发,最后通过输出设备进行Web输出。
5 系统实现
5.1 模型的建立
根据密云县京承高速路都市型现代农业走廊的航拍图和规划方案构建 3D地形场景。根据数码采集的相片,制作工业区、高速路等 3D 模型。根据数字化仪,先得到花卉、芦笋等植物的模型,然后通过3DMAX进行模型优化。并对某些模型加入了动作。生成模型后,运用以下的方法,生成Virtools 可载入的文件。如图2所示。
5.2模型的布局及优化
在场景布局方面,严格按照航拍图和规划方案进行布局。和农学专业合作,确定各种农业相关物品的大小和比例。同时通过以下策略实现载入的优化:①对于重复出现相同实体使其共用纹理和材质。②纹理图片进行优化,在保持效果的前提下,缩小纹理的大小,这样可以在程序运行的时候尽可能少的占用显存。③实现动态载入技术,即当场景中需要什么实体(包括模型、图片、音乐、视频)时动态载入。④在纹理渲染方向,材质渲染选择最近的渲染方式,可以减少占用显存。⑤在实现现有功能的前提下,对消息控制和流程控制进行优化。
5.3 介绍几个重点功能模块的流程
1) 手动漫游
①Switch On Key、Translate:在Switch On Key通过设定参数W、A、S、D四个按键消息,当按W、A、S、D时,启动流程,然后Translate实现四个方向的移动,从而实现对人行走的控制②添加 Object Keep On Floor V2、Object Slider同时对物体增加碰撞属性,和地板属性,设定Object Keep On Floor V2的参数,实现行走时保持在地板上,通过Object Slider 的设置实现碰撞处理,避免穿过碰撞物。③添加 Mouse Camera Orbit 实现用鼠标控制镜头。流程图如图3所示。
图3 手动漫游功能
2) 自动漫游
①Wait Message、Set As Active Camera、Delayer:首先由Wait Message接收到消息启动流程,通过Set As Active Camera设定当前活动的摄像机,然后反复运用时间函数Delayer 实现摄像机的动态交换。②Wait Message、Look At、Set Position:也是先由消息启动流程,然后通过Look At实现参考系的跟随功能,最后通过Set Position确定参考系的位置。③ Wait Message、Bezier Progression、Position On Curve:也是先由消息启运流程,然后通过Bezier Progression产生贝赛尔函数的渐渐变化。最后Position On Curve实现摄像机跟随事先设定好的轨迹运动。流程图如图4所示。
图4 自动漫游功能
3) 季节控制
①Switch On Parameter、Set Current Slot、Show、Hide:缺省为春天,然后可以通过Switch On Parameter选择参数,启动其它季节的流程。②Text、Switch On Parameter、Parameter Selector、Season Sound init、Hide、Ware player、Identity:没有设定默认值,通过Switch On Parameter、Parameter Selector参数对应的选择,启动四种季节语音介绍,然后通过自己开发的Season Sound init选择好语音,最后通过Ware player播放。流程图如图5所示。
图5 季节控制功能
4) 视景特效
①在模型中加了动作以后,车的行驶、鱼的游弋、鸟的飞翔、都可以转变为角色对象,可以通过Position On Curve实现其功能。②麦浪、睡莲、在做模型时做成一个平面的模型,然后通过Texture Sine实现纹理的流动,通过Play Animation 3D Entity实现模型的动作。③河水流动也可以通过纹理的动作来实现。④用粒子系统实现喷泉、雨点等特效。
6 应用实例
利用Virtools三维开发工具,设计实现了密云县京承高速路二期都市型现代农业走廊视景仿真系统,见图6.该系统虚拟场景逼真,功能齐全。并且以网页形式发布,用户可以通过运行程序,自动通过网络安装浏览器插件浏览,同进支持,多视点、多场景的浏览,并且交互能力强,让用户有身临其境的感觉,宣传效果极佳。
图6 应用实例
7 结语
随着虚拟现实技术的发展,它在各个领域中的应用越来越广泛。本文采用Virtools技术进行开发,侧重于农业的虚拟现实技术,设计实现了密云县京承高速路二期都市型现代农业走廊视景仿真系统。并且本系统仿真效果十分好,开发流程快,容易掌握。同时实现了虚拟漫游等多功能,交互形式丰富,使用户有临场感、真实感。
参考文献
[1] 王洪,朱清新.用VRML实现虚拟校园的实时漫游[J].计算机应用,2004,24(12):141-143
刘明昆.三维游戏设计师宝典-VirTools开发工具篇.四川出版集团,四川电子音像出版中心,2005
刘明昆.三维游戏设计师宝典-Virtools技术实战篇.山东电子音像出版社,2005
爱迪斯科技股份有限公司.Virtools圣经.2006
刘晓明,李勤,王晓哲.基于Virtools的虚拟漫游系统的设计与实现.大庆石油学院学报2006.30.(4):123-125
Media.用VC++6.0来写Buliding Blocks的方法[EB/OL]. http://www.86vr.com/teach/cursor/200505/5727.html
相关文章
学术参考网 · 手机版
https://m.lw881.com/