基于X3D的实时交互技术在定位实验中的应用

2016-09-14 09:17高雅莉徐武
电子设计工程 2016年2期
关键词:虚拟现实实验教学节点

高雅莉,徐武

(云南民族大学 电气信息工程学院,云南 昆明 650031)

基于X3D的实时交互技术在定位实验中的应用

高雅莉,徐武

(云南民族大学 电气信息工程学院,云南 昆明650031)

X3D是一种基于XML格式开发,专为万维网而设计的三维图像标记语言。目前国内虚拟现实技术主要应用于房地产宣传、古文物修复等方面,在电气实验教学中基本没有涉及。本文利用X3D语言对电气实验中的定位实验进行虚拟仿真,并利用X3D的动画交互技术以及JavaScript脚本语言来重建实验的全部过程。该仿真系统主要用于新手教学,避免了学生在尚未完全理解实验原理的情况下进行误操作而导致设备损坏等情况的发生,且该系统基于web传输,学生不必到实验室,可通过网络在宿舍随时进行实验操作学习。

X3D;VRML;JavaScript;实时交互

X3D是一种专为万维网而设计的三维图像标记语言,由Web3D联盟设计,是VRML标准的最新升级版本。目前X3D已经是通过 ISO认证的国际标准。Html5里面的3D技术,webGl都需要通过X3D来实现。X3D基于XML格式开发,在主流的浏览器中现在可以使用XML DOM文档树和相关脚本解析<X3D>、</X3D>标签中的三维内容,是一种轻量级的三维图像标记语言。X3D中保留了“Classic VRML”编码,保持和早期 VRML的兼容,只需要对场景做很小的改动,就可以用这个编码来播放不包含脚本的VRML 2场景,且没有技术性的损失就可以升级至X3D[1]。

X3D拥有一套丰富的组件功能,可以使用在工程和科学可视化定制、CAD和建筑、医疗可视化、培训和模拟、多媒体、娱乐、教育等领域。它支持显卡硬件的功能,如设置显卡的混合模式和帧缓存、深度缓存、模板缓存的功能,添加了从底层渲染的节点,如三角形、三角形扇、三角形条带等基本渲染元素,还支持多纹理和多遍绘制、Shader着色、多渲染目标(MRT)、几何实例(Geometry Instance)等,2010年已经可以在X3D和VRML中使用延迟着色技术。现在X3D的特效包括SSAO和CSM阴影、实时环境反射和折射、基于实时环境和日光的光照、HDR、运动模糊、景深等,并支持对应3ds MAX标准材质的多种贴图[2]。

1 X3D建模

基本三维实体模型在实际中表现为一个独立的X3D造型文件(.x3d文件),可以有两种方法构造基本三维实体模型,第一种方法是使用X3D编辑软件节点直接编写,第二种方法是利用三维造型工具生成[3]。

X3D提供了10类几何节点和7类外观节点,几何节点能够实现立方体、球体、圆柱体、地形等各种简单三维造型,外观节点提供了质材、质感、光照等表面参数,利用这些节点可以实现复杂的三维造型[4]。但是这只能构建较为简单的三维模型,对于那些造型较为复杂的模型就无能为力了,为了加快造型速度和造型质量,可以利用3Ds Max等三维造型工具,这些工具中均具有转换功能,能够把工具本身生成的三维造型转化为标准的VRML造型文件,之后再通过X3D-Edit将VRML文件转换为X3D文件。如图1所示。

图1 3Ds Max软件构建复杂的三维图形Fig.1 Building complex X3D model by using 3Ds Max software

2 X3D与JavaScript

X3D与JAVASCRIPT进行交互时,JAVASCRIPT可以直接嵌入X3D语法,不需要独立编写、编译。X3D语言利用SCRIPT节点,通过 url引入一个 JAVASCRIPT脚本,写入X3D文件的脚本语言可以实现对X3D场景内任意对象的操作,包括贴图,并且ROUTE语法将事件与触发器绑定在一起,当触发器被触发时,便会实现预先设定好的交互效果[5]。

在html页面中使用脚本语句实现对对象的某些控制比JAVA更加容易,使用<EMBED>标记将X3D文件加载到html文件当中,具体对象的操作通过JAVASCRIPT中定义的方法、函数来实现。当在网页中嵌入X3D场景时,API将自动创建一个Browser对象,同时也处理数据类型的映射、对象、以及事件的响应等,在html文件中可以使用JAVASCRIPT脚本来实现这些映射[6]。html中的JAVASCRIPT首先构造出一个Browser实例,再通过Browser对象方法改变场景。

