VRML/X3D场景的优化

时间:2022-04-10 10:35:39

摘要:VRML/X3D是新一代面向 Web 的交互式三维图形规范,由本地机上VRML的浏览器解释生成三维场景,也就是三维网页的技术规范。作者根据经验所得,从结构层次、文件压缩、源码优化和重复代码的简化等几个方面对VRML/X3D场景进行优化,压缩了VRML/X3D场景文件的大小,加快VRML/X3D三维网页的浏览速度。

关键词:VRML/X3D;节点;结构层次化;文件压缩;源码优化;重码简化

中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)22-796-02

VRML/X3D Scene Optimization

XIE Wen-da

(Jianggmen Polytechnic,Department of Information Technology,jiangmen 529090,China)

Abstract:VRML/X3D is the next generation of Web-oriented interactive 3D graphics standard,explained the three-dimensional scene from the local VRML browser, which is three-dimensional web of technical specifications. According to the author experience, optimized the VRML/X3D scene from structure level, file compression, optimization of the source, such as the simplification of repeat code, compressed VRML/X3D scene file size, speed up the three-dimensional web browser of VRML/X3D.

Key words: VRML/X3D; Node; structure leveled; file compression; the optimization of code; the simplification of repeat code

1 引言

VRML/X3D是一种虚拟设计语言,其基本目标是建立Internet上的交互式三维多媒体,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(Virtual World)[1]。VRML/X3D的出现使虚拟现实像多媒体和Internet一样逐渐走进人们的生活。简单地说,以VRML为基础的第二代WWW=多媒体+虚拟现实+Internet。VRML用文本信息描述三维场景,在Internet网上传输,在本地机上由VRML的浏览器解释生成三维场景,解释生成的标准规范即是VRML/X3D规范,也就是三维网页的技术规范[2-3]。为了加快VRML/X3D三维网页的浏览速度,作者根据自己经验所得,总结了几个对VRML/X3D场景进行优化的方法。

2 结构层次优化

2.1 LOD节点

为了减轻VRML浏览器的负担,VRML/X3D提供LOD节点。LOD意为“细节层次”(Level Of Detail),是指允许浏览器在物体表示的不同层次细节间自动切换。用来描述同一造型不同细节层次的组织关系。由于远处造型的细节可以远远少于近处造型的细节,可以利用一定的范围设定,让虚拟空间在不同的观察距离上呈现出不同的细节,这样不仅加快客户端渲染场景的速度,同时也增加VRML/X3D世界的真实感。它的使用方法就是用一对花括号把需要切换的模型[3]。

2.2 Inline节点

Inline是一种虚拟空间构造技术,它允许在分离的VRML/X3D文件中创建VRML世界中的每一个造型,然后可以将这些造型组织起来构造出相当复杂的VRML/X3D世界。Inline类似于模块化的设计思想,它使编程人员不必进行某些重复性的工作,从而极大地减轻了开发负担。在模块化的同时可以把一个大型的场景划分为不同的VRML场景文件,并将它们的结构层次化。如图1所示。

场景被层次化的同时也被划分为若干个小场景文件,小场景文件的下载的先后顺序便不同,所以它们的渲染的顺序也不同;在第一层的场景被优先下载、渲染。这样把优先要显示的场景文件放在第一层,达到场景渲染的优化。这也就对场景“分而治之”的思想。

3 场景文件大小的优化

3.1 利用工具缩减文件体积

为了加快文件在网络上的传输速度,方便浏览者对虚拟环境的浏览和交互,除了将模型的方位进行调整之外,还必须尽可能地优化模型的视觉效果,减小其文件体积[5]。通常采用压缩和优化的方式。

1)文件压缩

VRML的主流编辑平台VRMLPad就提供对文件的压缩优化。利用VRMLPad压缩之后,通常文件的体积减小为原来的1/3以下,压缩比高达66%以上,但文件的视觉效果基本没有改变。

压缩方法:点击VRMLPad菜单栏中的“File”菜单,选择其中的“Save As”命令。在弹出的对话框中选定“Save compressed”选项,即可完成VRML文件的压缩。

