APP下载

基于图像系列的三维导航快速实现技术

2016-07-09孟卉

数字技术与应用 2016年6期
关键词:原型插值虚拟现实

孟卉

摘要:基于图像绘制的虚拟环境构造是近年来虚拟现实技术研究的热点。通过分析三维导航的原理和虚拟现实建模语言的插值算法,本文提出一个基于图像系列的三维导航系统快速实现的方法。首先对三维导航的路径进行分析来定义关键帧节点,利用数码相机依照关键帧节点依次采集到一系列的图像,并结合VRML编程语言的插值节点,定义多种漫游行走方式的程序原型,对图像系列进行插值,生成漫游的三维导航视频,从而简单快速地实现室内外的三维导航,实践证明该方法成本低,制作简便,效果好。

关键词:虚拟现实 基于图像绘制 三维导航 虚拟现实建模言 插值 原型

中图分类号:TP391.41 文献标识码:A 文章编号:1007-9416(2016)06-0000-00

Abstract: The reconstruction of Virtual Reality Scene based on image has become the hot topic in last ten years. By analysising the process of 3D navigation and the interpolation method of Virtual Reality Model Language, a novel method about the implement of 3D Navigation based on series image set is presented in this paper. Firstly, the definition of key frame point is presented through the analysis of 3D navigation route, and the images are obtained by digital camera in accordance with the key frames. Secondly, all kinds of roaming prototype are defined by the interpolation node of VRML program. Lastly, the navigation animation by the interpolation of the series image is generated, which efficiently implement the 3D navigation of indoor and outdoor. The experiment show that technique is cheaper and simpler, also has good performance.

Key words:Virtual Reality; Image Based Rendering;3D Navigation;Virtual Reality Model Language;Interpolation;Prototype

1 概述

随着计算机软件与硬件技术的高速发展,虚拟现实(Virtual Reality, VR)技术的应用越来越广泛,基于图像的绘制技术(Image Based Rendering,IBR)是近年来VR技术研究的热点,它以简单的图像合成代替基于三维几何的建模和渲染,加快了画面的显示速度,是建立特定三维场景的一种高效率方法。IBR将计算机图形学、计算机视觉与图像处理结合在一起,直接由参考图像生成新视点的图像,具有绘制速度与场景复杂度无关、对计算机硬件的要求不高、生成图像的真实感强、既可用于合成场景又可用于真实场景等优点。基于以上优点,IBR技术自从上世纪90年代被提出以来,已经在虚拟现实、航空航天、建筑、娱乐、网上旅游等领域中得到了应用,尤其由于真实感强,在三维导航方面具有广泛的应用。[1]

VR技术具有I3 (沉浸、交互、想象)特征,其中虚拟现实建模语言 (Virtual Reality Modeling Language,VRML)是基于网络的三维语言,是Web3D的代表,它是用于建构多人的交互式虚拟实境语言。虚拟漫游是虚拟现实系统中必不可少的功能,尤其是三维室内外导航系统是三维虚拟漫游系统的重要组成部分,国内外许多高校都进行了研究,成为一个热点研究领域[2-10]。

本文先仔细剖析基于图像系列的绘制技术,结合VRML语言,在Web3D平台上提出了基于图像系列的三维导航漫游系统的快速实现算法,并实现了相应的自助导航功能,让用户身临其境地感受真实三维场景。

2 导航路径的关键节点

虚拟漫游的实质是首先在漫游路线的关键点(帧)位置设置了一系列的视点viewPoint(或称相机),同时计算好路线上每一段所需的时间,目的是为了行走的匀速;然后通过时间传感器,设置好时间间隔,结合相应的插值器,生成每两个关键帧相机之间的运动位置,从而生成一系列的动画,实现用户的漫游过程,因而虚拟漫游的关键是如何生成两个关键帧之间的动画。[11,12]

如图1是一个典型的小区漫游路线,这条多义线分别由多条直线和弧线组合而成,包含16个端点(P1,P2,……,P16),共15段线段,每一段线(弧线)的端点都是关键帧的位置即Pi。假设用户行走时(或相机在沿路线移动时),方向始终指向下一关键帧,或者说方向与路线重合。

3 关键动画的生成

