基于VRML的交互技术及应用
- 格式:pdf
- 大小:137.38 KB
- 文档页数:4
基于VRML的交互技术及应用
凌 宇① 唐明浩②
摘 要 本文阐述了用Script节点实现VRML世界与
Java平台之间的交互技术和实现方法。根据该原理可以实现
用户与VRML空间的互动。最后以虚拟人体的变形为例,介
绍了VRML互动技术的应用。
关键词 虚拟现实 交互技术
随着Internet的普及和计算机性能的提高,二维的、平面
的html式的虚拟空间已经渐渐不能满足人们的要求,人们希
望能够通过一种语言三维的、立体的表现现实世界,VRML
(VirtualRealityModelingLanguage)技术是人们实现这一目
的的一种良好工具。
VRML为三维空间——一个与现实一致或完全想象概
念上的场景描述——提供了详细的说明。通过VRML技术,
人们可以建立丰富的三维场景。但是VRML本身并没有直接
和用户进行交互的能力,它需要与其他语言结合才能实现三
维场景和用户交互的要求。Java语言提供了这种可能性:
VRML能够构造网点所必须的三维结构模块,Java则使三维
场景具备交互能力,更加生动,更加丰富多彩。本文主要论述
了VRML与外部世界的交互方式以及它在三维人体变形当
中的应用。
一、VRML简介
VRML定义了一种包含三维图像和多媒体的文件格式。
从概念上讲,每一个VRML文件都是一个包含可以通过不同
机制进行改变的图像和声音对象的基于时间的三维空间。每
个VRML文件都应该具备以下特点:隐式创建一个包括文件
中定义的所有物体的三维空间;显式定义和包括一系列的三
维和多媒体对象,创建到其他文件或项目的超级连接;能够定
义对象行为,内联其它VRML文件等。
VRML是一个三维造型和渲染的图形描述性语言,它把
一个“虚拟世界”看作一个“场景”,而场景中的一切都看作“对
象”(也就是“结点”),对每一个对像的描述就构成了WRL文
件;VRML的图形渲染是“实时”的;VRML是面向网络的,它
是为网络而生的,并随网络而发展的,它的巧妙之处在于避免
了在网上传输无限容量的一帧帧视频图像,而传输的是有限
容量的WRL文件,即只传送描述场景的模型,而把动画帧的
生成放在本地。二、VRML交互技术
VRML本身并不具备与外部交互的能力,它必须和其它
语言相结合才能构造出具备交互能力的三维场景。尽管
VRML组织决定VRML210不再需要任何特殊语言,这个决
定部分是基于避免“语言战争”的愿望,而且基于这样的决心:
没有一种语言能够满足VRML组织的所有要求。但是由于
Java与网络的有力和紧密的统一性,Java被大多数严肃的
VRML开发商采用。
VRML210可以通过扩展其执行模式进入Java世界,即
活动行为通过一个特殊节点来连接VRML世界和Java世
界。这个节点称为Script节点。Script节点可以象其它的
VRML210节点一样放置在场景等级中的任何地方;可以用
DEF命名它;可以从它那里移走事件,也可以把事件传给它。
但是Script节点的字段是由用户延伸的,到达这些字段的字
段会自动移到和Script节点相关程序中。
11Script节点的定义及工作机制
Script节点的详细定义:
Script
exposedFieldMFStringurl []
field SFBool directOutput FALSE
field SFBool mustEvaluate FALSE
#Andanynumberof:
eventIneventTypeeventName
fieldfieldTypefieldNameinitialValue
eventOuteventTypeeventName
}
directOutput域可以通过设定真或假来说明程序脚本的
输出是否受限制。
MustEvaluate域可以通过设定真或假来指定程序脚本是
如何进行求值的。
Field、eventIn和eventOut等分别定义了url域值显示的
在Script节点和程序脚本之间的接口。
url域值指定了一个被按照优先级区分的URL列表,它
是按优先级从高到低的顺序排列的。当浏览器找到URL指定
的文件并将其打开后,文件中的程序脚本就会被读下并用来
定义Script节点的动作;也可以直接使用脚本语言在url
域中
·42·MicrocomputerApplicationsVol.18,No.1,2002 研究与设计 微型电脑应用 2002年第18卷第1期
①②唐明浩 东华大学信息学院 副教授 上海 200051凌 宇 东华大学信息学院 硕士研究生 上海 200051
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.写入Script节点将要执行的动作。
Script节点是外部世界与VRML世界之间交互信息的
中转站。任何要传送至Script节点的事件被封装好,并被送至
脚本。任何用Java程序写的结果都更新Script节点的字段。
随后,如果需要的话,Script节点将产生新的事件按照路径的
规定传送至下一个节点。这种机制如图1所示。
图1 Script节点工作机制
21从VRML的数据类型映射到Java类
所有VRML的数据类型都有一个相应的Java类,通过
这种映射一个到达Script节点的eventIn字段的事件引起Ja2
va程序的执行,Java程序可以修改Script节点的字段内容,
或者在VRML世界中添加、修改路由(Route)。
31访问VRML世界的Java方法
传入Script节点的事件会相应的传入Java平台的pro2
cessEvent()或者processEvents()(用于处理事件队列)方法
中,上述两种方法把eventIn事件当作Java平台的对象看待。
与此同时这两种方法可以通过调用getName()、getValue()
等方法返回eventIn对象的名称和类型等。VRML标准中,在
外部空间与VRML之间进行交互的过程中,用户还可以定义
如下一些方法:
initialize()方法 该方法在所有事件发生之前执行,它可
以进行一些预处理或初始化的工作。
shutdown()方法 该方法在相应的Script节点被删除或
者包含Script节点的VRML世界被卸载或被其它世界替换
时发生,在这个方法中可以进行一些收尾工作。
eventsProcessed()方法 该方法发生接受事件,以就是
说用户可以根据发生过一些事件之后VRML空间的状态来
决定是在已经受到一些事件之后,这种方法允许用户不必依
赖接受到的事件发生的顺序来否继续接受事件。
另外通过get()和set()方法用户可以访问Script节点中
的所有的字段。
上述这些方法是由VRML标准组织定义的,任何一个
VRML开发商都必须实现上述要求,目前比较成熟的VRML
浏览器都实现了上述内容,如CosmoPlayer、BlaxxonContact
等等。三、虚拟人体变形的VRML实现
11基准虚拟人体的建立
无论是希望通过Internet购买服装的用户还是服装设计
师,都希望能有一个三维虚拟人体以观察着装效果。为此我们
需要建立一个基准虚拟人体,然后根据用户的输入参数对基
准虚拟人体变形,构造符合用户人体的虚拟人体。
在VRML空间中,可以利用PointSet、IndexedLineSet、
IndexedFaceSet节点进行点线面造型,从理论上讲可以创造
出虚拟空间中任意的三维造型。在我们的研究课题中,我们使
用了IndexedFaceSet对人体进行造型。
IndexedFaceSet节点中比较常用的两个域分别是coord
和coordIndex。基中coord域提供了一个节点,这个节点列出
了构造面集中所有面的坐标;coordIndex域的值提供了一张
描述一个或多个面的周界的列表,该域中的每一个值都是整
型的索引,并且每个索引都指定了在coord域内的坐标列表
中的一个坐标。使用IndexeFaceSet节点造型就是通过描述点
的坐标来绘制多边形进而绘制整个形体。如果凭空想象来定
义coord域中的所有坐标的值,过于繁琐而且并不能取得很
好的效果,因此我们使用3DSMax进行人体建模,完成后再
把三维人体导成VRML文件,生成基准三维人体模型。
21虚拟人体变形的初始化
通过上文所述建立的虚拟人体是由相互之间具有层次结
构的不同节点构成的,如躯干、臂部、右腿上部、右臂上部等
等,本文以右臂上部为例阐述变形的方法。
首先通过getNode()方法获得右臂上部(right-upper-
arm)的IndexedFaceSet的coord域的内容,然后确定该节点
垂直方向上的坐标范围,设定切片数目、切片的作用范围、切
片的垂直方向坐标以及采样点数目。
31虚拟人体变形
首先用垂直于Y轴的截面对right-upper-arm节点切
割,也就是三角形面组与垂直于Y轴的截面作相交运算。对
于每一次切割,都得到一个与Y轴垂直的封闭多边形S。然后
求多边形S的重心,将其作为相应切片的中心,再从该中心辐
射出等角度间隔的射线(射线数目等于采样点数目),将射线
与多边形的交点作为采样点。然后分别求位于切片作用范围
的且与采样点最近的点,将其作为控制点。这样right-upper
-arm节点就是由一组三维空间点阵m3n做成,其中m为
切片数目,n为控制点数目。经过上述处理,我们就可以对
right-upper-arm节点轮廓进行分类模拟,从而实行根据用
户输入进行人体重建。
41实验
本文是在PentiumII433机器上,Windows98环境下,使
用Java和VRML实现的,以男性青年模型的右上臂为例。变
形前后的人体模型见下图2,图3
。
·52·MicrocomputerApplicationsVol.18,No.1,2002 研究与设计 微型电脑应用 2002年第18卷第1期
© 1995-2005 Tsinghua Tongfang Optical Disc Co., Ltd. All rights reserved.