李永涛
摘要:随着计算机网络技术和虚拟现实技术的发展,网络虚拟实验也相应地产生并发展起来。该文以虚拟实验场景的建模设计为主题。首先给出了虚拟网络实验系统的3D建模总体设计;然后介绍了网络虚拟实验建模的实现;最后给出了网络虚拟实验的优化。虚拟化学实验场景的建模实现,为通用网络虚拟实验系统的研发提供了有意义的探索。
关键词:网络虚拟实验;虚拟场景;建模;X3D
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)07-1543-03
1 网络虚拟实验室与X3D技术
虚拟实验室最早在1989年,由美国弗吉尼亚大学(University Of Vinginia)的威廉·沃尔夫(William Wulf)教授提出,用来描述计算机网络化的虚拟实验环境。1995年,联合国教科文组织将虚拟实验室定义为:利用分散的信息和通信技术以创造及获取成果为目的,在科研与其他创造性活动中进行远距离合作和实验的一种电子协作组[1]。
X3D(Extensible 3D)是新一代网络三维交互式图形的软件标准。X3D被定义为可交互操作、可扩展、跨平台的网络三维标准。相对于VRML而言,X3D增加了计算器和插值驱动的连续动画、键盘输入、人性化动画和变形、多通道/多进程纹理贴图、多边形几何体、参数化几何体、2D矢量、平面图形等新特性[2]。
利用强大X3D技术构建虚拟实验平台,用户能在更加生动逼真的虚拟环境中进行化学实验,从而使得实验环境更加人性化、智能化。因此,采用X3D技术开发虚拟实验具有相当可行性的。
2 虚拟实验室建模的总体设计与实现方案
在虚拟实验的“3I”特性中,“沉浸感”是其中一个重要的特性。沉浸感的实现需要生成逼真的虚拟实验场景。虚拟实验场景的建立要求场景中各种实验设施、实验仪器、实验物品等都要和真实的实验环境一致。这不但要求在外形上与真实环境一致,而且要求它们在形态、光照、质感方面都十分逼真[3]。
虚拟实验系统的建模一般可分为两大类:一是实验室环境,包括室内室外建模,室内基础设施建模如实验桌子、书架等。二是虚拟实验器材,包括虚拟仪器和虚拟物品。
虚拟实验环境建模可以统一建立一次,基本保持不变,以统一风格。如室外天空、室内的墙壁、门窗、天花板等。虚拟仪器和物品可采用面向对象的建模方法,将其封装成一类一类的原型,方便实验的调用、装配和修改。
经过以上分析,虚拟实验室建模的设计方案如图1所示。
3 虚拟实验室建模的实现
3.1 虚拟实验室环境的设置
虚拟实验室环境绘制包括墙壁、天花板、门窗等。图2所示为虚拟实验室内场景的设计方案。
整个虚拟实验室室内的场景主要包括虚拟实验环境设计和室内的装饰设计。实验环境设计包括实验室室内空间、桌椅、门窗,实验台,用于播放实验操作视频的投影仪等。这些模型可以通过X3D的基本建模节点,综合运用变换节点Transform、组节点Group、内联节点Inline等实现造型。整个场景文件很小,非常有利于网络传输和浏览。
实验室室内空间建模可以直接采用X3D的三维造型节点。其制作方法可以先采用Box建立六个不同长、宽、高的长方体,构造出墙壁、天花板、地板六个面。然后利用外观节点Appearance进行外观设置。
实验室的其它场景如实验台,药品架、投影仪等的建模都可以采用以上的原理实现。
3.2 简单虚拟实验仪器、物品的建模实现
对于简单的仪器,可以利用X3D的基本造型节点如Box、Cylinder、Cone、IndexFaceSet、Extrusion实现。
下面以铁架台实验装置的实例来说明虚拟实验仪器、物品的建模实现过程。
利用几何建模的思想分析,铁架台由台体、铁环、铁夹三个部件构成。台体由底座子部件和铁杆子部件构成。
底座子部件和铁杆子部件,由X3D的Box盒子节点和Cylinder圆柱体节点建模实现。
铁架台实验装置中Extrusion中的铁环造型,由crossSection定义一个放样二维图形轮廓,其轮廓是一个圆。因此,crossSection的二维坐标点可以通过圆的参数方程计算出二维关键点,绘制出圆曲线。圆环几何轨迹也是一个圆,通过Extrusion中的spine定义一个封闭的圆轨迹,造型将沿着这条曲线被拉伸。
铁夹的建模方法和铁环类似,只需通过Extrusion中的spine定义一个未被完完封闭的圆轨迹。
3.3 复杂虚拟实验仪器的设计与实现
考虑到复杂实验仪器常常由多个部件组成这一事实,该文采用了层次化几何建模方法[4],将虚拟仪器的几何建模分为:对象层、结构层和属性层3个基本层次。通过对化学仪器的分析,虚拟化学仪器是由一个个独立的组件组成。其中组件还可以细分为子组件1,子组件2……。其基本设计可以用图3来表示。
为了将虚拟仪器对象实例化,可以采用X3D的原型机制。下面以圆底烧瓶原型为设计实例,介绍基于原型机制的虚拟仪器设计方法。
首先,在X3D程序中以ProtoDeclare声明一个新节点的名称。ProtoDeclare中包含ProtoInterface及ProtoBody。在ProtoInterface中列出该节点所有的字段,并注明字段的名称、数据类型、操作类型,在ProtoBody中定义出新节点的功能。以下为程序主要代码:
在原型代码中,引入三维坐标,颜色参数,实现对像的实例化。
4 虚拟实验室建模的优化
在创建复杂的X3D场景时,除了创建大量的模型外,还必须考虑X3D文件的长度和场景的渲染速度。下面是在构建虚拟实验室时采用的场景优化方法:
1)solid域值设置的优化
我们可以设置X3D建模节点圆柱体、圆锥体的side;面造型、挤出造型节点的solid域值设置为TRUE,X3D只渲染表面,不渲染内面,将用户不需要观察的面去掉。此时,并不影响用户对仪器的观察和交互操作,并且减少了渲染量,实现了浏览器的优化。
2)利用DEF、USE对节点进行重用
在场景中经常有部分节点有着相同或相近的特点,比如摆放不同实验仪器的实验台,它们的模型是相同的,仅有位置上的区别,我们可以对一个包括实验台群组节点命名,如
3)采用原型PROTO机制
原型除了减少代码重复外,还提供了内部属性的设置。原型可以用来创建新的节点,并且可以灵活地修改所定义的原型,然后导入到虚拟场景中,从而在虚拟实验建模中节省大量的时间和精力。通过定义原型,我们可以不必重复建立模型,只需定义其内部属性和在场景中引用,从而达到建模的优化。
4)利用Inline内联联节点
将复杂的大场景分成几个小的简单的场景,在用户需要观察时候内联到场景中。如虚拟实验室中有门、窗、投影仪等,将这些造型分别存放在不同X3D文件中,在构造场景时再内联需要的造型文件。
5 结束语
本文以X3D为核心技术,深入探讨了如何利用X3D技术构建虚拟实验场景。对室内场景的建模,虚拟实验设备建模,包括虚拟仪器和虚拟物品,做了深入的理论研究和实施规划,提出了采用X3D建模的具体实施方案,并给出了建模方案的优化方法。
参考文献:
[1] 周雪松,丰美丽,马幼捷,等.虚拟实验技术的研究现状及发展趋势[J].自动化仪表,2008,29(4):1-2.
[2] ISO/IEC 19775-1.2[EB/Ol].(2008)[2012-12-27].http://www.web3d.org/x3d/specifications/ISO-IEC-19775-1.2-X3D-AbstractSpecification/index.html.
[3] 徐凱宏,李会,岳听.网络教学中构建虚拟实验的设计[J].中国林业教育,2006 (1):60-62.
[4] 赵沁平.DVENET分布式虚拟现实应用系统运行平台与开发工具[M].北京:科学出版社,2005:227-230.