使用VRML构建虚拟境界的技术研究

2015-05-30 17:22邹珺
软件工程 2015年3期
关键词:虚拟交互三维

邹珺

摘 要:VRML是网络上使用的三维形体和交互环境的场景描述语言,支持一切用于建立虚拟世界的所具有的特性,基本目标是建立互联网上的交互式三维媒体。本文主要描述VRML的基本技术、基本特性,综合XML和VRML技术的X3D及VRML所面临的挑战。

关键词:VRML;三维;交互;虚拟;X3D

中图分类号:TP312 文献标识码:A

1 引言(Introduction)

VRML(虚拟现实建模语言)是一种用于建立真实世界的场景模型或虚拟的三维世界的场景建模语言,也是目前网络上基于WWW的三维互动网站制作的主流语言,即面向Web又面向对象,属于解释性语言[1]。

2 VRML的基本技术(Basic technology of VRML)

VRML是专为WWW而设计的三维图像置标语言,其标准中定义了用来描述三维模型的编码格式和交互或脚本的编码及行为模式。用文本描述的信息在网络上的传输比图形文件迅速,把一些复杂的任务交给本机处理,能在一定程度上减轻网络服务器的负担。由于该工作机制,VRML在网络应用中已经有很快的发展。

2.1 VRML的节点结构

VRML把虚拟世界看作成一个“场景”,而场景中的每一个实体都看作节点。VRML提供53种节点,主要包含造型节点、声音节点、光源节点、传感器节点、编组节点等。通常一个节点有四种特征:节点名、域名、域值和域值类型。节点大致可分为形体节点、属性节点和组节点三大类。每一类又包含若干不同的类型,每一类型有不同的功能。域是节点包含的参数,事件是节点参数的传递[2]。

2.2 VRML的事件体系

节点主要由事件和域组成,事件使节点不仅能够接收外界的信息,而且能和外界传递信息。域的取值决定了节点的取值和场景的状态,节点通过事件入口接收事件,通过事件出口发送事件。路由是两个不同的节点通过事件入口和出口传递事件的通道,通过路由把不同的节点联系起来组成了事件体系。事件体系的事件流程如图1所示。

图1 事件体系的事件流程

Fig.1 The flow of events of the event system

VRML由一系列包含对象的形状和描述信息的节点来组建场景,每个节点完成某一特殊功能。节点包含一系列的域,主要用来保存定义该功能所需的参数和数值。VRML使用父节点实现场景图的层次,它的人机交互功能建立在事件的基础之上,场景节点通过事件入口来接收事件,通过事件出口发送事件,节点间的事件通路由路由指定[3]。

3 VRML的基本特性(Basic characteristics of

VRML)

3.1 基于ASCⅡ码的低带宽可行性

VRML像HTML一样,用ASCⅡ码来实现各种场景,在各种平台上都能使用,同时降低了数据流量,即使带宽很低的网络上也可以实现。

3.2 改进的实时3D渲染引擎

实时3D渲染引擎在传统的虚拟现实中曾使用过,但在VRML中有了更好地体现。这个特性把虚拟现实的建模和实时访问更清晰地隔离开来,这也是虚拟现实与三维建模和动画的区别。后者由于事先着色,所以不能提供交互性。VRML提供了6+1个自由度,即三个方向的移动和旋转,以及与其他3D空间的超链接。

3.3 可扩充性

VRML虽然是一种标准,但无法满足所有应用的需要。有些应用需要交互性很强,有些需要画面质量更高,有些需要虚拟现实世界更复杂。这些需求一方面相互约束,另一方面受到用户平台硬件的约束,所以VRML是可扩展的,可根据需求定义自己的对象及其属性,并通过Java语言等方式使浏览器可以解释这种对象及其行为。

Web技术的迅速发展是VRML97的缺点逐渐暴露出来,VRML发展也日渐趋缓,已经不能满足人们的实际需求。究其原因主要有:性能表现力上有不足;编程能力束缚其推广;软件庞大,造成不必要的性能冗余等[4]。

4 X3D(X3D)

X3D(Extensible 3D)是具有扩充性的三维图形规范,它组合XML和VRML技术,使其更适应Web3D发展的需要。X3D第一版发布于2002年3月,结合了JAVA、XML、流等先进技术,包含更强大、更高效的3D计算能力、渲染质量和传输速率。

