旅游区三维实景浏览平台的研究与实现

2018-12-26 08:36杨海关杨忠祥冷顺绿安剑英郑朝治
地理空间信息 2018年12期
关键词:漫游手势框架

杨海关,杨忠祥,冷顺绿,安剑英,郑朝治

(1.云南省测绘产品检测站,云南 昆明 650034;2.云南旅游职业学院,云南 昆明 650221;3.云南省地图院,云南 昆明 650034)

倾斜摄影测量较传统手工建模具有真实性、快捷高效、全自动的优势,该技术改变了以往航空摄影测量只能使用单一相机从垂直角度拍摄地物的局限,通过在同一飞行平台上搭载多角度传感器,同时从垂直、4个倾斜5个角度采集遥感影像,再利用三维建模软件全自动化处理后可获取完整、真实、高精度的三维景观模型[1-2]。在旅游景区中,传统的手工建模难以还原出大范围真实的自然风景,利用地形与影像更是时效性、精细度都达不到风景的美观程度,而倾斜摄影技术由于其高分辨率和高真实感,能真实立体地还原自然风景的状况,有利于景区特别是地质遗迹的保护、科普知识的宣传和直观展示自然风光,从而吸引游客前往观赏,为用户提供一种虚拟的旅游方式,为景区提供一种展示自身形象和资源的新方法。

OSG(OpenSceneGraph简称OSG)作为开源三维图形渲染引擎,为图形图像应用程序的开发提供场景管理和图形渲染优化功能,具有移植性好、开发速度快等特点被广泛应用于虚拟仿真、虚拟现实、科学和工程可视化领域[3-4],其支持多点触控事件处理、多点触控原始数据获取,但对交互操作的手势定义和实现仍无完整支持[5]。

本文研发基于OpenSceneGraph渲染引擎,用Qt框架下C++编程语言开发三维模型的展示平台,并将触控技术引入三维场景可视化中,根据触控原数据设计手势识别类型,利用OSG中事件处理机制与漫游器操作实现多点触控,发挥该技术在交互上自然、高效的特点,增加三维可视化的可操作性和可用性。

1 多点触控接口框架

用Qt框架制作平台界面,可捕捉用户手势操作,将多点触控原数据传递给OSG框架下消息处理机制。在此基础上对事件队列进行管理和分发,场景中每一帧刷新时,事件处理器完成相应的漫游操作,其框架如图1所示。

图1 触控用户接口框架

用户滑动触控显示屏,交互事件首先被Qt捕捉,并传递给OSG的事件适配器,加入消息处理队列之中。场景中每一帧的渲染会触发相应的事件处理器,提供给开发者事件处理函数handle(),并可获得触控事件的类型和多点触控数据,然后根据设定的交互映射,触发设计的漫游器类来完成三维空间的漫游操作,从而完成从事件触发到场景漫游显示的处理,事件处理流程如图2所示。

Qt捕获用户输入Pressed、Moved、Stationary、Released 4种状态,构造4种类型事件适配器后加入OSG消息机制中消息队列,在开发者事件处理函数中可获得touchBegan、touchMoved、touchEnded 3种类型的事件,对触控数据解析后,触发平移、旋转、缩放3种预定义的漫游操作来更新三维场景。

图2 触控事件处理流程

2 触控手势设定与识别

为满足旅游景区场景漫游交互需求,应尽可能简化用户操作的复杂性,并结合手势操作习惯,设计出三维景区场景的平移、旋转、缩放3种手势。具体操作任务对应的手势定义如表1所示。

表1 触控手势定义

OSG在每帧渲染中会触发事件处理函数handle(),并可获取触控点数据,包括坐标、状态、ID。为实现表1手势,相应的识别算法如下:

1)触控点个数为1则为单指触控。状态为Pressed时停止漫游,记录开始平移;状态为Moved时判断与上一次之间偏移量fltDelta,若fltDelta过大或过小表示是无意中的操作,反之,调用TouchPan函数进行平移;状态为Released时停止平移。

2)触控点个数初始为2时,计算两触控点移动向量,判断两个向量夹角,若角度小于50°认为两点为同向移动,记录状态为旋转;反之为反向移动,记录状态为缩放。

3)触控点个数为2时,状态为旋转,调用TouchRotate函数进行旋转;状态为缩放时,调用TouchScroll函数进行缩放。

其中,TouchPan、TouchRotate、TouchScroll是为场景漫游设计的漫游器类,通过实时修正相机观察矩阵的方式来实现平滑的导航浏览。

3 三维浏览平台的实现

通过多OSG多点触控框架的分析,在Qt框架下用C++编程语言实现三维交互触控操作平台,再用倾斜摄影测量技术获取昆明市世博园的实景三维景区模型,在平台中进行交互展示。在28英寸SurfaceStudio一体机中展示,通过触控实现单指平移、双指缩放、双指旋转,多方位进行交互式操作,对场景放大、缩小、任意改变视角,从不同角度全方位观看景区效果,带给观赏者强烈的真实感、立体感,使其身临其境、触手可及,从而实现高度沉浸感的交互展示效果。

通过这种交互式的体验还可以加深旅游者对景区的印象,消除旅游消费中可能存在的不确定性因素,使游览者在游览之前对景区的质量和花费有明确的价值认知。

实践表明,多点触控手势算法是有效的,可满足旅游景区三维场景交互的需要。

图3 旅游景区三维场景展示

4 结 语

为实现对旅游区三维场景的展示,用倾斜摄影技术可快速、高效地获得高分辨率、高真实性的三维景观,并基于OSG多点触控用户接口框架设计与景区展示相对应的触控浏览平台。既展示出景区逼真的视觉效果,又发挥了多点触控人机交互简单、高效、直观的特点[6-7],增强三维数据带来的高沉浸感,为用户提供一种虚拟旅游的方式。

猜你喜欢
漫游手势框架
框架
广义框架的不相交性
挑战!神秘手势
V字手势的由来
霹雳漫游堂
胜利的手势
WTO框架下
NASA漫游记
一种基于OpenStack的云应用开发框架
边走边看:漫游海底 梦想成真