结合前面的分析,实际虚拟漫游的关键是如何生成从Pi到Pi+1的动画。

首先让用户手持相机,在关键点Pi、Pi+1的位置上沿着行走的方向拍摄照片Imagei和Imagei+1,详见图3(a)和(b);显然Imagei+1可以在Imagei中找到相似的内容,可以进行对准,结果见图3(c)。假设图像的分辨率为width*height,则图Imagei+1在Imagei中的位置坐标为[左下角(leftX,downY),右上角(rightX,topY)],显然如果在Pi、Pi+1点保持相同的拍摄角度,则Imagei+1在Imagei的正中央,详见图3(d)。

截取后进行归一化,统一生成同样大小的图片,即进行图像的缩放操作Imresize(Ij, width,height)。

最后把这n张图片可以形成一段动画,在实际应用中,Pi至Pi+1一般可能有20m,按人的行走速度4.8km/h,则需要12秒,取帧速率为10fps,则将有120张图片,不管从生成的角度还是从内存开销的角度,都需要不少的代价。

为了快速实现上述动画的再生过程,我们结合VRML语言的面集节点纹理映射坐标系统和坐标插值器,通过Web3D的渲染引擎,以最低的代价和最快的速度,完美地实现了上述的动画过程。

4 基于VRML的动画生成

VRML语言的面集IndexdetFaceSet节点是几何体geometry的主要组成部分。面集节点用于在三维空间中创建各种平面组合而成的不规则的立体几何造型,主要由三维坐标点集(coord)、面的多边形点集(coordIndex)、平面纹理贴图(texCoord和texCoordIndex)等部分组成。结合前面的工程分析,首先我们通过coord、coordIndex建立一个4:3的四边形,模拟前边描述的照片,并在正前方创建一个相机,后通过texCoord、texCoordIndex给指定图片建立纹理映射。

如图6所示,建立一个四个顶点的四边形面,坐标点分别为(1,-0.75,0)、(1,0.75,0)、(-1,0.75,0)、(-1,-0.75,0),生成一个2*1.5(4:3)的四边形面。同时通过纹理映射,把图片的一部分映射至四边形面上,如图6中左图的四个UV映射坐标(u2,v1)、(u2,v2)、(u1,v2)、(u1,v1)分别分别对应到四边形的四个顶点。

另一方面,VRML具有六种插补器节点和八种传感器节点,通过路由在各个造型节点和场景节点之间传递事件,为浏览者创建一个身临其境、动态、逼真、可以交互沟通的虚拟环境。其中坐标插补器(CoordinateInterpolater)节点用于产生基于坐标点的复杂造型(线集IndexedLineSet、面集IndexedFaceSet)的变形动画。它包含key域、keyValue域、set_fraction入事件、value_changed出事件,其中key域用于设置一组时间关键点的列表,keyValue域用于设定一组关键坐标点的列表,set_fraction入事件用于接收来自时间传感器点发出的时刻比例数值,value_changed出事件用于输出计算后新的坐标子列表。

由于没有二维坐标点的坐标插补器,只有三维坐标点的坐标插补器,因而不能直接产生UV贴图坐标的(u1,v1,u2,v2)的系列坐标插补值。因此,我们可以反过来针对四边形面的四点三维坐标进行插补,当然在视图像机中只能观察到由(1,-0.75,0)、(1,0.75,0)、(-1,0.75,0)、(-1,-0.75,0)构成的4:3四边形部分,从而达到对UV进行插补的目的,具体见图7。

5 基于VRML原型的程序实现

在VRML编程语言结构中,PROTO原型语句实现了用户自定义对象,在原型中包括普通域、暴露域、出事件和入事件四部分参数,并可以包含相应的路由器,具备了面向对象方法的封闭性特征,对数据具有不同的访问权限。根据前面的讨论和VRML语言的特点,结合工程的需要我们给用户往前走的原型定义为goAhead:

其中startTime、endTime表示本次动画的开始时间和结束时间,startTime作为入事件来激发动画,endTime作为出事件结束本次动画,同时通过路由传给后续动画的入事件startTime去激发后续动画,从而形成完整的一个事件链。

三维坐标点stPoint、endPoint表示实际环境中的出发、结束位置的三维坐标,因而可以求出它们的距离,并结合指定的行走速度speed,从而求出行走的时间walkTime,并作为时间插值器time TimeSensor的时间周期cycleInterval。

