基于VIRTOOLS的虚拟校园开发研究

2017-04-14 09:47李一晴王庆翠
中国教育信息化·高教职教 2017年2期
关键词:数字化校园虚拟现实

李一晴++王庆翠

摘 要:借助虚拟校园可以方便、直观地了解学校相关信息,因此,虚拟校园是数字化校园建设的重要组成部分。文章介绍了虚拟校园开发所涉及的三维模型素材制作的一般方法和技巧,给出了在virtools平台下交互漫游控制和交互式信息展示的逻辑实现方法。采用文章介绍的方法开发的某中学完整的虚拟校园系统画面逼真,可通过网络流畅运行。

关键词:虚拟校园;虚拟现实;数字化校园;virtools

中图分类号:G40-057 文献标志码:A 文章编号:1673-8454(2017)03-0094-03

一、概述

虚拟校园是借助虚拟现实技术,通过三维图形真实地再现校园的建筑规划、部门分布等情况。三维虚拟校园最大的特点是具有较好的沉浸性、交互性和较强的视觉真实感。[1]借助虚拟校园可以足不出户地实现校园内自由漫游,全面真实地了解校园的教学、生活环境以及软硬件条件。在图形显示的基础上可以配合语音和文本介绍,用户通过人机交互可以很方便直观地获取校园相关信息。虚拟校园已成为数字化校园建设的一个重要组成部分。在近年来,随着计算机技术的发展和在线学习的兴起,又赋予了虚拟校园新的内涵。虚拟校园的功能不仅仅在于校园浏览和信息导航功能,还可以与在线教育相融合,通过模拟真实课堂塑造虚拟学习空间,能有效地促进在线学习效果。[2][3]

虚拟校园最核心的部分是校园漫游和交互式信息查询功能。校园漫游使用户能通过简单的交互操作在校园里任意行走;而交互式信息查询功能使用户能够有选择地查询相关信息,如用户利用鼠标选择物体对象,系统则通过语音、文本或视频对其进行介绍。可用于开发虚拟校园的虚拟现实工具有很多,如Virtools、Unity3D、Quest3D、VRP等。此外,一些三维游戏引擎也可以用来制作虚拟校园,我们利用Virtools开发了山东省实验中学西校区的虚拟校园。本文将基于Virtools平臺,介绍虚拟校园制作中的场景构建、漫游控制以及交互式信息查询功能的一般实现方法。

二、Virtools简介

Virtools是法国达索(Dassault system)公司开发的一款虚拟现实和游戏引擎,也是最早的应用最广泛的虚拟现实开发平台。目前已被广泛应用到游戏开发、工业仿真、场景展示和教育训练等领域。上海的网上世博会就是达索中标并开发的。Virtools 有如下几个特点:

(1)采用可视化编程。将完成某个功能的程序段封装成独立的功能模块(Building Block,简称BB),每一个BB用一个方形图标来表示。在编辑作品时,只需要根据程序的执行逻辑将不同的功能模块连接起来即可。这种可视化的编程方法极大地降低了对程序设计能力的要求,一般的美工也可以学会。

(2)功能强大齐全。Virtools 本身给开发者提供了用户可直接使用的功能强大的程序模块,包括运动控制、物理模拟、角色控制、实时渲染以及人工智能等。同时支持各类虚拟现实硬件设备和各种形式的立体显示。

(3)可扩展性。除了采用系统提供的BB之外,开发者可利用Virtools提供的脚本语言编程生成新的BB,也可以利用其提供的SDK编程实现更复杂的BB程序、管理程序、播放程序和渲染程序等。给开发者提供极大的灵活性。

Virtools是一个完整的虚拟现实整合开发平台,但并不包含三维建模功能。三维模型素材需要借助其他三维软件来构建。相关的Virtools使用说明请参阅其使用手册。[4]虚拟校园开发使用的程序模块并不多,主要使用了交互控制、碰撞检测、声音播放和文本显示等BB。 本文将从场景制作、漫游功能的实现、信息查询和显示等方面介绍虚拟校园的制作方法。

三、场景构建

