APP下载

可定制的虚拟展厅

2014-10-14王全玉庄宁恺顾振强

计算机与现代化 2014年2期
关键词:展板脚本展厅

陈 龙,王全玉,庄宁恺,顾振强

(北京理工大学计算机学院,北京 100081)

0 引言

虚拟现实技术(Virtual Reality,VR),又称灵境技术,是一种可以创建和体验虚拟世界的计算机系统[1],具有多感知性、临场感、交互性[2]、自主性[3]。近年来,随着虚拟现实技术的不断成熟与普及[4],虚拟现实技术逐渐应用于信息多媒体展示方面[5]。基于虚拟现实技术的展示手段,通过创建和表现虚拟物体与虚拟空间[6],使信息的展示方式有了新的途径和形式,使信息更直观和高效地传递[7]。随着人们对这种展示技术的逐渐了解和关注,它的应用[8]与发展也愈加广泛和迅速。虚拟现实技术与展览馆的功能进行完美的结合,充分发挥虚拟展览馆的优势。传统的声、光、电展览已经很难吸引观众的兴趣[9],而利用虚拟现实技术把枯燥的数据变为可交互的3D模型[10]并辅以音频、视频,使展览馆进入公众可参与交互式的新时代,进而引发观众浓厚的兴趣,让用户体验“身临其境”的逼真性[11],突破空间、时间等其它限制[12]。陈柏生、张志阳、杜吉祥的《德化陶瓷虚拟展厅》[13]和杨红珍、沈佐锐等的《昆虫数字化博物馆的建设》[14]等虚拟展馆文章,都是将虚拟现实技术与展厅相结合的案列。然而,目前虚拟展厅的改动困难,可重用性、通用性差等缺点限制了虚拟展厅的广泛应用。将展厅设计为用户可定制,使展厅的可重用性得到充分体现,就显得非常必要。本文提出一种新的设计思路,使用户可以交互地设定展厅、展品和观展方式,可以将符合系统格式要求的展品加载到系统中,并交互地设定组件的文字说明信息。根据用户的需求来量身定制符合用户要求的展厅,而不需要变动程序。

1 系统需求分析

虚拟展厅主要包含:展厅、展板、展台、观展方式等元素。用户可以配置展厅模型和展厅的各项运行参数,展品及其说明信息,展板、展台的数目及其位置、旋转度、内容,导览元素及其他细节配置例如展板边框等。系统生成的展厅具有自主漫游、虚拟导览、自动展览、多媒体支持等功能,所以要求系统具有以下功能。

(1)展厅配置。

用户根据自己的需求来配置展厅。可配置的内容包括展厅、展台和展板的数目及样式、过场动画和配音以及摄像机移动速度等展厅运行参数。展板通过鼠标点击获取鼠标射线与展厅的交点作为展板位置,用户可以手动调整展板的位置和朝向。展品由用户指定位置,然后根据重力模型自动下降,放置在展厅中。

(2)路线规划。

由于生成的展厅具有自动展览功能,所以需要事先按照不同的时间长度、层次级别、内容、主题设定固定的参观路线、相机移动路径。系统采用可视图法来解决路线规划问题。

(3)多媒体支持。

控制生成展厅中的多媒体资料,如展板的说明信息、展品的语音旁白以及一些视频解说。

(4)导览配置。

用户配置虚拟展厅的指南针、地图及具体的路标、指示牌等,引导观众对自己感兴趣的景点进行参观。

(5)展品载入。

用户根据自己的需求,将要展览的展品加载到系统中,并可以为之设定说明信息,说明信息的格式包括图片、声音和文字。

(6)往期布展的保存和载入。

历史布展保存在XML文件中,文件中包含上一次布展配置的所有信息,包括展厅、展品、参展方式等信息。文件载入后仍可以提供展览。

2 系统结构设计

图1为整个系统的模块结构图,从底层、中间层、高层3个层次对系统进行模块划分。底层主要是驱动层,中间层主要是逻辑控制层,高层主要是应用管理层。

图1 系统模块结构

2.1 底层

(1)输入设备管理模块。

对程序内部提供统一的输入设备映射,以及利用插件控制输入设备。

(2)物理引擎效果管理模块。

展板详细展示时,对胶片的弹射、摩擦力的管理,以及物体碰撞管理。

(3)环境物体管理模块。

展厅中模型的读取和渲染,如展厅模型,展板、展台模型,以及其它装饰性模型,如展板边框模型、展台模型、详细内容展示的胶片模型等。

(4)声音播放管理模块。

根据实际操作的对象不同,以及对象状态的不同,可以向声音引擎提出合理的需求以保证声音的正常播放。比如展品的说明、旁白等。

(5)模型组合管理模块。

负责组合需要的场景,将装饰性的物品和带有交互信息操作的物体如展品等组合在一起,成为一个完整的作业场景。这个场景的组合可以被保存以及读取。

2.2 中层

(1)作业逻辑管理模块。

组织维护作业逻辑事件流,依照事件逐一安排作业逻辑,如自动展览中,相机自动在展厅中按规划路径导览。

(2)违规检测模块。

