一种在三维场景中任意位置生成全景图的方法与流程

文档序号:11387610阅读:501来源:国知局
一种在三维场景中任意位置生成全景图的方法与流程

本发明涉及一种在三维场景中任意位置生成全景图的方法。



背景技术:

全景图通过广角的表现手段以及绘画、相片、视频、三维模型等形式,尽可能多表现出周围的环境,从而使人产生一定沉浸感。

全景图相对于三维场景可执行文件,具有占用空间小、多平台支持及传播广等优点,现在市面上已有的全景图产生方式主要有两种:一种是通过多镜头或单镜头多方向实拍,根据特征点将多张图片缝合成一张,但这种方法不适用于虚拟三维场景;第二种是通过类似3dmax这类软件进行渲染,将整个空间上的点映射到一张全景图中,但渲染过程复杂、对渲染设备的要求高,耗时长,往往需要等待数小时。



技术实现要素:

本发明的目的在于克服上述现有技术的不足,提供一种在三维场景中任意位置生成全景图的方法。

为实现上述目的,本发明采用以下技术方案:

一种在三维场景中任意位置生成全景图的方法,包括以下步骤:

s1、在三维场景中创建虚拟相机,并以虚拟相机所在点o为中心点建立右手坐标系o-xyz,将虚拟相机水平与垂直方向的视场角度设置为90°,方向朝向-z轴,并保持俯仰角和翻滚角为0°;

s2、设定渲染图片的形状为正方形,其边长为w,将虚拟相机分别朝向-z、-x、+z、+x、+y以及-y方向各渲染一张图片,以获得当前位置的六视图;

s3、以虚拟相机所在点o为中心,分别建立球体与立方体,设定球体半径为1,立方体边长为2,立方体的各边平行于x、y、z轴;

s4、计算球面任意点p的坐标,根据球面任意点p的坐标计算连线op与立方体相交点pc的坐标;

s5、设定所需全景图的宽度与高度,将全景图上的像素点一一映射到球面坐标系中,获得全景图像素点在球面坐标系的映射坐标;

s6、在w*h个像素点的全景图中,对每个像素点p按宽度、高度方向分别循环,根据全景图到球面坐标系中的映射坐标以及pc点的坐标确定对应的采样图及采样坐标;根据采样坐标所对应的点在采样图中的颜色确定全景图中像素点p的颜色,获得所需全景图。

进一步地,步骤s4中,令连线op与yoz平面的夹角为θ,围绕y轴顺时针方向旋转为正向;令连线op与xoz平面夹角为p在y轴正半轴方向夹角为正。

进一步地,步骤s4中,球面任意点p(xp,yp,zp)在平面xoz中的投影为b,连线ob交球面于点a,设m、n为oz轴上的点,连线am及bn平行于x轴,则由am=ao*sinθ及ao=1可得om=ao*cosθ及可得则球面任意点p的坐标为

opc与op共线,则有则相交点pc(xpc,ypc,zpc)的坐标为

球面任意点p的坐标及相交点pc的坐标根据其在坐标系o-xyz中的位置取正负值。

进一步地,步骤s5中,设定所需全景图的宽度为w,高度为h,则全景图上任意一点p(x,y)在球面坐标系的坐标值为

进一步地,步骤s6中,各采样图及其采样坐标的确定方式如下,

时,球体上的全景图在后视图中采样,采样坐标为:

时,球体上的全景图在左视图中采样,采样坐标为:

时,球体上的全景图在前视图中采样,采样坐标为:

时,球体上的全景图在右视图中采样,采样坐标为:

时,球体上的全景图在顶视图中采样,采样坐标为:

时,球体上的全景图在底视图中采样,采样坐标为:

进一步地,步骤s6中,采样坐标所对应的点正好位于采样图的像素点q上时,像素点p取该像素点q的颜色,否则,取采样坐标对应点的邻域插值颜色或最邻近点颜色。

采用上述技术方案后,本发明与背景技术相比,具有如下优点:不依赖于渲染方法或系统,仅通过规范化参数的虚拟相机渲染前、后、左、右、顶部及底部六张贴图(环境映射),无需复杂的特征提取、识别与缝合,直接经过立方体空间到球形空间的映射,即可在三维场景的任意位置快速(普通pc端,数秒内)生成高质量的全景图。本发明不仅适用于实时渲染,在离线渲染时,同样适用。

附图说明

图1为本发明建模示意图;

图2为本发明虚拟相机所渲染的六视图,其中,图2a为朝-z方向渲染的前视图,图2b为朝-x方向渲染的左视图;图2c为朝+z方向渲染的后视图;图2d为朝+x方向渲染的右视图;图2e为朝+y方向渲染的顶视图;图2f为朝-y方向渲染的底视图;