字符串word将作为动画的字幕显示在动画的底部中央;

声音文件voice则作为动画播放期间的配音,可以是背景音乐,也可以相关场景的解说词。

很显然,直走包括了漫游路径第一类:直线往前走,和第二类:往前左拐弯、往前右拐弯等情况。而第三类情况属于弧形拐弯,可以看作是一个原地转弯的类型,相当于相机在原地转弯拍摄,可以直接生成一段全景图,见图8(a),当前几乎所有的数码相机都支持这种全景拍摄功能。显然动画地生成相当于模拟画面的旋转,如图8(b)表示在生成动画系列时,从全景图中从右往左依次分割等大小的图像系列,从VRML实现角度就是四边形面的四个顶点依次从图8(a)中的右边框逐步向图8(a)中的左边框进行插值,从而产生相应的一系列三维坐标系列,并生成相应的插值动画。同理可以如同直走goAhead原型一样定义原地转弯originalWheel原型。

结合HTML语言,可以建立基于web页面的相关界面,从而形成一个完整的基于图像系列的虚拟漫游系统,再结合线性的三维路径图,可以把相关的路径数据和图像系列通过AJAX存储在服务器,从而可以进行快速地辅助导航。

6 结语

本文通过VRML原型的定义,结合面集节点纹理映射坐标系统和坐标插值器, 选用少量的实景图片系列,由Web3D的渲染引擎完美地实现漫游中的动画视频,从而快速地实现了室内外虚拟漫游导航。显然本技术避免了传统虚拟现实中繁琐的三维建模,节省了大量的时间,虽然在视频生成的转换过程中有一定的跳跃,但在很多要求不是特别高的工程应用中具有很强的实践价值。如何更进一步实现基于图片系列的全景漫游是继续研究的方向。

参考文献:

[1]庄怡,汪剑春,胡新荣.IBR技术与应用综述[J].武汉科技学院学报,2010(3):49-52.

[2]刘爽.基于VRML的虚拟现实场景漫游技术的研究与实现[D].吉林:吉林大学,2007.

[3]马秀荣.基于VRML的建筑模型场景设计与演示实现及应用[D].长春:吉林大学, 2009.

[4]白坤.基于VRML的大雁塔建筑群虚拟漫游系统的研究与实现[D].西安:西北大学,2012.

[5]殷鹏莲,余学祥.VRML和Java支持下的三维虚拟校园构建[J].测绘与空间地理信息,2015(4):165-171.

[6]宋慧龄,邓洪.基于VRML 的地学虚拟博物馆漫游系统的实现[J].计算机工程,2006,32(17):239-241.

[7]杨安祺,乔海超,张杜娟等.基于VRML的虚拟秦汉博物馆的研究与实现[J].计算机工程与设计, 2011,32(2):628-632.

[8]蒋文燕,栾汝朋,朱晓华.基于VRML_ArcGIS的虚拟旅游景观设计与实现[J].地理研究,2010(9):1715-1719.

[9]陆颖隽.虚拟现实技术在数字图书馆的应用研究[D].武汉:武汉大学,2013.

[10]卞敏捷,高珏,高洪皓等.Web3D可视化技术的研究与应用,计算机技术与发展[J],2015(6):141-144.

[11]饶金通,董槐林,姜青山.基于特征的参数化高效建模技术[J].厦门大学学报(自然科学版),2006,45(2):191-195.

[12]Jintong Rao, Jianbing Xiahou, Yuan Li, et al. The Implement of Interior 3D Navigation based on VRML. Applied Mathematics & Information Sciences, 2014(1L):193-199.

猜你喜欢

原型插值虚拟现实
基于Sinc插值与相关谱的纵横波速度比扫描方法
《哈姆雷特》的《圣经》叙事原型考证
REALITY BITES
虚拟现实技术向科幻小说借灵感
论《西藏隐秘岁月》的原型复现
一种改进FFT多谱线插值谐波分析方法
基于四项最低旁瓣Nuttall窗的插值FFT谐波分析
原型理论分析“门”
Blackman-Harris窗的插值FFT谐波分析与应用
浅谈虚拟现实