• 美文
  • 文章
  • 散文
  • 日记
  • 诗歌
  • 小说
  • 故事
  • 句子
  • 作文
  • 签名
  • 祝福语
  • 情书
  • 范文
  • 读后感
  • 文学百科
  • 当前位置: 柠檬阅读网 > 日记 > 正文

    基于VRML与JAVA实现场景交互初探

    时间:2020-12-13 08:06:57 来源:柠檬阅读网 本文已影响 柠檬阅读网手机站

    (呼伦贝尔学院 计算机科学与技术学院,内蒙古 呼伦贝尔 021000)
    摘 要:文章介绍了VRML和JAVA技术的基本概念,利用它 们进行三维交互的原理,并对三维实体的动态实现作了详细分析。
    关键词:虚 拟现实;
    VRML;
    JAVA;
    三维交互
    中图分类号:TP311  文献标识码:A  文章编号:1007—6921(2009)24—0128—02 

    在现代的远程教育中,网上虚拟实验是发展现代网上教育的一个瓶颈,而其中最关键的问题是 交互性没能较好地解决。在这里, 提出结合利用VRML和JAVA来实现三维虚拟场景中的交互问 题。利用VRML和JAVA技术进行三维虚拟实验室的开发[1],基本原理是用文本信息 描述三维场景,在Internet网上传输,在本地机上由VRML 的浏览器解释生成三维场景,解释生 成的标准规范就是VRML规范。这种思想使得在Internet上传输很少的数据,就可以在Web上实 现三维虚拟场景成为可能。
    1 基本概念
    1.1 VRML 虚拟现实建模语言

    VRML虚拟现实建模语言是一种三维场景的描述性语言,也是在Internet网上实现虚拟现实的 关键性技术,具有平台无关性,是目前Internet上基于WWW的三维互动网站制作的主流语言。V RML浏览器可以是一个独立的程序[2] ,也可以是某个Web页的附件和插件。它具有 界面真实感强、浏览方便、信息量大、交互性能优越等特点,是实现网上教学、模拟战场、 网上实习、网上实验的利器。
    1.2 JAVA技术

    JAVA语言是一种使用与网络编程的语言,它的基本结构与 C + +极为相似,但却简单得多。JAVA具有简单、面向对象、分布式、解释型、健壮、安全跨 平台以及可移植等多种特性,用JAVA开发的软件具有可视化、可听化、可操作化的特点。JAV A 是一种跨平台的编程语言,通过JAVA 编写的Applet(小应用程序) 在网上可以直接运行,非 常适合于Internet 上虚拟现实环境。
    2 VRML和JAVA 的交互方法

    JAVA 是一种跨平台的语言, 能很好的支持网络环境下的编程, 而VRM L 的优势在于构建虚拟现实场景.解决VRML 与JAVA 程序之间的交互, 主要有3类方法:①是 通过语言的方法, 就是将VRML 的3D 数据完全转化为程序语言, 它可以使浏览器得到 场景的完整信息,也具有基本语言的控制结构,但文件过大,不适用于网络传输。②是E AI 的方法, EAI 是一种应用程序接口, 是基于VRML 和JAVA 小应用之间事件传递而提出的 一种规则, 用于实现JAVA Applet 与VRML中虚拟场景之间的相互通信[2]。EAI 包 含浏览器脚本接口的全部功能, 例如查询浏览器状态, 增删路由等,若需集成多种媒体, 进 行复杂的网络控制, 多采用EAI 方法进行。③是SAI的方法, 它是使用事件机制和路 由, 即利用script 节点、事件发生器、dff/use 命名规则和路由route, 连接VRML 场景中 对应的节点和域, 实现VRML 与JAVA 的交互[2, 3]。首先通过eventIn 将事件传至 Script 节点中的URL 字段; 再在Script节点中的脚本中调用相应的JAVA 类进行处理; 最后 通过Script 节点的eventOut事件将结果送回到VRML 场景, 用以实现动画或交互。这种方法 是目前采用的最多的一种VRML 和JAVA 结合以实现交互的方法,其流程图如图1所示。VRML  着重于虚拟场景中对象的特征,不太考虑对象行为;而JAVA 主要讨论对象行为,很少涉及外部 特征,二者相互作了很好的补充,因此VRML 与JAVA 的结合,是实现较复杂动态场景控制等高 级交互功能的有效方法。VRML 中使用JAVA 有两种方式, 即通过脚本编程接口SAI(Script A uthoring Interface) 访问和通过外部授权接口EAI ( Ex2ternal Authoring Interface)  访问。JAVA能够自由运用于3D 场景[3],获得了一个结合VRML 世界和JAVA世界的机 制。VRML 世界通过其扩展执行模式进入JAVA世界,即活动行为通过一个特殊结点( Script结 点)来连接两个模块。

     
    3 JAVA 程序与VRML 场景间的连接

    JAVA 对VRML 的扩展和支持是通过JAVA 的附加封装类( class)而实现的。类是所有相似对 象的状态变量与行为构成的模板(template)或原型(prototype)。而每一个类和界面的名字 又包含在可以避免冲突出现的包(package)中。通过这些类, VRML 中的场景,在接受和发送 事件等各个环节都可以被JAVA 访问。目前, JAVA 对VRML 场景的访问控制有以下2种方式 
    3.1 SAI( script Authoring Interface) 脚本编程接口方式

    在此方式中, JAVA  充当javascript 或VRMLSCRIPT 等脚图1 利用Script 实现VRML 和JAVA 交互的流程图
    本语言。其所在的SCRIPT 节点定义如下:

    Script{eventIn eventType eventName <定义输入事件eventOut eventType eventName〈定 义输出事件field fieldTypeName fieldName initialValue〈定义私有域URL " example.cl ass" 〈程序模块列表}在Script 节点中, 事件输入( eventIn)和事件输入(eventOut)主要 用来接受和发送事件的处理值; 私有( 域(field)是标识VRML 场景里被JAVA 所访问控制的 节点; URL 域值设置了用JAVA 语言编写的类example.class, 在这个类中定义了intialize 、shutdown#enentProcessed#processEvent#processEvent 五个特定的成员函数, 浏览器会 自动调用这几个函数: 保护getField 和getEventOut 函数来获取节点的私有域和事件输出 。开发者只需要提供域或事件的名称, 这些函数就能给出Field 派生类的实例。另外, 调用 Browser 类定义的createVrmlFromString 等标准成员函数,都可以实现动态、改变节点、事 件路由生成的功能。
    3.2 EAI(External Authoring Interface)外部编程接口来访问

    这种 方式主要用于Applet 和VRML 场景都内置在HTML( 超文本标记语言) 页面上时的连接。在此 情况下, Applet 主要利用封装在Vrml.external 包中的Broseser 类来控制访问场景Browse r 类的基类IBroser 的接口类, 它封装有VRML 场景中除了SAI 可使用的函数外, 还有getNo de( )函数直接获得场景中使用DEF 语句定义的节点。与SAI 方式类似, EAI 中也可调用get EventOut、getEventIn 来获取那些事件的输入、输出的实例, 从而引起场景的变化。

    随着JAVA 技术和VRML 技术的不断完善和发展, JAVA 和VRML 的交互将越来越多的运用到日 常的生活和学习当中来。比如利用JAVA 和VRML 的交互为基础可以构建虚拟现实的实验环境 ,构建网络虚拟课件系统等,基于JAVA 和VRML的技术及相应的各方面的成果必将受到越来 越多的关注。
    [参考文献]
    [1] 赛博科技工作室. VRML 与JAVA 编程技术[M]北京:人民邮电出社,2002. 
    [2] 汪兴谦,牛燕明,邓谆谆. VRML 与JAVA 编程实例讲解[M].北京:中国水利水 电出版社,2002.
    [3] 王汝传,姚旭敏,王海艳,刘丽. 基于JAVA 和VRML 虚拟场景通信方式的研究[J ]. 系统仿真学报,2003,(7):986~990.
    [4] 伍晓平. VRML 与JAVA 的接口技术[J].计算机时代,1999 ,(3) :12~14.
    [5] 吴艳梅,张广萍用VRML实现虚拟实验室的设计方法1微型机与应用, 2001; (1 2) : 17~19.

    相关热词搜索: 初探 交互 场景 VRML JAVA

    • 文学百科
    • 故事大全
    • 优美句子
    • 范文
    • 美文
    • 散文
    • 小说文章