基于vrml_java的虚拟场景交互的实现

基于vrml_java的虚拟场景交互的实现

ID:34108810

大小:268.72 KB

页数:4页

时间:2019-03-03

基于vrml_java的虚拟场景交互的实现_第1页
基于vrml_java的虚拟场景交互的实现_第2页
基于vrml_java的虚拟场景交互的实现_第3页
基于vrml_java的虚拟场景交互的实现_第4页
资源描述:

《基于vrml_java的虚拟场景交互的实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第26卷第4期苏 州 大 学 学 报(工 科 版)Vol.26No.42006年8月JOURNALOFSOOCHOWUNIVERSITY(ENGINEERINGSCIENCEEDITION)Aug.2006文章编号:1673-047X(2006)04-0078-04X基于VRML/JAVA的虚拟场景交互的实现12马万全,单美贤(11东南大学计算机科学与工程学院,江苏南京210096;21南京邮电大学传媒技术学院,江苏南京210003)摘 要:Javra是一个以EAI为基础的处理VRML场景图的Java包,克服了VRML与Java通过内部Script节点和EAI方式进行交

2、互的不足:用户操作实时生成的VRML事件可以在Javra中捕捉到并加以处理。Javra和VRML浏览器的结合,使得生成3D交互应用程序更有效。关键词:Java;VRML;EAI;Javra;场景图中图分类号:TP311    文献标识码:AVRML(VirtualRealityModelingLanguage)虚拟现实建模语言,是一种三维造型和渲染的图形描述性语言。通过VRML,人们可以建立丰富的三维场景,但是VRML本身并没有直接和用户进行交互的能力,它需要与其他评议结合才能实现三维场景和用户交互的要求,Java语言提供了这种可能性。本文主要论述VRML与Java的交

3、互方式和Javra的使用。1VRML与Java之间的交互方式VRML产生事件的方式可以归结为基于TimeSensor的静态行为和基于程序的动态行为两种,前者仅能执行预定的决策逻辑,对于一些复杂的动画动作、实时控制事件、智能推理能力等,就需要其他编程语言(如Java)的支持,当前主流VRML浏览器也都对Java编程提供了支持。在VRML中使用Java语言有两种方式,即通过内部Script节点和外部编程接口(EAI)进行。1.1 内部Script节点Script节点支持VRMLScript和JavaScript(两者通过内置接口通信),支持SUN公司的Java,其通过内置接

4、口或者专用API与VRML通信。Script节点的URL域可以包含一段JavaScript程序或者是链接的一个JA2VAclass。利用Script节点进行动画设计的过程可以用图1表示:①通过eventIn将事件传至Script节点中的脚本(Java或JavaScript);②在脚本中进行处理;③通过eventOut将结果送回图1 利用Script节点进行动画设计的框图Script节点。通过Script实现的动态场景中的事件(输入和输出)均在VRML内部节点之间进行传递,虽然可以实现相应浏览者的交互功能,但对于与外界的信息交流包括信息的输入和输出却显得力不从心。1.2 

5、外部编程接口(ExternalAuthoringInterface)EAIX收稿日期:2006-05-08作者简介:马万全(1974-),男,硕士研究生,主要研究方向为计算机控制。©1994-2007ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.http://www.cnki.net第26卷              马万全,单美贤:基于VRML/JAVA的虚拟场景交互的实现79Script节点从VRML场景内部提供了与Java的连接,而EAI定义了与外部HTML页面中的Applet通信的

6、接口。EAI技术是利用定义的一套针对VRML浏览器的Java类实现对VRML场景的控制,它的基本思想是将Javaapplet与VRML置于同一web页面,在Javaapplet中建立browser对象以标识一个唯一的VRML场景,并由此获得对VRML场景中已定义节点的引用,它通过直接指定引用节点的域值而达到动态效果。这样Javaapplet即可控制VRML场景,也能进行与HTML等其他媒体的交互以及网络控制,从而可以实现复杂的虚拟环境系统。图2是EAI的交互原理。A、Brows2er类是对VRML场景的一个Java封装,通过getBrowser()方法获得当前浏览环境信

7、息;B、访问某个节点产生要用Browser类的getNode()方法来获得一个Node类实例;C、在获得Node类实例后,可以通过Node类所提供的getEventIn()和getEventOut()方法对节点进行访问;D、如果需要在Applet中实现VRML节点的动态增加和删除,就得利用到Brows2er类的一个方法:createVrmlFromString()。此方法的参数是一个内容符合图2EAI的交互原理图VRML规范的字符串,它返回一个Node类的实例数组,这些Node实例是在VRML场景的外部环境中生成的。E、读取VRML场景中

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。