X3D主要的目标是:包含VRML97的功能;支持大量的数据编码格式,包括XML;分离数据编码和运行时间结构;增添了新的行为对象、交互对象、绘图对象;为3D场景提供可选的应用程序接口;组件化,封装轻量级的核心技术,使其能够轻易地加入新的功能;允许在不同层次的服务上都能实现X3D规格;可扩充性,使用组件增加新节点,而且符合核心技术的运行代码。为了满足共享虚拟世界、科学可视化、多媒体再现、工程设计、娱乐、教育、网页等方面使用的需要,X3D添加了以下的新特性:

(1)三维图形:多通道/多进程纹理贴图、多边形化几何体、参数化几何体、层次变化、光照、质地。

(2)二维图形:在3D变换层级中显示2D矢量、平面图形、文本。

(3)动画:计时器和时间轴驱动的连续动画,人性化动画和变形。

(4)空间化的音频和视频:在场景实体上映射视听源。

(5)用户交互:基于鼠标的选取和拖动,键盘输入。

(6)导航:实体在3D场景中的运动、碰撞、近距离和可见性检测。

5 X3D及VRML所面临的挑战(The challenge

which X3D and VRML face)

众多新的Web3D解决方案应运而生,有些3D软件标准发展迅速,并且在某些方面达到或超过了VRML,其中最引人注意的是Java3D和Shockwave3D。

Java在互联网上的应用广泛,同时在三维图形上具有更显著的特色。Java的独有特性是平台无关性。它只需部分编译,负责编译的是Java Virtual Machine(JVM),不同平台有各自的JVM,用于处理与平台相关的功能。平台只要支持JVM,就能运行Java小程序,IE和Netscape都支持JVM。所以使用Java制作的3D图形几乎可以在所有的互联网浏览器上显示。Java3D的这种“无插件技术”特性,即不需要下载插件,客户端也能渲染出优质的图形质量,物体动画的动作流畅自然。

Shockwave3D也是非常有特色的一种实现技术。Shockwave3D是由Intel和Macromedia公司合作开发的,植入Macromedia Director Studio 8.5中的3D引擎。使用Shockwave3D可灵活地控制三维模型进行各种交互操作,并充分利用Director中的资源制作高品质的动画,以Shockwave影片格式在网上发布。Intel的技术使Shockwave3D可以利用OpenGL或DirectX进行硬件加速,并且它还支持骨骼变形动画和层次细分表面。

另外,Viewpoint、Cult3D由于其画面生成质量优越,在需要高质量画面生成的产品展示领域具有一定的应用地位。而Adobe Atmosphere在实现所谓的虚拟社区独具优势,Pulse3D则在游戏娱乐领域内领先[5]。

6 结论(Conclusion)

目前,研究人员已研发出很多基于VRML的模拟或虚拟系统,如动漫、网上教育、建筑群漫游、临床医学演示和虚拟影院等。同时,VRML也引入了某些传统的协同设计领域,由于VRML能提供较好的交互性和真实性,在协同工作中各开发者之间的交流联系变得更直观自然。

参考文献(References)

[1] 许爱军,张文金,易丹.基于VRML的虚拟现实技术及应用[J].计算机与数字工程,2009(04):33-34.

[2] 王森,等.大规模VRML虚拟场景的快速浏览算法[J].系统仿真学报,2006(01):112-113.

[3] 陈华,陈福民.基于VRML的虚拟场景的设计与实现[J].计算机工程与应用,2002(06):67-68.

[4] 陆亚萍,刘厚泉,王莉.基于X-VRML的虚拟现实场景建模的研究[J].微电子学与计算机,2006(05):52.

[5] 丘威,钟治初,张立臣.基于VRML的在线虚拟现实场景设计与实现[J].计算机应用与软件,2007(04):98-99.

作者简介:

邹 珺(1981-),女,硕士,讲师.研究领域:软件开发.

猜你喜欢
虚拟交互三维
谈小学语文课堂如何落实“三维”目标
基于After Effects中Form滤镜下的三维粒子特效研究与应用
浅析色彩在人机交互界面中的作用
慧眼哲思对“虚拟”
与“虚拟”保持一定距离
三维数字化移交技术在化工项目工程设计中的应用剖析
基于图形用户界面的多点触控交互技术综述
如何在物理教学中构建物理模型
虚拟现实技术概论
关于信息化教育模式的大学教育变革的探讨