2)源码优化

VRMLPad除了对文件进行压缩之外,还可以直接对源代码进行优化点。点击菜单栏的“工具”莱单下的“未使用过的标注符”命令,在弹出的对话框中有“所有未使用过的标注符”选项,指在文件中所有从来没有使用过的标示符,可以优化删除[6]。“未使用过的标注符” 命令对话框还提供“未使用过的原始声明” 、“未使用过的节点名” 、“未使用过的区域声明” 、“默认区域值” 、“多余的区域” 、“复制的路径”等的优化删除。

VRMLPad还可以利用其它插件工具对源代码进行优化。在互联网上下载Comments. rar解压后将插件拷贝至VRMLPad的插件文件夹(…\VRMLPad\AddIns\),启动VRMLPad后,在菜单栏的“工具”菜单中会发现“命令”插件的菜单,即说明插件导人成功。“命令”菜单共有6个命令:“代码格式化”命令可以以最佳阅读方式显示VRML源代码之间的结构关系;“删除注释”命令用来删除所有的注释;“删除默认区域”可以删除那些默认定义值的节点内容;“优化代码”命令可以自动地将一些空白的区域、中断点、小数点之前的零加以优化删除;“优化代码,保留注释”命令在优化操作时保留了源代码注释的内容;“减少代码缩进”可以使源代码前的每行空格都删除。经过这些优化步骤之后,文件体积一般会被再次压缩10%左右。

3.2 重复代码的简化

1) USE节点:一旦为一个节点定义了名称,可以一次次地使用该节点于同一个文件中,在节点名称前用“USE”。语法:USE节点名。

在文件中该节点能被设定的任何地方使用该节点。在通常需要完整的节点描述时,你甚至可以使用一个节点作为一个域值。在同一文件中,可以使用USE来引用原始节点任意次。所有的实例和原始节点共享相同的节点描述,所以,如果你改变原始节点,所有实例将随之一同变化。在场景的建构过程中可能在一个场景多次重复使用某个模型。利用USE节点只需在文档中定义一次该模型节点就多次使用[7],这样就避免出现大量重复的代码,达到重码简化的效果。

2) 原型(PROTO)封装:用原型构造技术(PROTO和EXTERNPROTO)创建扩展节点。原型(PROTO)是一种类型封装机制,利用它可以在已定义节点类型的基础上定义新的节点类型;通过外部原型(EXTERNPROTO)还可以跨越因特网引用自定义的节点类型,一旦定义,原型节点类型就可以像内部节点类型一样在场景图中实例化。原型可以在当前文件中定义并使用,也可以在其它文件中定义,即外部原型,外部原型提供了一种使节点类型能够跨越网络的机制,这样可大大减少相同代码的重复编写,为快速建模提供了强大支持。

4 结束语

作者通过对VRML/X3D场景文件的结构层次、节点、压缩及重码简化等几个方面进行优化,对加快VRML/X3D三维网页的浏览速度有一定的影响。

参考文献:

[1] Kotz D,Gray R S.Mobile Agent and the Future of the Internet.ACM Operating System Review 1999,33(3):7-13.

[2] 林冬梅.X3D:新一代WEB交互式三维图形规范[J].计算机系统应用, 2004,(10):23-25.

[3] 刘华峰,党岗,金士尧.X3D:新一代面向Web 的交互式三维图形规范[J].系统仿真学报,2001,(13):199-203.

[4] 徐东辉.基于VRML多用户环境的虚拟社区的研究和构造[D].南京理工大学,2004.

[5] 李欣.基于VRML技术的虚拟数字校园场景建模研究[J].浙江师范大学学报,2005,28(4):402-406.

[6] 朱群雄,李彦娜.基于VRML的三维虚拟仿真场景的构建[J].计算机与应用化学,2004,21(3):391-394.

[7] 来翔.面向电子商务的虚拟商品模型研究[D].浙江大学,2003.

上一篇:浅析信息化教育环境下,高校教师如何提高教学质... 下一篇:建构主义影响下的大学计算机基础教学设计探讨