虚拟现实(Virtual Reality,简称VR,又译作灵境、幻真)是近年来出现的高新技术,也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。VR是一项综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。使用者进行位置移动时,电脑可以立即进行复杂的运算,将的3D世界影像传回产生临场感。该技术集成了计算机图形(CG)技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的发展成果,是一种由计算机技术辅助生成的高技术模拟系统。
1 开发平台概述
EONStudio是一种依据图形使用者接口,用来研发实时3D多媒体应用程序的工具,主要应用在电子商务/营销/数字学习/教育训练与建筑空间等领域。研发步骤包括输入3D对象,通常这些对象会先由3D绘图软件完成,如3DStudioMAX、Lightwave等等,或者CAD应用软件如ArchiCAD、ProENGINEER、AutoCAD等。输入模型后,就可以透过EON视觉图型化程序接口、Scripting或C++程序代码轻易让模型加上动作。,EON程序档案可以经由网络或封包展示,也可以与其它支持微软ActiveX组件的工具进行互动,(Powerpoint、Word、Macormedia、Authorware、Director、Shockwave、VisualBasic等等)。EON Studio基于的PC技术,是在OpenGL图形标准和微软的DirectX多媒体功能的基础上建立起来的。通过与OpenGL和DirectX的联系,使得利用EON所开发的应用程序在将来图形卡渲染能力加强的同时其渲染效果也会得到提高。EON强调资源(软件/硬件)的集成与延展、基于Web的交互式三维文件的安全维护、逼真度及后台数据库的结合。EON Studio技术和VRML技术在结构上十分相似,可以认为,EON Studio技术是VRML技术基础上的延伸和扩充。
EON Studio应用了面向对象技术,不仅使得对三维世界的描述变得清晰,还通过封装属性和建立模拟场景内部消息路由,很方便地实现虚拟实体的交互和行为动作等功能。虚拟场景的基本元素为节点(node),节点是EON Studio为多媒体和交互对象定义的一个对象集。节点[1]的属性包含在域(field)和事件(event)中。EON Studio的节点类型很丰富,具有超过100个预先设定好的功能节点,按功能可以分为以下几类:预设节点;代理节点;组装节点;基础节点;碰撞检测节点;可视化节点;传感器节点。
另外,EON Studio在以上基础上又增加了Script Nodes,可以利用Java script或VB script进行编程,处理一些复杂的仿真,扩展了EON Studio中虚拟世界的动态行为。利用EON Studio的功能节点,能方便地建立满足用户要求的三维虚拟场景,完成用户特定的交互过程。
2 三维模型建立与优化
2.1 三维模型建立
3D Studio Max,常简称为3ds Max或MAX,是Autodesk公司开发的基于PC系统的三维动画渲染和制作软件。其前身是基于DOS操作系统的3D Studio系列软件,版本是2011.在Windows NT出现以前,工业级的CG制作被SGI图形工作站所垄断。3D Studio Max + Windows NT组合的出现一下子降低了CG制作的门槛,开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,的武士等。
使用3DS MAX可以较方便地建立逼真度很高的三维模型。建立某化工场景模型的软件界面。
2.2 模型的优化
模型的优化对漫游场景的浏览很有帮助,前期如果不对场景的模型进行很好的优化,到了制作后期再对模型进行优化时就需要重新回到MAX里修改模型并进行重新烘焙后再导入到当前的EON场景里,这样就出现了重复工作的情况,大大降低了工作效率。因此,模型的优化需要在创建场景时就应受到足够的重视。
在3DS MAX中建模的准则基本上可以归纳为以下几点:
(1)制作简模
漫游场景中运行画面每一帧都是靠显卡和CPU实时计算出来的,如果面数太多,会导致运行速度急剧下降,甚至无法运行;还会导致文件容量增大,在网络上发布还会导致时间增加[2].
(2)三角面尽量为等边三角形
在调用模型或创建模型时,尽量保证模型的三角面为等边三角形,不要出现长条型。这是因为长条形的面不利于实时渲染,还会出现锯齿、纹理模糊等现象。
(3)合理分布模型的密度
模型的密度分布不合理对其后面的运行速度有影响,如果模型密度不均匀,会导致运行速度时快时慢,因此,应合理地分布场景模型的密度。
在3DS MAX中完成模型烘焙和优化后,输出的Eoz文件格式,可方便地导入EON Studio进行开发设计。
3 EON中场景的优化
初步完成化工场景的建模后,通过EON Viewer浏览的速度缓慢,甚至发生停顿现象,如果不能解决浏览速度问题,整个系统就没有什么意义了。为了解决这个问题,首先要对该问题的产生进行分析。三维场景的呈现是通过浏览器以默认视点为参照对场景描述文件的解释而完成的,每当用户拖动鼠标或按下箭头键在场景中走动或旋转时,视点就会发生变化。在真实世界中,人向前行,对面的事物会越来越近,为了模仿这种效果,每当视点发生变化,浏览器就会重新计算场景中各对象的新位置并重新进行渲染,使得人能走近某个对象。当场景中对象较多时,浏览器渲染的速度就跟不上视点变化的速度,从而产生停顿的现象。
由于化工厂场景巨大、管线繁多、工艺流程复杂等问题,对三维场景的显示与实现带来一定的困难。笔者曾试着采用贴图的方法,即在一个方体上贴上相应的纹理图来表示装置,这种方法实现起来很简单,浏览器解释速度较快,但的缺点是构建的对象缺乏三维立体感和真实感,因此贴图的方法不适合化工场景。通过对三维场景实时绘制技术的分析与研究,提出如下优化方式。
3.1 大量使用重用机制
不仅一个装置内部的对象可以重用,流程相同的装置之间也可采用重用机制。对于两个不同的构建模型,有些泵和阀门是相同的,那么对相同的部分利用DEF与UES重用机制就可以极大地简化描述文件,重要的是能够减轻浏览器的负担,从而提高渲染速度。重用机制的使用有个前提,即只能在一个描述文件内部使用[3].因此,需要进行代码重用的2个或多个对象,它们的描述应放在同一个节点中。
3.2 利用EON统计值改善模拟品质
复杂三维场景的实时绘制要求包括:场景环境中的运动体的位置、姿态的实时计算与动态绘制;用户视点改变时,画面的刷新必须达到人眼觉察不到闪烁,即相当光滑的程度,通常为20~30帧/s,至少不能少于10帧/s;同时场景的环境也要求随着人的活动及时产生相应的画面,图形生成必须能立即做出反应并产生相应的环境和场景。
可以利用模拟(Simulation)菜单中显示模拟程式统计值(Show Simulation Statistics)选项,或是点选工具列中显示模拟程式统计值的按钮,启动模拟统计值的显示[4].HZ:每秒框架数目。这是一个利用数个框架计算出来的平均速率,较小的值表示框架产生较慢;Frm:准备框架所需的时间(s)。这个值可用来确认哪个框架耗费较多的时间;App:更新传呼所需的时间(s);Eve:事件处理所耗费的时间(s)。Drw:绘图所耗费的时间(s),包含材质、像素填充及顶点转换;#tri:绘制的三角形实际的数目(注意这个值会随视角的改变而改变)。
随着统计值的变化,可实时判定具体场景的浏览速度,同时利用EON中Mesh节点下的Polygon Reduction level子节点进行Mesh网格的简化,以达到适合的浏览效果。
3.3 合理定义显示比例
大部分的显卡使用材质的影像记忆体及框架缓冲来做动作。框架缓冲可分为前缓冲、后缓冲及Z缓冲,在屏幕上根据所看到影像的不同而不同。如果在视窗中执行EON模拟程式,前缓冲会涵盖整体事件屏幕,但不影响模拟视窗的大小,在记忆体的数量上,前缓冲由Windows屏幕设定来决定。而后缓冲及Z缓冲的大小则依据目前EON模拟视窗的大小来设定。
在屏幕上绘制像素是需要时间的,当相对于视窗大小的框架速率很大时,像素填充会设定模拟速度的极限。要降低像素填充所花费的时间,可使用较小的模拟视窗,点选大小/方位比例(Size/Aspect Ratio)标签,并输入模拟视窗大小,降低透支(Overdraw)的程度(例如空间内部结构的模拟),合理地将场景进行分割并保存为独立的Edz文件,利用改变模拟(Change Simulation)功能节点来进行切换,也可利用在框架功能节点的特性视窗中选取隐藏(Hidden)选项,让漫游浏览中尚未看到的几何物件暂时不显示。
3.4 利用场景切换技术实现同一对象不同模型的自动切换
有针对性地为场景中面数复杂的装置建立多个不同的模型,使场景在显示的时候以不同模型多方面显示。简单的是建立简单和细化两种模型,当视点距对象较远时采用简单模型,视点接近时自动切换为该对象的细化模型。采用这种办法,需对某对象建立多个模型,并利用Switch、LOD节点或触发器实现模型的切换[5].在切换过程中,要对切换时间进行设置,使切换时间小于人眼眨动频率,画面看起来更加逼真。这种方法既能够减小面数、提高演示速度,又能够使人感觉不到明显的切换痕迹,是虚拟现实领域应该继续沿用并加以延伸的方法。
3.5 漫游系统优化测试
虚拟现实漫游技术的一大困难在于漫游仿真速度与运行速度之间的矛盾。在建立仿真程度模型的同时又要保证速度的运行是要重点协调的问题。本系统运行的硬件配置为:处理器Pentiu(R)4 3.0 GHz,内存1 GB,显卡使用NVIDIA Geforce 7300GT(256 MB),在台式机上进行了优化测试。
利用EON Studio建立的虚拟化工场景,以某化工企业的生产场景为模型,实现了该虚拟场景的漫游。使用者可以对场景进行全方位浏览,也可对局部进行细致的观察;并配合适当的讲解,终对该生产过程产生一个清晰、深刻的认识。通过对模型部分优化与在EON Studio中进行的必要优化,符合实时交互频率15帧/s以上的漫游要求,加快了三维场景的实时绘制速度,提供了良好的漫游浏览速度。该优化方法具有一定的普遍性,对后续漫游信息系统的完善和二次开发提供了必要的保证。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。