3 实验过程模拟

PositionInterpolator节点允许对三维空间的一个坐标点进行动画关键帧的插值操作。建立插值器时,为动画的不同完成比率设置相应的坐标值(包括开始值和结束值)。通常坐标插值器从时间传感器接收set_fraction事件,经处理后,将输出值发送给Transform节点的translation域。在JavaScript节点内使用SFTime类型节点作为事件控制器,当用户触发触发器后,首先激活该事件控制器,由该事件控制器来根据参数选择激活什么事件,之后通过JavaScript语法把startTime发送给指定事件的PositionInterpolator。从而触发实验步骤。具体流程如图2所示。

图2 基于X3D和JavaScript的人机交互控制功能流程图Fig.2 Human-computer interaction diagram based on X3D and JavaScript

其关键代码如下所示:

如上述代码所示当点击按钮触发“dykg2yd”事件时,dykg2模型的x坐标自动以0.3的移动速度往负轴方向移动,通过switch节点,自动切换菜单实现指引效果,如图3所示。

图3 无线传感器网络节点组装交互控制图Fig.3 Interaction control diagram of assembling sensor node in the wireless sensor network

4 结 论

随着技术的进步和硬件的发展,基于VR技术的虚拟实验教学系统无疑将会得到更进一步的发展,未来的虚拟实验教学系统,一定还会有更多的资源类型和更先进的服务涌现出来,一些更方便直观的交互式工具(如各种类型的传感器)也将应用到系统中去,可以说,VR技术在虚拟实验教学系统中大有可为。当然,目前探讨的还只有这些,其中也难免有谬误和不足之处。

[1]徐武,邵剑龙.VRML在虚拟城市场景中的应用[C].现代信息技术理论与应用(上册),中国科技大学出版社,2002.

[2]徐武.虚拟现实技术[M].杭州:浙江大学出版社出版,2013.

[3]戴俊,沈建华.基于VRML的虚拟实验室的研究与实现[J].舰船电子工程,2009,4:21-24.

[4]包海涛.虚拟现实技术在汽车造型设计中的应用研究[J].装备制造技术,2009,10:33-38.

[5]叶艳青,邵建龙,念晓.基于VRML的网络交互式虚拟现实建模研究[J].系统仿真学报,2006,18(10):2827-2831.

[6]邵剑龙,叶艳青,徐武.VRML虚拟场景中Java编程功能的实现[J].计算机与应用化学,2004,21(4):641-644.

Application of X3D-based real time human-computer interaction techniques in location experiments

GAO Ya-li,XU Wu
(School of Electronic and Information Engineering,Yunnan Minzu University,Kunming650031,China)

X3D is a ISO standard XML-based lightweight file format for representing 3D computer graphics.The present mainstream web browsers can parse 3D contents between<X3D>tags with XML DOM and scripts and display enhanced application programming interfaces.Nowadays the application of Virtual Reality(VR)technology in China mainly concentrates on limited areas e.g.real estate advertisement or cultural relic restoration but rarely involves electrical experiment teaching.This paper presents the entire process of virtual simulation of location experiments of electrical experiments and reconstructing of the experiments by adopting X3D animation interaction techniques and JavaScript.The virtual simulation system is mainly used for training learners to avoid damage of equipment by students who do not fully understand the experimental principal and misoperation.Furthermore,the system runs on web and can be accessed remotely by anyone.

X3D;VRML;JavaScript;real-time human-computer interaction

TN919.82

A

1674-6236(2016)02-0012-03

2015-03-29稿件编号:201503419

云南民族大学2014年校级教学改革研究项目(201491);2013年云南省民委科研项目(2013Y236)

高雅莉(1975—),女,云南昆明人,讲师。研究方向:数据库编程,虚拟现实技术。

猜你喜欢
虚拟现实实验教学节点
CM节点控制在船舶上的应用
基于AutoCAD的门窗节点图快速构建
小议初中化学演示实验教学
电容器的实验教学
对初中化学实验教学的认识和体会
概念格的一种并行构造算法
REALITY BITES
风口上的虚拟现实
几何体在高中数学实验教学中的应用
虚拟现实技术向科幻小说借灵感