龙源期刊网 http://www.qikan.com.cn
基于VRML的三维虚拟场景的构建与优化
作者:雒伟群
来源:《数字技术与应用》2009年第11期
[摘 要]本文对基于VRML的虚拟场景的设计与实现进行了研究,并从减少文件长度,提高渲染速度两方面提出了优化场景的方法。 [关键词]虚拟现实 虚拟场景 优化
[中图分类号]TP39[文献标识码]A[文章编号]1007-9416(2009)11-0036-02
The Construction and Optimization of a Three-Dimensional Virtual Scene Based on VRML LUO Wei-Qun
(Information engineering college, Tibet Nationalities Institute, Shanxi 712082)
[Abstract] There has conducted the research of the design and implementation of a virtual scene based on VRML, and proposed some optimizations which reduced file length and improved the rendering speed.
[Keywords] virtual reality; virtual scene; optimization
随着网络技术的飞速发展,越来越多基于VRML的虚拟作品出现在互联网络中。对于规则场景利用VRML的对象建模较为容易,且定义虚拟场景的对象文件短小精悍,易于阅读。但随着虚拟场景复杂性的提高和应用的日渐深入,VRML在展现虚拟场景方面的不足也逐渐暴露出来,诸如程序代码庞大,视点位置不理想,交互性不足,稳定性和一致性不能满足某些特殊应用需求等问题。所以,开展基于VRML的虚拟场景的优化分析非常必要。
1 VRML技术
VRML(Virtual Reality Modeling Language 虚拟现实建模语言)是一种用来描述交互或3D对象和境界的文件格式。从VRML的定义可以看出,VRML设计初衷是想成为集成3D图形和多媒体的通用交换格式,而这一点已经成为现实。VRML文件格式成为在AUTO CAD等三维工业标准进行共享的唯一通用文件格式而得到了广泛的应用。
龙源期刊网 http://www.qikan.com.cn
VRML可以作为一种形式化描述语言,对于采用模糊自然语言表达的系统通过建模,从而实现对系统确切的、通用的形式化描述。经过形式化后的系统模型即可直接用于计算机程序设计和编程。VRML同时可以作为一种编程工具,实现包括场景图、用户交互以及后台计算的程序,构造一个具有完整功能的虚拟现实系统。
VRML的应用平台是Internet和本地客户系统。这种应用极大地扩张了VRML的应用,如工程与科学、可视化计算、多媒体、共享式VR系统以及教育等。
2 三维虚拟场景的设计
本文以数字电路虚拟实验室为原型,通过建立一个虚拟场景对整个结构进行分析。 2.1 大型场景的树形结构组织
对象的几何建模就是用来描述对象内部固有的几何性质的抽象模型,因此场景中对象模型的组织结构对虚拟实验系统的运行质量起着关键性的作用,合理的模型组织结构是必须的,并且实验者需要与虚拟仪器进行交互操作,因此应该根据虚拟实验室中每个实体的几何空间位置,以及模型间的结构关系,确定虚拟场景中实体模型的树状层次结构。这种层次结构使我们可以使用自顶向下的方法将一个模型对象分解,也可以使用自底向上的构造方法重构一个模型对象,把所有对象用双亲、孩子和兄弟划分成最有效的树结构。这种树形结构不仅提供了一种简便的自然的分割复杂物体的方法,而且对模型的修改也十分有利。下图为虚拟场景的层次模型(简要描述了虚拟场景的层次结构)。 如图1所示。
对场景进行层次结构划分后,可以方便地进行实体模型的组织和管理,而实体模型内部的层次结构划分能将复杂模型自顶向下分解成若干基本单元,明确模型构建目标,大大减轻建模的工作量。
2.2 子场景建模
所谓几何建模,是指虚拟环境中可见的3D物体空间形状以及各种附属性质的描述。一般有两种方法可以建造虚拟环境中各种场景与对象的三维模型。
(1)采用三维建模软件手工绘制三维模型。这需要精通各种绘画技法和熟练掌握三维建模软件的使用方法与技巧。好莱坞电影特技往往采用这种方法实现的。这种方法需要用户承担高额的人工费用。三维建模软件一般选择3DS MAX,优点就是省时省力,大量的坐标计算交由建模
龙源期刊网 http://www.qikan.com.cn
软件完成,设计者只需按照自己的意愿进行设计即可。对于不规则对象模型,可考虑使用该方法进行。缺点就是对物体描述的精度较高,使得转换后的VRML文件中存在大量的垃圾代码,需要优化处理。对于虚拟实验室中的面包板、数字电路芯片等我们采用该方法。
(2)使用建模软件实现自动三维。一般直接利用VRML定义虚拟实验室场景中的对象,包括三维模型、纹理、材质、色彩,以及对象几何体的平移、旋转、缩放等。这种方法的优点是对于规则场景对象建模较为容易,且定义虚拟场景的对象文件短小精悍,易于阅读。缺点就是定义的虚拟场景对象较为复杂时, 要书写大量的代码,并且要进行大量的坐标运算,非常繁琐。对于虚拟实验室场景中的实验台、地板、天花板、墙等采用该方法建立。
3 优化设计
在创建复杂的VRML场景时,除了创建大量的模型外,还必须考虑两件事,VRML文件的长度和场景的渲染速度。VRML文件的大小在两方面影响到场景,一方面是服务器与浏览器之间的传输时间;另一方面是将场景载入浏览器的时间。如果这些时间过长,浏览者将无法忍受。渲染的速度则直接影响浏览者浏览的速度,速度过低将使场景失去真实感。所以在创建场景的同时必须要考虑对场景的优化。 3.1 减少文件传输数据量
由3DS MAX输出的VRML文件有很多代码都是重复的,从而导致文件过大。比如面包板对应的VRML文件有近4万多行,达到2MB,如果直接将其加到实验室场景中将使得程序运行速度极其缓慢,所以必需对于建立的三维模型进行优化。 以下是一些精简文件大小的常用方法: (1)利用DEF、USE和PROTO对实例进行重用
在场景中经常有部分节点有着相同或相近的特点,它们的外形相同,仅是位置上有差别,我们可以通过使用DEF/USE结构,先用DEF定义一个节点副本,然后多次利用USE引用,这种引用的效果就是产生该节点的多个副本。与DEF、USE相比,PROTO节点(原型结点)的使用更需要对场景进行组织,在场景中存在一些节点,它们有相同的功能,但有一些属性上的区别,如颜色、纹理等,这时便可通过原型设计来优化。利用DEF、USE和PROTO对实例进行重用可以达到减小文件长度,节约内存资源的效果。
例如,在面包板模型中,输入输出引线插口有128个,它们具有相同的造型,只是位置不同而已,3DS MAX在输出VRML文件时,对于这128个插口分别使用索引面集(IndexedFaceSet)办法
基于VRML的三维虚拟场景的构建与优化
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)