虚拟现实的核心技术与未来趋势
最后,我们介绍网络虚拟现实中常用的描述语言VRML(Virtual Reality Modeling Language)。VRML是类似HTML (Hyper Text Makeup Language)的语言格式,所不同处在于VRML描述的乃是一个对象关连的幻想空间;经由简单的语法与参数,使用者可以简便地以许多几何物体来建立一个虚构的3D场景,并且自由地在场景中漫游观视,甚至探险游历。
比方说,使用者可以安排许多立方体的墙壁,建筑出一座迷宫,然后其它人便能依照开始设定的路线在迷宫中四处游走,彷佛真的身历其境一般。
目前VRML的格式有 1.0和 2.0的版本,前者只提供一个静态的场景空间,而后者则增添了诸如声音、动画、与使用者互动等动态支持,让一般人在因特网上也能充分享受到多媒体的丰富变化。以下便是一个简单的VRML 2.0范例. 在使用者眼前 4单位处放置一半径为 3的蓝色立方球体
#VRML V2.0
Transform
{
translation 0 0 -4
children
[
Shape
{
appearance Appearance
{
material Material { diffuseColor 0 0 1 }
geometry Sphere { radius 3 }
}
}
]
}
如同 WWW上的HTML档案一般,我们也需要对等的浏览器方能正确的将预先建好的虚拟场景显示在我们的屏幕上。通常大家所用的 WWW浏览器(如Netscape)应当都已能接受VRML 1.0的格式;至于VRML 2.0的的话,虽然尚未完全普及,但国内外目前都已有不少学校公司有这方面的研究及可供大家下传的浏览程序了,有些是独立的网络程序,有些则以Java Applet或 plug-in的形式完成。
以下是一些相关的网站,使用者可以从中得到VRML的浏览器或是一些已建好的虚拟场景及信息:
http://webspace.sgi.com/cosmoplayer
http://www.Dimensionx.com
http://www.construct.net/projects/chimerium.welcome.html
http://www.virtualvegas.com
http://cedar.cic.net/~rtilmann/mm/index.html
http://www.sonypic.com.vs/
四、VR应用软件开发工具
在本节中我们将介绍目前市面上较为普遍的三种VR商业制作软件,DiVision的dVS、Superscape与Sense 8的WTK(WorldToolkit)。至于底层的技术有支持OpenGL或DirectX。在计算处理上,dVS与WTK提供分布式处理,加速计算;在对象的表示方面,dVS与WTK提供多层次精细度模型(LOD)之功能。底下我们将针对这三种商业软件做简单的介绍。
dVS提供了分布式处理的架构达成实时的3D互动效果。在高互动性的VR环境中,大量的数值计算对速度上的影响非常大,必须加以特别处理。所以dVS利用分散处理的方式将可独立处理的工作(例如:绘图与音效处理),分散于各处理器内并行计算。因此,任何属性,如声音、物体的位置、颜色等,在dVS中都称为基本元素(element)。而在VR的环境中,一个对象可由数个基本元素组合而成,称为高阶对象(high-level object)。在一个较复杂的场景中,任何对象皆可继承于其它对象,使其有阶层式的架构。假设,在这些对象之中有相互独立的基本元素,则在多任务处理器的工作平台下,就可平行处理。这些独立的基本元素之相关运算称为对象的实行者(actors)。在分布式系统下,甚至可经由局域网络,将实行者分配到各独立计算机中计算,因此dVS提供一非常高效率的VR环境。dVS发展环境主要分为两大部分:(1) dVS执行系统(run-time)(2) dVS发展工具(VCToolkit)。dVS执行系统包含了数个伺服单元(server unit),目的在于可将使用者的程序平行化执行,而每一个伺服单元都是经过多次实验后最佳化的。dVS发展工具为一套C语言函式库,包含物体描述、环境的建立、音效的产生以及使用者操作接口。在物体描述方面,dVS采用多层次精细度模型(LOD) 描述对象,其方式可事先定义于输入文件中,或在程序中使用其动态几何应用程序接口(API)加以定义。在物体与物体/环境关系上提供碰撞侦测的能力,方式采用方形包围体(bounding box)或球形包围体(bounding sphere)作整体测试,之后再以物体阶层式架构中的子物体作个别测试。此外dVS可配合另一套发展工具dVISE。 dVISE为架构在dVS执行系统上