图3为宽度为w、高度为h的全景图在球体上的贴图展开图;

图4为由o点朝+z向看,立方体的顶点坐标以及后视图贴图坐标;

图5为以图2所渲染的六视图为输入获得的全景图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

实施例

一种在三维场景中任意位置生成全景图的方法,包括以下步骤:

s1、如图1所示,在三维场景中创建虚拟相机,并以虚拟相机所在点o为中心点建立右手坐标系o-xyz,选择合适的远近裁剪,将虚拟相机水平与垂直方向的视场角度设置为90°,方向朝向-z轴,并保持俯仰角和翻滚角为0°。

s2、设定渲染图片的形状为正方形,其边长为w,将虚拟相机分别朝向-z、-x、+z、+x、+y以及-y方向各渲染一张图片,以获得当前位置的六视图。

首先,朝-z方向渲染一张图片,得到当前位置的前视图;围绕y轴逆时针旋转90度,朝-x方向渲染一张图片,得到左视图;围绕y轴逆时针再旋转90度,朝+z方向渲染一张图片,得到后视图;围绕y轴逆时针再旋转90度,朝+x方向渲染一张图片,得到右视图;围绕y轴逆时针再旋转90度,朝向-z轴,回到初始位置,再围绕x轴逆时针旋转90度,朝+y方向渲染一张图片,得到顶视图;围绕x轴逆时针再旋转180度,朝-y方向渲染一张图片,得到底视图,得到的六视图如图2所示。

s3、以虚拟相机所在点o为中心,分别建立球体与立方体,立方体的各边平行于x、y、z轴。

由于,连线op与立方体的相交点对应在立方体某个面中的相对位置(即分别与长、宽的比率)仅与球面任意点p在坐标系中的方向有关,与球体及立方体的大小无关,因此,为便于计算,设定球体的半径为1,立方体边长为2。

s4、计算球面任意点p的坐标,根据球面任意点p的坐标计算连线op与立方体相交点pc的坐标;

由于虚拟相机默认朝向-z轴,如图1所示,正方形c1c2c3c4为后视图方向,c5c6c7c8为前视图方向,为了使前视图能位于全景图的正中,且全景图从左到右环绕,令连线op与yoz平面的夹角为θ,围绕y轴顺时针方向旋转为正向;由于虚拟相机的俯仰角与翻滚角为0,为了使全景图由上而下平铺,令连线op与xoz平面夹角为p在y轴正半轴方向夹角为正。

如图1所示,球面任意点p(xp,yp,zp)在平面xoz中的投影为b,连线ob交球面于点a,设m、n为oz轴上的点,连线am及bn平行于x轴,则有∠bon为θ,∠pob为

则由(相似三角形)、am=ao*sinθ及ao=1(球体半径)可得om=ao*cosθ及可得则球面任意点p的坐标为

opc与op共线,则有则相交点pc(xpc,ypc,zpc)的坐标为

球面任意点p的坐标及相交点pc的坐标根据其在坐标系o-xyz中的位置取正负值。

s5、设定所需全景图的宽度和高度,将全景图上的像素点一一映射到球面坐标系中,获得全景图像素点在球面坐标系的映射坐标。

设定所需全景图的宽度为w,高度为h,如图3所示的是全景图的球形展开,竖直方向为经线,水平方向为纬线,由横坐标[0,w]->[0,2π],纵坐标[0,h]->[+π,-π]的均匀分布一一映射可得,全景图上任意点p(x,y)到球面坐标系的映射坐标为

s6、在w*h个像素点的全景图中,对每个像素点p按宽度、高度方向分别循环,根据全景图到球面坐标系中的映射坐标以及pc点的坐标确定对应的采样图及采样坐标;根据采样坐标所对应的点在采样图中的颜色确定全景图中像素点p的颜色,获得所需全景图。

各采样图及其采样坐标的确定方式如下,

时,球体上的全景图在后视图中采样,采样坐标为:

时,球体上的全景图在左视图中采样,采样坐标为:

时,球体上的全景图在前视图中采样,采样坐标为:

时,球体上的全景图在右视图中采样,采样坐标为:

时,球体上的全景图在顶视图中采样,采样坐标为:

时,球体上的全景图在底视图中采样,采样坐标为:

采样坐标所对应的点正好位于采样图的像素点q上时,像素点p取该像素点q的颜色,否则,取采样坐标对应点的邻域插值颜色或最邻近点颜色。

本发明中生成全景图片的方法同样适用于生成全景视频,只需将生成的多组图片连接成序列帧即可。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1