引言:实际上,VRML指的是虚拟现实建模语言,属于一种3D模拟形式下的造型与渲染图形描述语言,通过创造虚拟场景可以达到更加逼真的显示效果。凭借VRML的三维功能,将互联网转变为三维空间,再联合Java程序建立虚拟现实相交互的通信媒介。将虚拟世界作为场景,场景内的所有节点都是“对象”,采用场景图数据结构创造3D实景,发挥VRML的交互性特征,完成程序与场景间的通信。
1 Java的语言特点
从某种程度来讲,万维网转变了人们的生活方式,虚拟现实建模语言当中,Java语言将Web在网页内转为人们喜爱的方式,所以这是一种网络语言,有着广泛的移植性,可以保障各个对象间的交互行为,充分利用各种分布式通信方式实现数据传输与处理。Java语言在性能方面呈现出诸多特点,具体如下:(1)Java语言是一种比较简单的语言模式,人们可以快速掌握编程要领,实现内存管理。Java语言方式一般会面向对象来设计,主要有静态和动态两种代码形式,采用URL连接进行对象访问。(2)Java语言拥有一定的安全保证,避免内存中出现非法操作,在创建和浏览期间能够将语言功能和浏览器相结合,提高Java语言应用的可靠性与安全性。此外,Java语言还有着多线程、动态扩展的应用特点[1]。
2 VRML的工作原理
通常情况下,VRML会被用于Internet与Web连接中,以此形成了多用户交互与独立的平台。虚拟世界显示当中,VRML可以对交互行为予以描述,同时保持网络的联通性。在设计VRML时,先从3D图像入手,VRML浏览器是插件,可为应用程序提供帮助,将三维建模和动画应用相互分离,对场景采取着色行为,最后建立3D连接,形成基于VRML的超空间模式。VRML将图形和多媒体转为文件格式,使其在时间方面拥有信息抽象功能。与此同时,VRML文件可以引用其他格式的文件,完成相应的编程行为。场景图内,VRML可依靠数据结构产生3D环境,且VRML文件执行与呈现期间会依靠浏览器,浏览器将虚拟场景内的图像联合声音同时展示给用户,进而为用户呈现出看起来更加真实的虚拟世界。从访问方式来讲,VRML一般会在客户服务器端进行访问,对资源下载行为予以访问,通过多种技术形式完成各项技术的相互协调。
3 基于Java和VRML虚拟场景通信方式研究
3.1依靠Script节点与路由完成通信
将Script节点作为Java与VRML连接的桥梁,url字段是与外界程序保持通信的关键,这是www中上个对象的地址,可以明确当前外部程序所在的位置。无论是本地还是网络远端的合法程序都能够被有效利用。与此同时,url字段值可以被赋为合法源程序。该节点可同时支持Java语言和脚本语言。Java程序能够访问Script节点,这是因为程序当中的vrml.node包内存在Script类,通过对它的继承,能够让java程序和Script节点之间产生连接,从而有效控制VRML的其他节点。图1为Script节点和程序之间的交互情况[2]。
图 1 Script节点和java程序之间的交互
经过Script节点与Node类,可对VRML节点做出直接修改。程序改变了VRML中的节点值,可通过Script节点进行eventOyt域的控制点设置。如果需要传输大量数据,每个数据都会有相应的路由方法,Java修改了虚拟场景内的节点,但此过程都要用到Script节点。定义节点的时候,将域改成field域,再将field type定义成SFNode。经过改进之后代码长度被有效缩减,同时VRML世界计算时间被大量节约,这在一定程度上有效提升了虚拟场景的形成速度[2]。依靠EAI实现在HTML页面的虚拟世界的浏览,这需要得到VRML语言的支撑,而二维平面图的显示一般是由Applet来实现的。在虚拟场景内加入java控制程序,此时ARML原有的不足得到改进,交互性三维场景得以实现。采用server的方式,让计算机客户端可以为用户提供便捷的操作界面,方便用户在浏览场景的同时发表观点,用户可自行选择自己喜欢的建筑结构,促进虚拟校园的开发,创造更加俺妹的校园构造,实现技术之间的有效连接。
3.2依靠外部编程接口操控VRML世界
上述方法离不开对Script节点的应用,所以所有java需要继承Script类。因java无法支撑多继承,在基层Script类之后的程序就不能继承其他类。因此,有必要编写出Applet程序,以此用于对VRML场景的操控,所用到Java程序就能继承Applet类,此时再将其集成于HTML页面中。VRML97标准所提供的编程接口属于外部的,能够完成Java程序与VRML场景的相互通信,外部环境可经过VRML事件驱动模式去访问内部节点。
当前Java程序采用两种类,一个是Browser类,另一个是Node类,此外还会有专门处理域的属性类,可对EAI加以描述。其中Browser类会被封装于包中,完成虚拟场景的创建和通信传输。以虚拟街道场景为案例,如今城市中的街道在空间变化方面存在较大的难度,城市的规划建设让人们形成了有着个人需求的发展空间,过去街道经过翻修后,会在较短的时间内再次被整修,基于这一趋势,人们的生活遭遇不便。所以采用Java程序与VRML来创建城市街道场景,通过虚拟场景设计展现街道的真实情况,实现这两方面技术的高效融合。
创建三维物体之前需要展示街道的场景图,例如街道内的建筑物、植物、太阳、指示牌、行人等。将每个物体与三维坐标结合在一起,比如通过长方体和圆柱体来表现。采用VRML2.0文件识别解释器,确保外观完整和纹理的合理选择。创建植被时,需将单个树木采用不同规格大小合成,再用translation设置树木间的距离,完成整排树木的有效设定。在创建路口交通灯的时候,可使用长方体对不同方向的红黄绿愠色加以设定。
3.3Java与VRML通信中应注意的问题
创建VRML空间时,应按照VRML中的节点进行虚拟场景的有效创建,提出场景的远动功能。设计期间,不同的插件在计算机内的浏览行为之间有着明显的区别,这是因为编写VRML的时候是纯元件,未与Java程序产生交互行为。想要实现Java与VRML二者的有效通信,需注意以下事项:(1)插件上不能对VRML文件加以浏览,只有处于网路环境下才可进行浏览。(2)需要在cosmoplayer插件上实施浏览行为时,可能计算机能不会实施关于插件配置的浏览。(3)版本方面存在差异,Java与VRML在通信期间,java文件的处理和编译方式可能有所不同,此时需要根据不同情况而采用交互行为,通过Java与VRML的通信减少插件的调试时间。
总结:总而言之,掌握java程序与VRML程序之间的交互性控制情况,通过这两种方式的应用提高虚拟世界的交互性,让三维虚拟世界看起来更加真实。当java程序介入之后,VRML世界中将会生成更加复杂的三维动画,随着场景的变化,使虚拟世界更加逼真,依靠Script节点与路由完成通信,以及依靠外部编程接口操控VRML世界,最终突出技术应用的有效性。
参考文献:
[1]杨迎.Java技术在嵌入式系统中的作用探讨[J].无线互联科技,2021,19(14):96-98.
[2]魏瑾.Java多线程技术在网络通信系统中的应用[J].山西电子技术,2021(01):66-68.