APP下载

基于VRML的优化技术分析与探讨

2013-08-15

淮北职业技术学院学报 2013年2期
关键词:碰撞检测文档细节

方 伟

(淮北职业技术学院 计算机科学技术系,安徽 淮北 235000)

随着VRML技术的不断成熟和发展,VRML已经被广泛的应用于人类的生产和生活当中,特别是利用互联网进行VRML场景信息的传递和显示,让人们可以足不出户就能够享受极富真实感的三维世界。可以说VRML的出现彻底改变了传统网络信息的展示方法,使整个虚拟世界不仅增强了虚拟世界的真实感,而且能够与用户之间形成较为复杂的交流互动行为。但是伴随着虚拟场景模型复杂程度的不断提高和技术应用领域的不断深入,使得利用VRML制作出来的虚拟场景在进行网络传输时也遇到了一些迫切需要解决的问题,诸如程序代码偏大,模型自身体积过大造成客户端场景渲染速度过慢以及交互功能不足等。解决这些问题的关键就是对VRML场景模型进行必要的优化,尽量减少模型文件占用的空间和复杂程度,提高VRML场景在网络中传输的稳定性和显示速度。

1 VRML的组成与工作原理

VRML实际上是一种用于对三维虚拟场景进行建模的描述性语言,能够有效的将三维图形、二维图形以及其它一些多媒体影音元素整合在一起,开发出基于WWW的三维动态交互式网站,是目前虚拟技术中最为核心和应用最为广泛的一项技术。VRML文档一般是由四个部分组成:VRML 文件头、原型、场景图(ScenceGraph)、路由(Route)[1]。而形成这四个部分最为重要和核心的元素是节点(Node)。节点是VRML最基本的单位,可以说虚拟场景中所有模型的创建以及其它外部标准格式文件的引入等都是通过节点来去完成。构建虚拟场景文档节点首先通过自身的语义规则构建虚拟场景的整个内部结构图;然后利用场景图中的相应节点从视觉和听觉的角度去表现相对静止的对象,这些节点是根据模型的层次体系进行组织,体现了整个虚拟环境的空间结构关系;最终再通过具有事件和路由功能的节点完成场景中的动态效果,也就是形成路由图,确定虚拟环境随时间推移动态变化效果。

VRML文档最终的解释和执行是通过浏览器来完成,这与传统显示HTML页面的方式和原理是相同的,只不过在显示VRML时浏览器要安装相应插件。VRML的工作方式是基于客户/服务器模式,由服务器提供VRML文件及场景中所需的多媒体资源,客户端通过网络请求下载希望访问的文档,最后由本地平台上的浏览器生成VRML描述的虚拟世界,并可以进行交互式的浏览操作。由于浏览器是本地平台提供,从而实现了VRML的平台无关性[2]5-7。

2 VRML文件编辑环节的优化策略

2.1 纹理贴图优化

对于较为复杂的模型,如果过多的利用点、线、面对其进行描述和刻画,势必要增加模型文件占用空间的大小,也不利于文件的网络传输和实时渲染。因此,在创建模型时通常都采用最基本的造型(Box、Sphere、Cone等)来去构建模型的大致轮廓,然后利用材质贴图的方法对模型细节进行表现。这样不仅能够使模型获得更加逼真的视觉效果,而且减少了文件的大小[3]35-37。当然,这里所利用的材质贴图也不应过大,一般不应大于20K字节,因为在VRML文件进行网络传输时贴图文件的传输和下载必然要占用网络的带宽和资源,同时,在客户端浏览场景时经常会变化视觉的角度,角度一旦变化场景就会重新进行计算和渲染,这个过程就包括贴图。因此,可以充分利用纹理贴图的可重复性和可延展性,尽量使用小纹理代替大纹理文档,减少贴图文件的加载和处理时间。另外,对于一些远景或次要模型,可通过与Billboard节点结合,将模型通过纹理构成几何体,从而最大可能的缩小VRML模型文件占用的空间和复杂程度。

2.2 利用DEF、USE和PROTO对实例进行重用

在场景中许多模型都有许多的共同点和相似性,他们的外形一致,只是在场景中的位置摆放不同,我们可以把这些对象先用DEF去定义,在后期的引入过程中通过USE来去完成,这样就能避免代码的重复。PROTO是在VRML规范上扩展的新的节点集的机制,主要针对功能相同但属性不同的模型对象。通过PROTO可以对几何体、属性、操作或他们的集合进行封装和参数化,后面设计过程中就可以直接使用它,并传入一定的域值作为改变对象的参 数[4]57-59。VRML 还 支 持 外 部 原 型 (EXTERPROTO),利用VRML中的URL域值进行不同VRML文件之间原型的相互调用,这样可以提高模型的模块化特性和可重用性。

2.3 使用压缩软件

