全景播放技术中的帧渲染

2015-09-26 07:46苏柳四川大学计算机学院成都610065
现代计算机 2015年23期
关键词:等距全景图经纬度

苏柳(四川大学计算机学院,成都 610065)

全景播放技术中的帧渲染

苏柳
(四川大学计算机学院,成都610065)

0 引言

近年来,随着计算机技术的飞速发展,多媒体所包含的种类也越来越多,所能表现的形式以及能够表现出的效果也越来越多,而一些比较传统的表现方式也越来越无法满足大部分客户对于展示方式的要求。

全景播放技术是把二维的平面图模拟成真实的三维空间,呈现给观赏者,使观赏者能够从各个方向和任意的角度观看场景,以达到模拟和再现场景的真实环境效果。在全景播放系统中,其中一项关键的技术是全景图像的渲染,由于序列帧不可能一次性地读入内存,所以播放的帧率也是一个需要解决的问题。本文采用等距圆柱投影法使全景图得到正确的渲染,并在渲染的过程中采用缓冲区对象的技术和纹理替换的技术来提高帧率。

1 全景图的渲染

1.1等距圆柱投影法

全景图是一种广角图,其视角涵盖地平线正负各180°,垂直正负各90°,目前使用较广泛的是等距圆柱投影法,该方法又被称为球面投影或简化圆柱投影,假设球面和圆柱面相切于赤道,将球面上的经纬线投影到圆柱面上,然后沿圆柱面的一条母线展开成平面的一种投影[1-2]。图1展示了这种投影方法。

图1 等距圆柱投影

使用等距圆柱投影得到的全景图经纬线之间等距,所以这种全景图的长宽比例固定为2:1。图2是使用等距圆柱投影得到的完整全景图。

全景播放技术支持这种格式的全景图,系统可以渲染完整的全景图。全景图像的渲染过程与上述全景图像的获取过程正好相反,渲染全景图是将该全景图作为纹理,粘贴到球体模型上。在OpenGL中,纹理贴图需要将纹理坐标与点的空间三维坐标一一对应,将全景图分割成360×180个小方格,通过这种方式渲染出来的全景图精度是足够的,纹理坐标以图像的左下角为(0,0)点,向上为y轴正方向,向左为x轴正方向,这样很容易就能得到对应点的纹理坐标,同时,由于全景图中经纬度坐标是等间距分布的,这里假设图像最左下角为(0°,0°),求出每个点对应的经纬度坐标。需要强调的是,图像在内存中是倒着存放的,所以这里的左下角实际上是图像的左上角。

对于全景图中任意一点P,P点距全景图左边长度为 a,距下边的长度为 b,这里采用(a,b)表示 P点在全景图中的位置。全景图的宽度为 width,高度为height,那么P点的纹理坐标为(a/width,b/height),根据先前定义的经纬度坐标系,易得P点的经纬度坐标(a/ width×360,b/height×180)。

在三维空间坐标系中,假定坐标系原点是经纬球的球心,y轴穿过经纬球的两个极点,经纬球经度为0°的经线与 z轴的负半轴相交,该经纬球半径为1,经纬球上点Q的经纬度为(i,j),那么对应的三维坐标为:

综上所述,已知全景图中的一点P在全景图中的位置是(a,b),全景图的宽度为 width,高度为 height可得其纹理坐标为(a/width,b/height),其三维空间坐标为:

全景播放技术使用上述坐标转换的方法实现全景图的渲染。图3展示了这一转换过程。

图3 坐标转换过程

1.2VBO和VAO

做全景图渲染的过程中,使用了OpenGL中缓冲区对象(buffer object)的技术[3],OpenGL是按照客户机-服务器模式设计的,OpenGL中处理数据时,必须将数据从客户机内存传输到服务器中,即显卡的显存中,当数据没有修改时,这样的方式是不需要的,所以OpenGL在 1.5版本时增加了缓冲区对象,能够允许应用程序显示的指定数据传输到服务器中,这样就当数据没有修改时,就不需要重新传输,增加了处理的效率。VBO即Vertex Buffer Object[3],VBO其实就是显卡中的显存,为了提高渲染速度,可以将要绘制的顶点数据缓存在显存中,这样就不需要将绘制的顶点数据重复从CPU发送到GPU。OpenGL3.0中增加了顶点数组对象VAO,即Vertex Array Object[3],封装和使用顶点数组相关的状态参数。这些类型的对象允许我们使用较少的函数调用就能够修改大量的状态设置,使用其可以尽可能使性能达到最大化。

2 纹理映射与纹理替换技术

