修春华 孙秀娟 车德福 高广亮
(1.东北大学资源与土木工程学院,辽宁 沈阳 110819;2.山东省地质测绘院,山东 济南 250003)
·数字矿山·
三维场景中虚拟漫游路径的优化设计方法
修春华1孙秀娟2车德福1高广亮1
(1.东北大学资源与土木工程学院,辽宁 沈阳 110819;2.山东省地质测绘院,山东 济南 250003)
场景漫游路径的优化设计是三维场景流畅性的关键。首先,根据OpenGL相机控制原理,定义了路径数据格式,包括路径点坐标等基本属性。然后基于三维模型的特点,提出了用路径点交互拾取、手动漫游和地下巷道中心线转换方法获取路径,并通过路径拼接、路径拟合和碰撞检测方法对获取的路径进行优化。最后实现了手动和自动2种方式控制漫游。实验结果表明,这种方法简化了路径的创建步骤,达到了理想的漫游效果。
漫游路径 三维模型 三维场景 优化设计
虚拟现实(virtual reality VR)技术是20世纪末发展起来的,它是一项集计算机、传感与测量、仿真技术于一体,利用计算机生成的一种虚拟环境,通过多种感觉,使用户身临其境,并能够与之发生交互作用[1]。虚拟漫游是虚拟现实技术的重要应用,它将真实的场景在屏幕上显示出来,实现了对三维景观的数字化和虚拟化。矿山企业具有生产系统复杂、设备设施多、生产作业环境恶劣等特点,自然灾害和生产事故的危险因素始终影响和制约着矿山的安全生产。作为数字矿山的一部分,对模型进行三维建模仿真并提供相应的虚拟漫游平台,对矿山的安全生产和现代化发展具有十分重要的意义[2-4]。
在增强交互功能,提高三维地理场景的逼真与精细程度的同时,漫游路径的设计成为了虚拟漫游最重要的内容。如何有效提高交互式三维地理场景中的漫游速度,给用户以高速、流畅的操作感受,成为了虚拟漫游技术发展中的关键问题之一。优化漫游路径是有效解决以上问题的一个突破口。本研究着重研究路径的数据格式及其在此基础上的获取方式和优化设计方法,实现上下自动和手动2种方式控制漫游。并通过具体应用,展示了不同场景的漫游效果。
漫游路径即三维漫游过程中所遵循的路线,是由用户指定的一系列采样点按照地形的起伏依次连接构成的控制曲线,为一系列三维空间坐标点的集合,可以把这些点称为漫游路径点,简称为路径点。在OpenGL中,漫游过程是对相机和视角不断移动和变化的过程,相机位置即是路径点所在空间位置,对视角的控制还需要另外一些参数,包括相机的旋转和俯仰角度。根据以上分析,本研究对路径点的数据格式定义如表1。
表1 路径点信息表
当前后2个路径点之间的距离大于视野步长时,沿着俯仰和旋转角度、距离视野步长之外的点即为视线的另一端。根据用户要求,灵活改变人高,使观察者的视野高度不断发生变化。当一条漫游路径在设计好后,可以保存在数据库中,为漫游路径的读取、优化、拼接等操作提供后台支持。
本研究中漫游路径除了可以直接从数据库中读取外,还有以下3种获取方式:
(1)交互拾取路径点(如图1)。以三维场景中的模型为参照物,通过三维空间交互技术,利用鼠标点选可以在屏幕上获取一系列三维空间点,连接这些点,形成1条空间曲线即为1条漫游路径。鼠标点选获取1个路径点的同时,可以为其添加旋转角、俯仰角和漫游速度属性。
图1 交互拾取路径点
(2)手动漫游生成。手动漫游即通过鼠标和键盘控制视点的行走,其轨迹即是1条路径。如果想要记录下此条路径,需要分别对漫游的开始和结束做标记,并根据用户需要对当前位置进行路径点采样。手动漫游的过程是一个没有规律的过程,特别是在空旷地带没参照物或者参照物距离较远的情况下,采样点很有可能会有重叠或者前后距离十分不均匀且生成的路径比较曲折,所以需要对手动生成的路径进行编辑和修改。手动漫游获取路径方便快捷,但是在盘旋重叠比较多的区域后期修改会比较繁琐。但就总体而言,在漫游路径较短、路况较为简单的情况下,手动漫游获取路径不失为最好的一种方法。
(3)地下巷道中心线转换。在进行地下巷道漫游时,因为地下巷道数量比较多且在地下,再用单纯的路径点拾取和手动漫游获取路径就会变得很繁琐和艰难。充分利用各地下巷道的中心线信息,且将其转换为路径成为一个较为简便的方法。通过空间三维交互,对单个地下巷道或多个地下巷道(必须相连)的选取,然后对选取的地下巷道进行漫游,大大节省了漫游路径的创建时间,同时增加了路径漫游的灵活性。通过最短路径搜索,还可以实现地下巷道网络中的点对点最近漫游。
在对路径进行编辑和修改时,应尽量遵循以下原则:①在直线漫游阶段,路径点应尽量稀疏,而在弯道处应尽量密集;②旋转角度值应尽可能等于当前路径点和下一个路径点所组成线段的方位角;③在弯道处,每个路径点的旋转角度值应均匀过渡(增加或者减少);④在上坡(上楼梯)或者下坡(下楼梯)时,俯仰角度值要相应地增加或者减少;⑤在弯道处或者某些重点展示区域,漫游速度可以适当放缓。采用路径点拾取获得整个漫游路径的方法,局限于三维模型参照物清晰且路径点能够在某一角度不被模型遮挡的情况,所以适用于室外空旷地带,比如广场、室外道路等场地。
在漫游路径实现的过程中,可能存在一些过渡不平滑,会产生突跳感觉的地方,特别是在弯道处。在室内或者地下巷道漫游时,手动操作往往会跑出墙外或者掉到地下,这严重影响了路径漫游的逼真和自然。这里从路径的自由拼接、路径的拟合和碰撞检测几个方面着手,对漫游路径的优化方法进行了研究。
(1)路径拼接。漫游路径的拼接技术可以快速地提高路径设计效率,包括路径的打断、连接、插入等操作,其基本原理是利用路径中路径点的索引对多条路径的路径点进行组合,并对交叉点或者连接点的旋转和俯仰角度进行重新计算。如图2所示,路径1和路径2经过打断和组合形成一条新路径3。
图2 路径组合1
针对盘旋路径,可以将第一层上的所有路径点直接复制到其他层,为每个路径点的高程值加上层高,然后组合起来就是一整条上下楼梯的路径,如图3所示。
图3 路径组合2
(2)路径拟合。当漫游过程中弯道较多,修改起来又比较麻烦时,采用二次B样条曲线对等值线进行光滑处理,使路径漫游更加平滑自然。B样条曲线定义为给定m+n+1个平面或空间顶点Pi(i=0,1,…,m+n),称n次参数曲线段
(1)
为第k段n次B样条曲线段,k=0,1,…,m;这些曲线段的全体称为n次B样条曲线,其顶点Pi(i=0,1,…,m+n)所组成的多边形称为B样条曲线的特征多边形。 其中,基函数Gi,n(t) 定义为
(2)
t∈[0,1],i=0,1,…,n,取n=2,得到二次B样条曲线的基函数如下:
(3)
(3)碰撞检测。在虚拟环境中,由于用户的交互和物体的运动,物体间经常可能发生碰撞,此时为保持环境的真实性,需要及时检测到这些碰撞,并计算相应的碰撞反应,对绘制结果进行更新,否则物体间会发生穿透现象,破坏虚拟环境的真实感和用户的沉浸感。如图4,本研究采用基于视线的碰撞检测算法,实现快速有效的碰撞检测及其处理。在对模型表面细致归纳分类的基础上,系统以巷道(建筑物)顶面、侧面和底面为碰撞检测对象的碰撞检测算法,如果在空旷地带则只需以路面为检测对象,而当上楼梯时需要将建筑物底面替换为楼梯斜面。因为所有模型表面都是有三角面组成的,所以碰撞检测算法的基本原理就是基于视线(视点与目标点间的连线)的碰撞检测算法,实现快速有效的碰撞检测及其处理,当视线与障碍物(地面或者墙面)发生碰撞时,视点位置不变,目标点移动到滑动点位置。
图4 碰撞检测原理
路径漫游的控制与操作是通过OpenGL实用库函数gluLookAt (Position.x,Position.y,Position.z,View.x,View.y,View.z,Up.x,Up.y,Up.z)设置视点投影变换来实现的,其中Position是视点位置,View是目标点位置,Up为视点向上的方向。
4.1 手动漫游
手动漫游主要是通过键盘控制,键盘输入与视点控制对应如表2所示。
表2 键盘输入与视点控制对应表
俯/仰视的原理是通过改变视线与水平面的夹角,重新计算View的大小,左/右转的原理是通过改变视线方位角,重新计算View的大小,以上2个过程中视点位置不变,视线方向发生变化。剩余操作都是通过改变Position,从而改变View,而视线方向不发生变化。前进的原理是Position加上沿视线方向的x、y坐标增量;后退的原理是Position加上沿视线反方向的x、y坐标增量;向左移动的原理是Position加上沿视线垂直左方向的x、y坐标增量;向右移动的原理是Position加上沿视线垂直右方向的x、y坐标增量;上升原理是直接增大Position的z坐标大小;下降原理是直接减小Position的z坐标大小。所有过程,都可以通过+Shift加速,通过+Alt减速。
4.2 自动漫游
自动漫游的算法原理如图5所示,其总体思想是不断计算下一个视点的位置并判断它和下一个路径点的前后关系。
图5 自动漫游算法原理
假设视野步长d,自动漫游的具体算法步骤如下:
Step1,从第一个路径点开始漫游,作为第一个视点位置;
Step2,计算沿视线方向距离当前视点d的点坐标,作为下一次视点的位置,其中这个视点的俯仰角度、旋转角度以及漫游速度都等于上一个视点的对应值;
Step3,搜索下一个路径点,计算当前视点与下一个路径点的距离,如果此距离小于d,则下一个视点直接跳到下一个路径点,否则继续Step2;
Step4,循环Step3,直到下一个路径点为最后一个路径点,此路径漫游结束。
根据以上算法步骤,路径漫游加速的原理就是增大漫游速度从而加大d的大小,相反,减速则是减小d的大小;后退的原理是在计算下一个视点(或者搜索下一个路径点)时是沿着视线的反方向,而暂停的原理则是通过一个全局变量记录当前视点的位置,在开始的时候再以此视点作为出发点开始漫游。
在Windows环境下,以VC++和OpenGL为开发工具,创建了一个基于三维模型的漫游路径优化设计模块。利用该模块,实现了地下巷道、工业广场室内与室外的手动和自动漫游,验证了上述方法的便捷性和可靠性。图6为漫游控制工具条按钮;图7为创建路径和打开碰撞检测按钮;图8(a)为井下避灾硐室漫游效果;图8(b)为井下采场漫游效果;图8(c)为工业广场室外漫游效果;图8(d)为工业广场室内漫游效果。
图6 漫游控制
图7 路径创建
图8 井上下漫游效果
研究了基于三维模型的漫游路径优化设计方法。实验结果表明,基于文中设计的漫游路径数据格式,利用路径点交互拾取、手动漫游和地下巷道中心线转换方法获取路径,并通过路径拼接、路径拟合和碰撞检测方法对获取的路径进行优化,然后实现手动和自动2种方式控制漫游,这种方法在数据组织、优化算法及流程上都能适应地下巷道、工业广场建筑物内和室外的漫游,可很好地满足矿山信息化发展需要。
[1] 李湘德,彭 斌.虚拟现实技术发展综述[J].技术与创新管理,2004,25(6):10-14. Li Xiangde,Peng Bin.Analysis on virtual reality[J].Technology and Innovation Management,2004,25(6):10-14.
[2] 吴立新,汪云甲,丁恩杰,等.三论数字矿山——借力物联网保障矿山安全与智能采矿[J].煤炭学报,2012,37(3):357-365. Wu Lixin,Wang Yunjia,Ding Enjie,et al.Thirdly study on digital mine:serve for mine safety and intellimine with support from IoT[J].Journal of China Coal Society,2012,37(3):357-365.
[3] Zhang Xialin,Wu Chonglong,Weng Zhengping,et al.Research and application of the digital mine software QuantyMine[J].Earth Science-Journal of China University of Geosciences,2010,35(2):302-311.
[4] 车德福,殷作如,张瑞玺,等.井巷工程三维建模及无缝开挖模拟技术[J].煤炭学报,2012,37(4):548-552. Che Defu,Yin Zuoru,Zhang Ruixi,et al.The method of 3D modeling for tunnel engineering and the simulation technology of its seamless excavating[J].Journal of China Coal Society,2012,37(4):548-552.
(责任编辑 石海林)
Optimal Design Method for Virtual Roam Route In 3D Scenes
Xiu Chunhua1Sun Xiujuan2Che Defu1Gao Guangliang1
(1.CollegeofResourcesandCivilEngineering,NortheasternUniversity,Shenyang110819,China;2.GeoogicalSurveying&MappingInstituteofShandongProvince,Jinan250003,China)
The optimization design of scene roaming route is the key to get fluency of 3D scenes.First,according to the OpenGL camera control principle,the path data formats are defined,including the waypoint coordinates and other basic attributes.Then,based on 3D model of coal mine,some wags that waypoint interactive pickup,manual roaming and roadway centerline conversion method are proposed to get route,and optimize the route through the path splicing,path fitting and collision detection method.Finally,roaming control is realized in manual and automatic ways.The experimental results show that this method simplifies the path creation steps and achieves good roaming results.
Roaming route,3D model,3D scene,Optimization
2015-02-04
修春华( 1972—) ,女,实验师。通讯作者 车德福( 1970—) ,男,教授,博士。
TD178
A
1001-1250(2015)-04-242-04