这里主要判断操作的可行性,比如行走超出场景范围、没有按制定路线漫游等。

(3)界面逻辑控制模块。

菜单、按钮等UI控件的管理,搭建程序的UI控制逻辑框架。

2.3 高层

(1)用户配置生成XML文件模块。

用户通过UI配置展厅的运行参数和展览内容,生成配置文件。配置文件决定整个应用程序的实际装载数据和操作流程。

(2)配置文件读取与解析模块。

对配置文件的读取和解析,以构成最终使用者实际需要的模拟效果。

3 系统流程与总体框架

3.1 系统流程

图2 系统流程图

采用CEGUI制作界面,使用户方便地进行展厅配置和展品加载,生成配置文件。配置文件的内容包括:展厅模型,展厅运行参数(如相机移动速度、是否全屏、是否为第一人称视角等),展台数目、位置、内容以及点击触发的脚本函数列表名称,详细展示胶片的内部视图大小、内容、速度以及点击触发的函数脚本列表名称、小地图工具参数,图片按钮大小、内容和事件响应,脚本列表中脚本内容(与程序中函数名称相呼应),展品内容和说明信息、相机包围盒参数,相机节点序列等。调用Delta3D API库函数,载入底层Delta3D引擎,虚拟场景管理引擎,交互控制模块,音频、视频处理模块。通过读取配置文件加载展厅参数和展品,管理碰撞检测和相机漫游路径,等待用户触发事件。系统中鼠标拾取方法采用射线拾取法。系统流程图如图2所示。

3.2 系统框架

通过上面的分析,给出系统总体框架图如图3所示。系统总共可分为3部分:展厅参数配置、外部模型导入编辑和展厅运行。展厅参数配置和外部模型导入编辑的接口为XML资源文件,外部模型导入编辑与展厅运行的接口为脚本事件流。

图3 系统总体框架图

4 系统实现的关键技术

4.1 事件队列触发和执行

系统中用到的事件触发包括2种:脚本回调和UI触发。2种触发的原理相同,下面仅以脚本回调做说明。图4为脚本函数逻辑与调用示意图。

图4 脚本函数逻辑与执行示意图

脚本单元由事件函数和该函数执行完后的睡眠时间两部分组成。由脚本单元组成脚本列表,一个脚本列表为一次完整的作业调度。脚本列表中的内容包括相机的路径漫游,及展品的详细展示等脚本单元,均在XML文件中根据用户的配置由程序生成。通过DataManager的单例读取XML配置文件将所有的脚本列表加载到列表池中,在程序中可以方便地通过脚本列表的名称来控制该脚本列表的执行和停止,进行调度。

4.2 射线拾取法目标选取

因为用户可以调整展板和展品位置,以及选取展板和展品进行详细观察,所以要进行三维目标选取。系统中采用射线拾取法来进行目标选取。

(1)得到鼠标点击处的归一化的设备坐标Ds(xLoc,yLOc),转换为窗口坐标 Ps(Sx,Sy)。

float Sx=sceneView->getViewport()->width()*(1.0f+xLoc)*0.5f;

float Sy=sceneView-> getViewport()-> height()*(1.0f+yLoc)*0.5f;

其中Ds(xLoc,yLoc)为鼠标的归一化设备坐标,Ps(Sx,Sy)为屏幕坐标。

(2)由 Ps(Sx,Sy,Zdep)构造由2 点 Znear和 Zfar组成的射线,其中Znear和Zfar为由视点和鼠标点击点组成的射线与视椎体的前后2个截面的焦点。Zdep为Ps点在屏幕中对应像素的深度值,Znear对应的深度值为0,Zfar对应的深度值为1。

图5 射线拾取图元

设世界坐标点为 Pw(Wx,Wy,Wz),对应的屏幕坐标点为 Ps(Sx,Sy,Zdep),视图矩阵为 VM,投影矩阵为PM,视口变换矩阵为WM。有如下推导公式:

由式(1)可得:

由式(2)可得 Znear对应点坐标(Znx,Zny,Znz)的值为:

(Znx,Zny,Znz)=(Sx,Sy,0)*(VM*PM*WM)-1

Zfar对应点坐标(Zfx,Zfy,Zfz)的值为:

(Zfx,Zfy,Zfz)=(Sx,Sy,1)*(VM*PM*WM)-1

(3)由Znear和Zfar两点确定射线与视椎体中的图元相交,获取相交图元信息,放入存储数组,从而达到图元拾取的目的,如图5所示。

4.3 改进的可视图法路径规划

系统中应用了摄像机自动导航技术,故不可避免地要讨论三维场景中的路径规划问题。目前常用的方法有拓扑法、自由空间法、栅格法和可视图法,系统中采用改进的可视图法来解决路径规划问题。可视图法视起始点为一点,将起始点、目标点和多边形障碍物的各顶点进行组合连接,并保证这些直线均不与障碍物相交,这就形成了一张图,称为可视图。由于任意两直线的顶点都是可见的,从起点沿着这些直线到达目标点的所有路径均是运动物体的无碰撞路径。搜索最优路径的问题就转化为从起点到目标点经过这些可视直线的最短距离问题。运用优化算法,可删除一些不必要的连线以简化可视图,缩短搜索时间,求得最短路径。可视图法在本系统中的改进和应用体现如下。