Virtools中使用的模型、纹理等素材采用专门的文件编码格式,利用其他软件制作的素材需要统一转换为Virtools 的专有文件格式,文件名为*.NMO。Virtools为3Dsmax、Maya等三维软件提供了文件导出插件。三维素材的制作可利用这些三维软件进行建模,然后将三维模型导出为NMO格式的文件。NMO文件可以包括三维模型数据、材质数据、动画数据、纹理、角色骨骼等。我们以3DsMax为例来介绍Virtools三维场景的构建方法。

1.纹理烘焙与顶点着色

虚拟校园最基本的一个要求是能够实时交互,一般渲染速度要达到30FPS以上。加速渲染最直接的办法是减少场景中的多边形数目[5]和光照计算[6]。在多边形面数较少的情况下,模型的表面细节应尽量使用纹理来表现。3dsmax提供了纹理烘焙功能,采用纹理烘焙的作用主要有两个:一是可以将3dsmax模型上的多个纹理图片整合成一个,能减少纹理数目,便于项目的管理,同时减少渲染过程中的CPU负担;二是可以将灯光、阴影等效果渲染到纹理,然后利用烘焙后的纹理再对模型进行贴图,这样我们在Virtools里可以不使用灯光,只需要显示纹理也可以得到光照效果。在Virtools里的材质设置里,有几种纹理融合模式(Texture Blend),常用的融合模式是ModulateAlpha、copy和Decalalpha。copy和Decalalpha模式不需要光照就能直接显示纹理图案。因为我们在Virtools里不使用任何灯光,所以最后需要Texture Blend设置为copy或Decalalpha。

三维图形的渲染一般是通过模型顶点法向、光照法向和观察方向来计算出每个顶点的颜色值,然后通过插值计算出所有像素的颜色值。顶点着色可以直接指定每个顶点的颜色,从而避免顶点颜色的计算。在3Dsmax中的顶点属性栏目里可以直接指定顶点颜色。但这种方法需要事先预测出每个顶点的颜色,而且不能产生遮挡阴影的效果。在虚拟场景的构建中,顶点着色一般只用于光照效果比较简单的模型上(如建筑中的圆形柱子)。采用顶点着色的模型在导入到Virtools中后,必须将模型网格的光照模式设置为prelit模式,才能正常显示模型颜色。

总结起来,三维模型素材的制作过程如图1所示:

2.植物素材制作

校园中的花草、树木、草坪等物体形状非常复杂,很难采用标准的多边形模型来表示,即使能够采用多边形建模,数据量也会非常大,无法达到实时性的要求。对于这类复杂物体,利用图像替代模型是一个有效的方法。图像替代方法的基本原理是将树木或花草的照片直接显示在一个平面上,同时利用透明通道将树木之外的像素变成透明。

图像替代物可以是单个平面(称为布告板),也可以是两个垂直交叉的平面。布告板法是让图像平面的方向随着视点位置的改变而改变,使图像平面的法线始终指向视点。如图2a所示,当视点从位置1移动到位置2时,图像平面跟着旋转,使用户看到的图像始终是一个没有变形的图像,这样就避免了在一侧看到的树木只是一个平面的现象。但是当视点移动时,有时会注明显地注意到树木在旋转。十字交叉法使用两个互相垂直的平面同时显示一幅树木图像,如图2b所示,这种方法可以避免旋转,同时视点在任何位置都能看到完整的树木图像。十字交叉法能够较好地表示树木、花草,对于整体形状较规则而枝叶细小的灌木和草地,可以在规则的几何体上直接进行纹理贴图。

四、动画演示与交互式漫游

校园漫游要包括动画演示和交互漫游两个功能。动画演示中,采用一个主相机沿既定的路线移动,在移动路线中根据需要设置驻留点,在驻留点配合语音、文本或视频介绍学校的历史、文化和软硬件条件等。交互式漫游通过键盘来控制相机移动。因为相机运动中还要考虑碰撞检测和地板约束问题,而相机不能直接进行碰撞检测和地板约束,可以创建一个三维虚拟体(3D Frame)作为相机的父对象带动相机运动,并利用三维虚拟体参与碰撞检测和地板约束。

1.相机移动

