-
由于发电厂建造成本昂贵、设备复杂,使用传统的二维平面地图不能很好地展现厂区整个场景,简单的三维动画也只能被动观察,无法很好地满足厂区规划展示、人员培训教学的需求。而虚拟现实技术能逼真地模拟现实世界,使漫游者具有身临其境感,不仅解决了二维地图抽象不直观和三维动画无法互动的问题,更重要的是它有很强的沉浸感和交互性[1]。利用虚拟现实技术构建虚拟漫游系统,以最自然的方式对虚拟世界进行体验和交互,可以在发电厂区前期规划展示和后期人员教学培训中取得良好的效果。本文通过研究虚拟现实技术在发电厂虚拟场景构建中的应用,将现实世界的发电厂厂房、设备及管线在计算机中虚拟化,并通过虚拟人物角色的第一人称视角自由漫游三维场景[2],利用3ds Max建模工具和Virtools软件设计制作了发电厂区三维漫游的可视化系统。
HTML
-
虚拟漫游系统需要对真实的场景、设备进行三维建模,并在虚拟的三维场景中实现交互操作的功能[3]。下面分别对本文使用到的模型搭建和交互操作的设计工具进行介绍。
-
3ds Max是美国欧特克(Autodesk)公司开发的基于PC系统的三维动画渲染和制作软件。其功能强大,被广泛地应用于电视、电影、游戏、广告创意设计等各个领域。利用3ds Max对图像作整体设计,能得到良好的立体感和动画感,它可以建模、渲染,提供形象逼真的可视化结果,具有模型美观逼真、操作简单、易于改变观察视角等诸多优势,能很好的表达设计者的意图[4]。利用3ds Max可以完成对发电厂区中建筑物、设备、树木等环境场景的精细建模,也可完成对用于第一视角漫游的虚拟人物的逼真建模。
-
Virtools是法国达索公司(Dassault Systemes)开发的一款虚拟现实软件。它在多个领域被广泛应用,如网际网络、多媒体、建筑设计、交互式电视和教育训练等。Virtools本身不带有三维建模功能,但可以与多种三维建模软件配合使用,如3ds Max、Maya等[5]。Virtools是一套具备丰富互动行为模块的实时3D环境虚拟实境编辑软件,可利用内置的行为模块快速制作出许多不同用途的3D产品。通过载入特定格式的模型文件,再对脚本文件进行修改,可以制作出复杂的人机交互的三维场景[6]。
1.1 建模工具3ds Max
1.2 三维开发工具Virtools
-
系统设计与实现流程如图1所示。首先利用3ds Max建模软件实现虚拟场景的三维仿真及设备模型的建立,亦即将发电厂区的建筑、设备场景在计算机中进行重建。有些常用的标准设备的模型可以从本地或网络上的模型库里选取;特有的建筑、设备模型,可使用材质编辑器设置材质、编辑颜色,对于材质复杂的部分可采用贴图的方式。
然后,将编辑过材质的三维模型导入到Virtools中进行交互,利用Virtools进行角色的动作设计、按键编辑、碰撞检测、设计导航地图,实现各种期望的功能[7]。
最后,将制作好的虚拟漫游系统以Web网页形式进行发布。网页可以在本地打开,也可以用于基于B/S模式的网络环境。虚拟场景文件储存在服务器端,客户端需要安装通用的浏览器(如Internet Explore ,Netscape等),用户使用浏览器进行Web浏览。
-
使用3ds Max制作三维实体模型,修改相关的纹理后,以NMO格式保存文件,然后在Virtools中导入所生成的NMO文件。导入到Virtools中的三维世界编辑区的3D元素可以加以观察、控制,以实现发电厂虚拟漫游的需要。
-
厂区模型的构建流程如图2所示。首先参考现有发电厂实体图,研究分区,做出纸质地图,接着利用CAD软件做出整体框架,如俯视图等,根据其二维地图的分区进行设备的建造,将CAD做出的底面结构图导入3ds Max。使用3ds Max软件建立基本模型,对部分建筑、设备和树木进行纹理贴图,增强其逼真效果。
发电厂区的设备主要包括发电机组、变压器、管道线路、隔离开关等,使用精确的几何形体可以创建逼真的物理模型。对于重要物体,采用材质贴图,通过Photoshop对采集的图片进行处理,获得贴图素材,使用材质编辑器进行渲染,以获得真实的效果;对于次要物体,比如树木,可以用纹理贴图代替复杂的几何图形,以提高场景的实时渲染速度[8]。
-
在虚拟场景中漫游,需要一个拥有第一视角的虚拟人物角色。首先使用3ds Max的多边形建模技术建立一个人体模型,然后使用蒙皮技术建立骨骼系统,为人物贴图,最后制作行走、转向、奔跑等动作,保存相关文件。这个虚拟人物角色相当于用户本身,用户通过虚拟角色的视角对整个场景进行浏览观察。
-
一般情况下,初步建立出来的模型往往存在比例不协调、数据量大、实时显示效能低等问题,这就需要对模型进行优化。
在建模时需要注意协调比例,使用多细节层次方法表达复杂的结构模型,即为每个物体建立多个相似的模型,根据物体在屏幕上所占区域大小及用户视点等因素,为各物体选择不同的细节层次模型,从而减少需要显示的多边形数目,适合较为复杂的场景[9]。在三维模型初步建成后,把不会在视野中出现的多边形去掉,调整贴图模式、减少灯光使用。对模型进行适当的优化,以提高系统运行时的速度和流畅性。
-
3ds Max安装MaxExporter插件后,可以将建立好的厂区、人物模型以NMO格式导出。由于Virtools软件提供了对NMO文件格式的导入功能,所以可以方便地载入相关模型。设置场景中的建筑、设备模型的初始值,调整适当的光线[10],可以得到虚拟发电厂的初步效果,如图3所示。
-
用户与虚拟场景系统的交互流程如图4所示。用户主要通过键盘进行操作,实现视角切换、位置移动的功能。系统对键盘操作进行响应,计算出物体在场景中的坐标,根据实时的三维坐标刷新导航小地图,更新导航地图中红色标记点的位置并重新刷新三维场景。如果虚拟人物与建筑物距离较近,则显示建筑物名称等相关信息。
-
在虚拟场景中导入3ds Max已经制作好的虚拟人物,让其根据键盘操作实现在场景中的自由走动。通过配置修改Virtools中的角色脚本可以实现人物在虚拟场景中的行走、转向和奔跑等动作。制作步骤如图5所示。
首先为虚拟人物角色创建脚本,然后在角色脚本中添加不限量动作控制器(Unlimited Controller),在不限量动作控制器中设计了慢走、奔跑、向左转和向右转四个动作,最后在键盘映射器(KeyBoard Mapper)中设计交互按键以实现角色与系统的互动。键盘映射器可以把键盘上任意键按需求随意设置用以控制角色的活动方法。其中,左向键盘表示向左转,右向键盘表示向右转,这样可以实现角色的视角变换;前向键盘表示慢走,后向键盘表示奔跑,这样可以实现角色的位置变换。键盘控制的示意图见下图,通过四个方向键的操作可以实现虚拟人物在场景中的自由漫游的功能。四个方向的按键操作示意见图6。
-
虚拟角色在虚拟场景中漫游时,需要考虑与建筑物的碰撞检测及与地形的碰撞检测。
Virtools提供了基于球形包围盒检测法的碰撞检测、基于AABB检测法的碰撞检测和基于网格(Grid)等方法[11-17]。本系统采用基于AABB检测法的碰撞检测方法。基于AABB检测法即基于标轴的轴向包围盒检测法。一般考虑一个由8个顶点、12个边和6个面定义的AABB,因此需要计算三种情况下的碰撞:AABB的顶点与场景几何结构的碰撞;AABB的面与场景几何结构顶点的碰撞;AABB的边与场景中每条边的碰撞。在每次相交检测中,通过选取降低计算量。针对第一种碰撞,可以丢弃那些法向量与运动方向点积为负的点;针对第二种碰撞,可以丢弃那些法向量与运动方向的点积为正的面上的点;针对第三种碰撞,可以丢弃那些法向量与运动方向的点积为负的AABB的边,同时丢弃那些法向量与运动方向点积为正的面的边。为避免穿墙而过,在角色脚本中为建筑物实体添加防止碰撞部分(Prevent Collision),将其属性几何精度(Geometry Precision)设置为包围盒(Bounding Box),即对障碍物的三维对象统一采用六面体的包围盒,在碰撞管理器中设置属性为固定的障碍物属性(Obstacles)。
为避免角色陷入地面或漂浮在空中,需对角色添加保持在地面上的行为模块(Enhangce Character Keep On Floor),设置相应的参数。开启地面的主体部分设置窗口,在地面管理器项目里设置地面(Floor)属性,并且勾选保持在地面边界属性,这样可保证角色在规定范围的地面上行走。
-
虚拟场景的漫游视觉效果主要依靠摄像机完成。摄像机跟随方式分为第一人称、第三人称和环绕摄影,用户只需点击不同的按键,即可改变虚拟场景中摄影机的方向和位置,从而使角色在虚拟场景中产生平视、俯视和环视三种不同的效果。尽管沉浸感很强,但缺乏对空间位置整体的把握,因此需要设计二维的导航小地图,用于定位角色在平面图上的位置。
在界面的左上角设计二维的导航小地图,根据虚拟角色当前的行径,将其定位在导航地图中。导航地图中角色的位置点取决于角色所在的坐标点,然后使其在小地图的相对位置上移动。用户的位置在导航地图中用红色的点标记,通过观察在二维导航地图的红色标记的位置,用户便可得到虚拟角色在三维场景中的方位。
-
将整个虚拟发电厂对应的VMO文件和HTML文件导出。任何安装了Virtools网页播放插件的通用网络浏览器均可打开HTML文件对发电厂区进行虚拟漫游。Web发布效果如图7所示:
Web网页形式的文件和本地EXE格式的可执行文件相比,可以更容易地挂载到通用的Web服务器上,便于在网络上传播,系统的可扩展性强。
3.1 模型构建
3.1.1 厂区模型
3.1.2 人物模型
3.1.3 模型优化
3.2 模型载入
3.3 交互设计
3.3.1 交互流程
3.3.2 按键设计
3.3.3 碰撞检测
3.3.4 导航小地图
3.4 产品的Web发布
-
本文利用3ds Max强大建模功能和Virtools便捷的用户交互技术,设计和实现了具有导航小地图的发电厂区虚拟漫游系统,使虚拟现实技术在工业领域得到了应用。其虚拟场景逼真,漫游功能齐全,通过动态的交互,使用户有身临其境的真实感。