(1)三维场景二维化。

系统中坐标系为右手坐标系,z轴竖直向上,x轴水平向右,y轴垂直指向屏幕里侧。在摄像机漫游的过程中,忽略整个场景的z坐标系,即忽略向上高度,将场景投影于二维平面xoy上。

(2)建立三维障碍物膨胀模型。

将xoy平面分割成方形小单元,借用栅格法的思想,单元内若全部包含障碍物,称为障碍物栅格;若不包含障碍物,称为自由栅格;若部分包含障碍则称为混合栅格。混合栅格归并为障碍物栅格,不予考虑。将每个障碍物都映射到栅格中,如图6所示。障碍物O1、O2膨胀模型为多边形P1、P2。

图6 障碍物膨胀模型

(3)将起始点、目标点和多边形障碍物的各顶点进行组合连接。

这些直线均不与障碍物相交,形成了可视图。把问题转化为求图中两点的最短路径问题,可以应用Dijkstra算法,也可以应用蚁群算法或遗传算法进行优化,找到最短路径。

应用改进的可视图法可以很好地解决摄像机的自动导航功能,让参观展厅的人员能够在最短的时间内参观完展厅,展馆过程相机移动平滑、稳定。

系统加载展厅模型后,用户通过UI和键盘操控配置展板、展台位置和内容以及展厅运行参数,如图7所示。

图7 路径规划

根据展品位置,在展品前一段距离等高处确定为目的摄像机位置,摄像机观察点为展品位置,并保存到XML文件中。根据可视图法将相机位置节点保存到相机路径列表中,在进行自动展览时,相机将按照该指定路径漫游。

图8 展板被拾取后的效果

5 系统运行

如图8所示为展板在展厅中被鼠标点击拾取的实际效果,用户点击展板后可根据按钮提示进行选择,观看哪部分的信息,可以点击详细内容查看如图11所示的详细展示胶片,详细展示胶片的内容包括声音、视频以及图片等说明信息。图9为展厅整体效果,用户可以通过鼠标和键盘操作以第一人称视角在展厅中漫游。图10为展台展品展示,展台位置和内容也是由用户来配置的,展台和展品附加了Delta3D的物理引擎。图11为详细展示效果(详细展示胶片,由用户配置详细内容)。

图9 展厅漫游

图10 展台与展品

图11 详细展示胶片

6 结束语

三维动态演示系统作为虚拟现实技术的一种重要的应用,在航天领域、市场营销、操作训练、医疗卫生、游戏、建筑工业及机械方面都有着广泛的应用。将虚拟现实作为用户可定制,使用户方便地定制自己需要的展厅,有着很大的应用价值。

[1]郑彦平,贺钧.虚拟现实技术的应用现状及发展[J].信息技术,2005(12):94-95,98.

[2]戴雯惠.虚拟现实技术的应用现状及发展[J].甘肃科技纵横,2006,35(6):17,174.

[3]余华鸿.虚拟现实技术的应用现状及发展[J].今日科苑,2009(4):182.

[4]汪祖媛,庄镇泉.虚拟现实技术的应用现状及发展[J].计算机与信息技术,1999(12):1-6.

[5]曾芬芳.虚拟现实技术[M].上海:上海交通大学出版社,1997:1-3.

[6]周炎勋.虚拟现实技术综述[J].计算机仿真,1996,13(1):2-7.

[7]苏建明,张续红,胡庆夕.展望虚拟现实技术[J].计算机仿真,2004,21(1):18-21.

[8]曾建超,俞志和.虚拟现实的技术及其应用[M].北京:清华大学出版社,1996.

[9]李海涛,李冀,贾常见,等.基于Web的三维虚拟展馆的设计与实现[J].长江大学学报:自科版,2013,10(19):40-42,46.

[10]罗志和,罗晓莹.用三维成像技术建好虚拟展厅[J].中国博物馆,2005(4):46-49.

[11]裴承慧,胡志勇,张秀芬,等.虚拟展馆漫游系统的实现[J].中原工学院学报,2007,18(4):69-71.

[12]朱珊虹,李彦.基于Cult3D的虚拟展馆漫游系统[J].新乡学院学报:自然科学版,2010,27(1):61-62.

[13]陈柏生,张志阳,杜吉祥.德化陶瓷虚拟展厅[J].信息化纵横,2009,28(6):69-71.

[14]杨红珍,沈佐锐,刘芳,等.昆虫数字化博物馆的建设[J].昆虫知识,2007,44(3):440-446.

猜你喜欢

展板脚本展厅
酒驾
不断改变,不断进步 参观KEF展厅后随笔
安奇奇与小cool 龙(第二回)
BESPOKE ROMANCE展厅
GAB展厅
NORHOR成都展厅
折腾的展板:“黄金位置”需预约
折腾的展板:“黄金位置”需预约
用旧展板制作牵引模型滑翔机
快乐假期