纹理映射技术本质上是通过使用图片像壁纸一样粘在物体模型的表面上来模拟细节,使用纹理映射技术即可以提高模拟的逼真度,而且还可以加快显示速度[3]。图4为纹理映射的原理图。

T(u,v)代表相应的纹理像素,P(x,y,z)代表物体上的点,S(xD,yD)代表屏幕空间的投影点,通过纹理空间、物体空间和屏幕空间之间的一系列的变换过程,最终在屏幕上形成三维效果的画面。

和修改原有纹理相比,创建新纹理的开销更大一些。用新的信息修改一个现有纹理的全部或一部分常常比从头创建一个新纹理更合适[4]。在全景播放系统中,由于是对序列帧进行播放,如果每次播放一帧就去创建一个新的纹理,会大大降低程序的帧率,所以采用替换纹理的技术,先创建一个纹理,然后反复调用相应的替换纹理函数,用新的序列帧纹理作为纹理数据。

图4 纹理映射原理图

3 实验结果及分析

图5为全景图的渲染效果图。

对不同分辨率的全景图在相同的配置环境下做帧率测试,比较未采用纹理替换与采用纹理替换后的帧率,这里测试的是硬盘中图像的播放帧率而不是内存中图像的播放帧率,因为不可能将序列帧一次性地加载到内存。

表1 帧率测试结果

通过表1可以看出,采用纹理替换后,帧率的提升非常明显。由此可以看出,采用纹理替换技术,可以有效地提高帧率。

4 结语

本文采用等距圆柱投影实现了全景图的正确渲染,并采用缓冲区对象的技术和纹理替换技术有效地提高了全景播放系统的播放帧率。

图5 全景图渲染效果图

[1]Donald Hearn,M.Pauline Baker.计算机图形学(第三版)[M].蔡士杰,宋继强,蔡敏译.北京:电子工业出版社,2010.7.

[2]郭俊美.基于图像的柱面全景图生成技术研究[D].西安:西安科技大学,2010.

[3]Dave Shreiner,Graham Sellers,John Kessenich,Bill Licea-Kane.王锐等译.OpenGL编程指南(原书第8版)[M].北京:机械工业出版社,2014

[4]Richard S.Wright,Jr,Nicholas Haemel,Graham Sellers,Benjamin Lipchak.OpenGL编程宝典[M].北京:人民邮电出版社,2013.3.

Cylindrical Equidistant Projection;Frame Rendering;Coordinate Transformation;Texture Substitution

Rending in the Panoramic Display Technology

SU Liu
(College of Computer Science,Sichuan University,Chengdu 610065)

1007-1423(2015)23-0039-04

10.3969/j.issn.1007-1423.2015.23.009

苏柳(1989-),男,湖北钟祥人,硕士研究生,研究方向为图形图像技术

2015-07-06

2015-08-03

近年来,随着计算机技术的飞速发展,多媒体的表现形式也越来越多。全景播放技术是指将全景序列图逐帧正确地渲染到二维的显示器上,实现任意方向和角度观赏的360度全景景观的效果。为了正确地渲染全景图,采用等距圆柱投影法,经由一系列的坐标变换,最后转换为正确的三维坐标。为了提高播放帧率,在帧渲染的过程中采用缓冲区对象的技术和纹理替换的技术。实验结果表明,该方法使全景图得到正确的渲染,有效地提高播放的帧率。

等距圆柱投影;帧渲染;坐标变换;纹理替换

国家“863”计划项目(No.2013AA013902)

In recent years,with the rapid development of computer technology,multimedia also has more forms.Panoramic display technology refers to the sequence diagram frame by frame rendering on two-dimensional display correctly,and implements the effect that you can view the 360 degree panoramic from any direction and angle.In order to correctly render panorama,uses cylindrical equidistant projection method,through a series of coordinate transformation,and finally converted to the correct three-dimensional coordinates.To improve the broadcast frame rate,in the process of rendering,uses the buffer object technology and texture substitution technology.The experimental results show that the method makes panorama properly rendering,and effectively improves the play of the frame rate.ate.

猜你喜欢
等距全景图经纬度
平面等距变换及其矩阵表示
拟凸Hartogs域到复空间形式的全纯等距嵌入映射的存在性
嫦娥四号月背之旅全景图
基于经纬度范围的多点任务打包算法
自制中学实验操作型经纬测量仪
澳洲位移大,需调经纬度
两种等距电场激励氖原子辉光产生临界值研究
环保概念股全景图
等距延拓以及相关问题
奇妙岛全景图