VRML文档中引入了许多图像、音频、视频等多媒体文件,这些文件经过有效的压缩以后就可以大大减小VRML档的大小。当然我们的压缩原则是一定要保证被压缩文件不失真,否则就无法确保模型的逼真度。除了对VRML文档素材可以进行压缩外,还可以对VRML本身进行有效压缩,压缩后可以使模型文件体积进一步缩小,减少对网络带宽的要求。目前实现这种压缩过程比较流行的方法是通过VRMLPad中的Publish命令或是GZIP压缩技术,一般都可以将模型文件大小缩小数倍,大大减少了网络传输时间,提高传输效率。

3 VRML场景优化策略

3.1 使用细节层次控制节点LOD

LOD节点能够根据用户视点的远近和范围,动态的装载复杂程度不同的场景。客户端在进行虚拟场景的浏览时,经常会变化视觉角度,当角度转变时虚拟场景就必须要进行再一次的渲染和加载,这样就会造成系统资源的浪费以及浏览速度的降低。实际上当浏览者的角度距场景造型较远时,对场景的表现细节程度要求就不那么高了。因此我们可以对物体创建具有不同层次细节的模型,通常可分为低细节模型、一般细节模型和高层次细节模型。当用户在进行浏览时,如果视点距场景模型较远,调用低细节模型,只显示物体大致轮廓;视点较近时,才调用高层次细节模型,以清晰表现物体的细微特征,既保证了模型的逼真度,又加快了场景的渲染和显示速度[5]7-10。LOD节点有三个域:分别是Center、Range和Level。Center域值说明视点中心的三维坐标,Range域值说明视点的变化范围,Level通过与Inline节点配合完成对场景文件的调用和显示。

3.2 利用Inline进行场景整合

一个大型的虚拟场景表现需要将若干个VRML文档进行有效的连接和整合,单独依靠某一个单独的VRML文件表示,不仅加大了虚拟系统开发和调试的难度,而且会大大降低模型的加载和渲染速度,经常会产生一些不可预测的错误[6]109-112。VRML中通过利用Inline(内联节点)来解决虚拟场景的整合问题。首先将复杂的虚拟场景分解成若干个较小和较为简单的小文件,然后分别进行模型的设计和调试,最后构建主场景时只需在要引入模型的位置处通过Inline节点指出模型文件所在的地址和文件名即可。这种优化方法可以使整个场景在客户端显示时进行分阶段的渲染和下载,提高了场景的执行效率。

3.3 提高场景漫游时的碰撞检测效率

真实场景中,我们是无法实现对物体的穿越等情况。因此当用户在虚拟场景中进行漫游操作时,有必要对场景模型进行必要的碰撞检测,避免发生穿墙而过等与现实不符的情况,以提高虚拟环境的真实可靠性。但是当场景中引入碰撞检测机制后,会产生一系列的检测运算和判断过程,占用了CPU的大量资源,导致系统加载漫游速度变慢。针对这种情况,通常采取以下两种方法解决:一是场景设计时尽量减少碰撞检测的次数,只针对有可能发生穿越的物体引入碰撞检测;二是针对场景模型不同的特征和作用使用不同的碰撞检测算法,提高检测效率。通过以上方法处理后,有效地提高了视景屏幕的刷新率,缩短了碰撞检测时间,加快了视景碰撞的响应速度,提供了优秀的视觉仿真效果[7]42-44。

4 结束语

一个功能完善和逼真度高的VRML场景从最初的建模到最后的终端显示,其中主要包括了模型的构建、场景从服务器端到用户端的传输、场景在用户端的渲染显示这样三个环节。因此VRML采取的主要优化技术都来源于这三个过程中涉及到的一些节点、素材、算法等基本元素,通过对他们进行改进和优化,最大限度的减少VRML中的冗余代码和场景中多余的数据信息,增强虚拟场景的执行效率,呈现给用户一个逼真度高而且交互能力强的三维网络世界。

[1]严子祥.VRML虚拟现实网页语言[M].北京:清华大学出版社,2001.

[2]肖龙,刘晓环,宁芋.虚拟现实技术一 VRML[J].微型电脑应用,2001,17(10).

[3]朱世昕,陈立潮.虚拟现实中的场景建模及模型优化技术[J].电脑开发与应用,2005,18(11).

[4]杜玉玲,文西芹.基于B/S模式的远程虚拟实验室的开发[J].现代教育技术,2004,14(2).

[5]薛彦兵.较大规模VRML场景实时显示与交互技术的研究[D].天津:天津理工大学计算机与通信工程学院,2005.

[6]买桂英.VRML虚拟场景优化策略[J].工业仪表与自动化装置,2011(5).

[7]杨建菊.基于VRML的虚拟校园漫游系统研究[D].贵州:贵州大学计算机与信息科学学院,2010.

猜你喜欢

碰撞检测文档细节
浅谈Matlab与Word文档的应用接口
全新预测碰撞检测系统
有人一声不吭向你扔了个文档
以细节取胜 Cambridge Audio AXR100/ FOCAL ARIA 906
基于BIM的铁路信号室外设备布置与碰撞检测方法
留心细节处处美——《收集东·收集西》
基于RI码计算的Word复制文档鉴别
细节取胜
空间遥操作预测仿真快速图形碰撞检测算法
BIM技术下的某办公楼项目管线碰撞检测