一种基于WEB网络环境下3D可视化信息方法技术领域
一种基于WEB网络环境下3D可视化信息方法主要是涉及计算机3D虚拟方面领域。
背景技术
实验是中学及高校教学中一个重要的教学环节,国内很多中学及高校实验课的开设普遍不足,在一定程度上影响了教学质量。虚拟实验弥补了这方面的缺陷。相比常规实验,虚拟实验具有的特点是:弥补了教学经费的不足;避免真实操作所带来的危险;彻底打破空间和时间的限制。随着虚拟现实技术的发展,虚拟实验在实验教学中的应用越来越受到重视。它们都有一个特点,就是基于VRML(Virtual Reality ModelingLanguage)。但基于VRML 的虚拟现实可视化工具还有待进一步研究:以VRML 为基础的基于文本的虚拟场景生成工具存在不能提供可视化环境,用户必须有一定的背景知识和场景搭建人员必须从VRML 提供的基本集合形体出发搭建复杂场景等缺点;以VRML 为基础的基于Java 技术通过EAI(External Authoring Interface)进行交互控制,要求用户必须熟悉Java 语言以及VRML 动画交互的编程。这样的结果是,对于实际开发难度大、复杂,不易实现。本文针对上述的不足,提出了一种基于3D 和Virtools 技术的虚拟实验开发方法———VVE,即用3DMAX 构建3D 实验场景、制作3D 动画;用Virtools进行数据处理,交互控制。
基于Virtools 虚拟实验开发结构图主要包括虚拟实验开发平台、虚拟实验开发平台模组、建模软件、PC 工作站、虚拟实验(VR Content)和浏览器(Virtools Web Player)等。虚拟实验开发平台是Virtools Dev;虚拟实验开发平台模组包括VirtoolsPhysics Pack、Virtools AI Pack、Virtools VR Pack、Virtools XboxKit、Virtools OpenCAD、Virtools Server;输入设备主要指控杆、方向盘、3D 滑鼠、3D 手套、位置追踪器;输入设备指立体眼镜、立体荧幕、头盔式显示器、模拟机;展出系统包含立体剧院和展示系统。
发明内容
通过国家专利检索没有发现关于此系统方面的申请资料。
一种基于3D平面技术的虚拟开发方法可以分为3 个步骤,分别是模型的构建、模型的控制和虚拟实验的发布。
一、 模型的构建;
虚拟实验环境的构建首先是模型的构建,由于Virtools 本身没有建模的功能,所以一般建模方法是采用建模软件来实现,如3DMAX 或Maya 等(本文中采用的是3DMAX)。用3DMAX制作三维模型或动画后以NMO 格式保存文件(导出NMO 格式文件需要安装相应的MaxExporter 插件),然后在Virtools 中导入所生成的NMO 文件。导入到Virtools 的三维世界编辑区的3D(或2D)元素可以加以观察、控制,也可以用安装SDK 插件编辑更多的BBs,实现虚拟实验的需要。
二、 模型的控制;
Virtools 中三维(或二维)模型的控制是靠Virtools 内置行为模块实现的。这些行为模块有500 多个,能够对三维(或二维)模型进行各种基本操作如大小变化、平移、旋转、缩放、颜色变化、光线变化、三维贴图等,复杂操作如投影、燃烧、行走、奔跑、后退等。实现对三维世界编辑区中的模型的控制,一种方法就是直接调用行为模块库中的内置BBs,一种是使用VC++通过手工自动编写BBs。前者简单方便,后者更为灵活。点击Data Resource(数据资源库),选择Animations(行为动作)类中的行为,用鼠标点击所要的动作行为并拖到3D Layout(三维世界编辑区)中的角色身上,并在Schematic(脚本流程图)中运用行为交互模块库中的行为模块编辑角色相应的脚本,这样就形成3D 交互动画了。
一般地,用行为动作库中的行为模块设计的3D 动画能够满足设计的需要。但有时必须自己写VC++代码来制作BBs,其中主要用到一些Win32 和API 编程的方法。
三、 虚拟实验的发布;
虚拟实验由两部分组成:虚拟环境和交互动画。其中模型的控制完成了虚拟实验之中的交互动画,而虚拟环境则是由构建的三维模型,如实验台、实验仪器、实验药品、墙、地板等共同构成虚拟实验室。虚拟实验制作完毕后,可采用两种方法加以保存,一种是直接将整个虚拟实验以CMO 文件格式保存,这种情况保存的文件只有载入Virtools 才可进行单机的虚拟实验;一种是将整个虚拟实验以VMO 文件格式保存,同时相应地以HTML 文件格式保存一份,这种情况需要安装播放插件VirtoolsWeb Player,可以进行单机的虚拟实验,也可以发布在网上,只要客户端安装了播放插件都可以进行虚拟实验。
下面给出了部分用Virtools 的BBs 进行编程的镁条燃烧虚拟实验的实例。
1) 实现用户的基础属性设置与做实验相关动作的设置。
① 加Enhanced Character Keep On Floor、Prevent Collision到Schematic 中用户的Script,并编辑输入参数;
② 添加KeyboardController、Unlimited Controller 到用户的Script,并编辑输入参数;
③ 添加Key Event、Send Message 到用户的Script,并编辑输入参数。
2) 实现用户用手揭开酒精灯灯帽,并放在实验台上的功能。
① 加Wait Message、Send Message 到灯帽的Script,并编辑输入参数;
② 添加Set Position、Set Orientation、Keep At ConstantDistance 到灯帽的Script,并编辑输入参数;
③ 点击AddParameter Operation 添加Get Distance,添加Test、DeactivateScript、Hide 到灯帽的Script,并编辑输入参数。
(3)实现用户拿打火机点燃酒精灯的功能。
①添加Wait Message、Send Message 到打火机的Script,并编辑输入参数;
② 添加Set Position、Set Orientation、Keep At Constant Distance到打火机的Script,并编辑输入参数;
③ 加Get Distance、Test、Deactivate Script 到打火机的Script,并编辑输入参数;
④ 加Wait Message、Send Message 到酒精灯火焰Script,并编辑输入参数;
⑤ ⑤添加Point Particle System、Test、Get Distance、Deactivate Script 到酒精灯火焰Script,并编辑输入参数。
(4)实现用户用手拿坩埚钳夹镁条的功能。
①添加Wait Message、Send Message 到坩埚钳的Script,并编辑输入参数;
② 添加Set Parent、Set Orientation、Keep At Constant Distance 到坩埚钳的Script,并编辑输入参数;
③ 加Get Distance、Test、Timer、Deactivate Script 到坩埚钳的Script,并编辑输入参数;
④ 添加Wait Message、Send Message 到镁条的Script,并编辑输入参数;
⑤添加Set Position、Set Orientation、Keep At ConstantDistance 到镁条的Script,并编辑输入参数;⑥添加Get Distance、Test、Unlimited Controller 到镁条的Script,并编辑输入参数。
(5)实现镁条燃烧的功能。
①添加Wait Message、Send Message 到镁条火焰的Script,并编辑输入参数;
②添加Set Position、Set Orientation、Keep At Constant Distance、Point Particle System到镁条火焰的Script,并编辑参数。
看到用户在虚拟实验室中做镁条燃烧的实验:当按下键盘上的T 键后,虚拟角色- 用户就会用其右手把酒精灯灯帽揭开放在实验台上;按下L 键后,用户就会去拿打火机点燃酒精灯;当按下G 键后,用户就执行拿坩埚钳夹镁条点燃镁条,镁条燃烧完毕后把坩埚钳放回实验台;按下C 键后,用户就会熄灭酒精灯。另外可以通过数字键2、8、4 和6 控制用户行
另外可以通过数字键2、8、4 和6 控制用户行走、后退、左转和右转,实现漫游虚拟实验的目的。