在动画演示中,设置若干条相机移动路线,相邻两条路线在驻留点处相接。在Virtools中没有直接提供物体沿曲线运动的BB,可以利用Bezier Progression 和Posutuion On Curve两个BB來实现相机运动。在Bezier Progression里设置运动时间和输出值的变化曲线,将其输出参数Progression(输出值的百分比)传递给Position On Curve的输入参数Progression,Position On Curve利用该值来控制相机在曲线上的位置。图3示意了动画演示过程中相机沿曲线运动的BB逻辑图,图中Wave Player用于播放语音介绍。

交互式漫游中,以键盘或鼠标来控制相机移动,利用Key Event检测某个键盘是否按下,用Translate 和Rotate 来移动和旋转相机。图4是键盘控制相机运动的BB逻辑图,图中的Object Keep On Floor是用于地板约束的BB,Object Slider为碰撞检测。

2.导航图显示

在漫游过程中,导航图的作用是在校园的平面示意图上显示当前用户所在的位置。导航平面图和当前位置的指示箭头利用2D Frame来显示。位置箭头要随着相机的运动而移动,这需要得到当前相机在世界坐标系XY平面上的坐标,然后将该坐标变换到平面图的2D Frame内的坐标位置。变换方法是:

xp=,yp=

其中(xp,yp)是当前位置相对于平面图2D Frame的坐标,(minx,miny)是平面图表示的校园场景在三维空间中的最小的(x,y)坐标;width和height是校园场景在XY平面上的宽度和高度。上述计算除了可利用专门用于各种数学与逻辑运算的BB(如Calculator和Op)来完成,也可以利用Virtools提供的参数操作来实现。指示箭头的定位则利用Edit 2D Entity 来实现。

五、信息查询

当用户漫游于校园时,需要有选择地了解部分教学设施的相关信息,可以利用鼠标选择物体,系统会调出该物体的信息介绍。在Virtools中,交互式信息查询的实现过程是:首先根据用户鼠标点击选择对象,然后判断选择的对象是什么,最后显示对应选择物体的文本或语音介绍。

图中,2D Picking用于检测鼠标选择的物体,Test用于判断当前选择的物体是不是某个特定的物体,如果是,则利用Show来显示该物体的文本介绍,并利用Wave Player播放该物体的语音介绍;如果不是则继续判断是否为其他物体。由于Virtools不支持中文显示,在显示文本时,需要将文字制作成图片,然后作为纹理贴图到2D Frame,显示2D Frame即可显示文本。

六、总结

在我们开发的山东省实验中学西校区虚拟校园系统中,三维模型共有多边形面片39137个,纹理图像64M,声音与视频有43M。该系统在4M网络环境下和一般低端配置的笔记本电脑上能流畅运行,帧率均达到40FPS以上。

本文总结了虚拟校园核心模块的一般设计和制作方法。在不同的制作平台上,实现的方法和技巧也有所不同,本文基于Virtools和3D Max,从场景素材制作、动画展示、交互式漫游控制和信息查询等方面给出了虚拟校园的一般实现方法和制作技巧。希望对数字化校园设计者和开发者有所启发。

参考文献:

[1]胡小强,虚拟现实技术基础与应用[M]. 北京:北京邮电大学出版社,2009.2.

[2]韩庆年.国外高校3D虚拟校园设计与应用述评[J].中国教育信息化,2012(9):17-21.

[3]李峻峰.虚拟现实技术与虚拟校园的研究与实践——以潍坊学院虚拟校园建设为例[J].工程图学学报,2011(3): 62-68.

[4]Carthy C M and Callele D. 3DVIA Virtools User Guide[M]. Dassault system, 2006.

[5]乔振华.基于Virtools的虚拟校园漫游系统的研究和实现[D].广西师范大学,2014.

[6]吴元峰,李大锦.一个煤矿作业仿真系统的开发[J].系统仿真学报,2012(1):184-187.

[7]申小春,谢同祥,黄立冬.基于3DSMax&3DVRI的虚拟校园漫游系统的设计与实现[J].现代教育技术,2012(10):106-109.

(编辑:王天鹏)

猜你喜欢
数字化校园虚拟现实
论虚拟现实艺术的“沉浸”
REALITY BITES
数字化校园中统一移动平台的实践与探索
虚拟现实技术向科幻小说借灵感
基于防火墙和WAF安全设备的高校信息安全设计与应用
虚拟现实:另一个真实世界
浅谈虚拟现实