基于 CATIA和 VIRTOOLS技术的虚拟机舱漫游研究
作者:曾鲁山 曾凡明 刘金林
论文关键词:虚拟现实 船舶机舱 虚拟角色 CATIA Virtools
论文摘要:针对虚拟机舱漫游的现状,充分利用CAD技术和虚拟现实技术,提出了一种新方法,构建漫游框架,研究实现的关键技术,同时利用该方法开发某艇机舱的虚拟漫游。设计部门可以采纳客户的反馈意见,修改设计,缩短开发周期。艇员可以了解机舱布置,提高训练的实效性和经济性。
1 引 言
虚拟现实是由计算机等专用设备构成虚拟环境,利用设备与环境交互 ,具有交互性和沉浸感使用户产生身临其境的感觉并从虚拟环境 中得到反馈。复杂场景的虚拟漫游是虚拟现实 的重要应用领域。机舱的规划和布置需要遵循很多原则,如满足生命力的要求、有利于人员站 位和撤离、满足维修空间和通道宽度的要求等,同时又要满足“人性设计”这一发展趋势。因此在机舱初步设计完成后,实物制造之前很有必要利用虚拟现实技术对机舱的三维模型进行虚拟漫游,各方面的专家通过身临其境 的感觉可 以提供反馈意见从而对机舱设计进行修改。并且可以为使用管理人员的训练提供帮助,节约经费,提高训练 的实效性 。
2 方法的提出
英国船商公司推 出的最新 轮机模拟器 ER4000将虚拟现实技术引入轮机模拟器 ,实现 了机舱的虚拟漫游。大连海事大学研制的 DMS一200型轮机仿真器运用虚拟现实三维建模双 目视差分时式立体视觉显示和视觉现场感产生等技术实现了机舱虚拟现实仿真系统。目前国内机舱虚拟漫游的实现大都利用三维建模软件 Muhigen、3Dma等建立机舱视景数据库,利用实时仿真软件 Veg等实现交互操作 。机舱环境复杂 ,建立准确 的三维机舱空间难度较大。
随着 CAD技术的发展 ,机械设计领域逐步实现数字化设计 ,波音 777即是利用 CATIA进行全数字化设计 的典型产 品。CATIA是 IBM 公司和Dassauh公司合作 后推 出的三维 cAD/cAE/cAM设计软件。CATIA为造船工业提供 了优秀的解决方案 ,包括专 门的船体产品和船用设备、机械解决方案。船体设计解决方案己被应用于众多船舶制造企业,涉及所有类型船舶的零件设计 、制造和装配。设计部门可 以提供机舱 的三维模型 ,这就为虚拟漫游所需要的视景数据库提供了素材。并且CATIA软件和 Virtools同属达索公司开发的两者之间存在公用 的数据使用格式,因此 为文件的传递创造了条件 。CATIA软件本身带有虚拟漫游的功能,缺点是其虚拟漫游不能脱离软件 的使用环境并且加入特定的虚拟人物后人机交互的开发难度较大。
本文提出利用 Virtools软件开发虚拟机舱漫游 ,在 Virtools中对虚拟人物交互控制较为简单,而且开发的虚拟机舱漫游具备了良好 的沉浸感和空间意识 。并且导出的文件较小 ,便于 网络传输,方便客户使用。
3 开发流程
虚拟漫游系统的实现包括视景数据库的建立和漫游平台的设计。本文利用 CATIA提供 的3D XML输出接口,三维模型经过处理可直接转为 3D XML格式,并将模型文件导入到 VIRTOOI S中。在 Virtools中建立摄 像机 和灯光对环境进行渲染 ,充分营造真实机舱的氛围,添加虚拟人物 ,并对虚拟人物交互控制。虚拟漫游的开发实现后 ,就可以从 Virtools中导出 ,从而脱离软件环境使 用。虚 拟漫 游开发框 架 图如 图 1所示
4 关键技术
4.1 三维模型导人 Virtools
模型的建立是由具备强大建模能力的 CATIA软件实现的,而 CATIA软件建立的三维模型需要转化为被 Virtools软件所支持 的文件格式 ,如WRL、3D XML等 ,才能成功地 以场景模式导入到Virtools中。机舱 的电子样机模型需要进行一定的处理,因为虚拟漫游 的场景不需要 机器设备的内部结构 ,因此要将 内部部件删除 ,否则在文件格式转换时所需的时间较长 ,而且最后导出的文件较大 。部件的删除可以在 CATIA中完成 ,也可以在 Virtools中完成。本 文是在 CATIA 中完成的,CATIA下 的三维模型层次结构清晰,便于编辑 ,而且减少了软件之间数据格式转换所需要 的时间。文件导入 Virtools后数据会存在丢失的现象 ,需要在 Virtools中进行 材质处理 、贴 图等,这样就建立了视景数据库。
4.2 在 Virtools中添加虚拟人物
虚拟人物具备一定的身体特征如身高、体重 、胖瘦等 。虚拟人物 (角色 )是 虚拟漫游环境的重要组成部分 ,对于增强场景 的真实感 、沉浸感具有非常重要的作用 。
4.3 在 VITOOLS中虚拟漫游的实现
Virtools能够对二维或三维模型实现各种操作,如大小变化 、平移、旋转 、缩放 、颜色变化 、光线变化 、二维贴图等。复杂操作 ,如投影 、行走 、奔跑 、后退等。各种控制操作充分利用了 Virtools提供的强大交互功能 ,是通过直接调用行为模块库 中的内置 BB(Behavior Block)实现 的。Virtools本身提供了 500多个 BB供调用 ,每个BB都是封装了的行为控制函数 ,并提供了行为输入、行为输出 、参数输入 、参数输 出4个接 口,因此可以在 BBs资源库方便地调用 BB,并利用 BB对模型进行相应的控制。
1)虚拟人物在虚拟环境中行走的实现
设置多个固定路径,人物在不同的固定路径上行走。在机舱地板上绘 制几条不 同的闭合 曲线 ,通过 character curve follow的漫游方法,虚拟人物就 可 以在 曲线 上行 走 ,用 户 只要 通过 简单shift键切换,人物就可以在不同路径上跑动。设置键盘控制,操纵虚拟人物实施自由漫游。在人物的animation中加人 walk、run、walk back等基本动作 ,用相应的键盘方 向键进行控制。在键盘的控制下人物就可以在机舱中行走。通过 timesetting的脚本文件来控制跑步的步幅、步频等。
2)摄像机的控制
摄像机是三维视角点,对摄像机 的控制很必要 ,最基本的摄像 机追踪方式是和人物保持一定距离 ,将摄像机的 目标锁定在虚拟人物 person身上。另外,还运用了两种察看虚拟场景的方式 ,一是切换摄像头 ,在虚拟机舱中的左右两侧和上方各设置一个摄像头在漫游的过程中通过 space键进行摄像头的切换 ,用户可以看 到不 同视角的虚拟机舱。还可以用 鼠标对摄像机进行旋转 ,从而观察周围环境。图 2是使用键盘切换摄像机和鼠标旋转摄像机的脚本 。
3)碰撞检测
现实中的人物是不能穿越墙壁等固定物体的。如果不加上碰撞检测功能,虚拟人物的身体就会穿越柴油机、齿轮箱等机舱设备,这是与现实相悖的,从而带来不真实的感觉。本例在 level下将机舱中一切固定设备都设定了固定物体的属性,通过在虚拟人物的脚本中加入 prevent eollision,实现了碰撞检测的功能,从而人物就不可以再穿过机械设备等障碍物。
4)漫游渲染
现实中的人在机舱行走时,脚和地板的碰撞会产生声音,而且地板和机舱壁等物体上会折射出人物的阴影。因此为了让虚拟漫游更加逼真,虚拟人物在机舱中行走时添加2种不同的渲染包括声音渲染和阴影渲染。
本文实现了两种声音的渲染:虚拟人物在行走时脚步摩擦地板的声音;碰撞物体时产生的声音。
在机舱的上方添加 2个灯光 ,这样虚拟人物在行走时机舱壁、地板 、柴油机等物体上就会折射出虚拟人物的阴影,这样就实现了阴影的渲染 ,从而使虚拟场景更加逼真。图3是漫游渲染的脚本 。
4.4 虚拟漫游的发布
虚拟漫游完成后,有 2种方法可以保存 :一种是直接将整个虚拟漫游 以 CMO文件格式保存,这种情况保存的文件只有载入 Virtools中才可以进行单机的虚拟漫游;一种是将整个虚拟漫游 以VMO文件格式保存,同时也可以 HTML文件格式保存,这种情况下用户只需要安装播放插件 Virtools Web player,就可以进行单机 的虚拟漫游同时可以发布到网上,方便各客户端使用 。
5 应用实例
本文构建了虚拟机舱,并在漫游框架平台下实现了虚拟机舱漫游。将 CATIA软件建构的机舱三维模型经过处理后转化为 3D XML格式的文件 ,然后导入到 Virtools中,添加灯光等进行渲染。在Virtools中实现了对虚拟人物的交互操纵 ,开发了虚拟机舱的漫游(图 4)。
6 结束语
本文针x
参考文献:
[1] 雷良育.基于虚拟现实的汽车平顺性仿真试验系统及其关键技术研究[D].皖州.浙江大学,2005
[2] 刘金林.虚拟设计技术住舰船动力装置设计中的应用研究[D].武汉.海军工程大学,2005
[3] 陈国钧,曾儿明现代舰船轮机工程 [M].长沙:国防科技大学出版社,2001.
[4] 周俊峰,祝奎臣.船舶机舱虚拟环境中的虚拟人十勾建 [J].上海海事大学学报,2007,28(4):42
[5] 李昌围,朱福全,谭良等.基丁 3D和 Virtools技术的虚拟实验 开发方 法研 究[J].计算机程与应用,2006,42(31):84—86,96.
[6] 叶绿.虚拟教育环境中虚拟人 (角色)技术的研究与用 [D].杭州 :浙汀大学 ,2005