一种虚拟场景的球形全景渲染方法与流程

文档序号:13254315阅读:562来源:国知局
技术领域本发明涉及光线跟踪技术和球形投影成像技术领域,尤其涉及一种虚拟场景的球形全景渲染方法。

背景技术:
为了在球幕电影实拍和三维虚拟场景结合这一新技术领域有所突破,通过深入对这新领域进行研究分析,考虑到球幕电影的银幕是球形的,中心位置的观众的视场角度达360度,因此要求电影画面必须是全景的球面图像。在数字电影领域,获取虚拟场景全景图像的方法,根据摄像机的数量和分布排列的不同,大概可以分为以下几类:Ⅰ)大广角单相机渲染使用单一的大广角镜头渲染场景。因为现有的摄像机模型都是针孔摄像机(ping-holecamera),其最大的缺点是,所有光线都通过一个小孔进入摄像机,在一个平面的成像面上成像,导致图像在中心区放大,而在边缘区压缩,画面严重变形失真。Ⅱ)多相机阵列(Multi-cameraArray)渲染使用多达数十个常规视角的镜头,按照一定的排列方式组成一个空间阵列,然后逐一渲染,最后在合成阶段把数十个画面拼接而成一个完整的全景球面图像。缺点是计算量巨大,工序繁杂。这两种类型的方法,要不就是变形失真严重,要不就是运算成本巨大,很难满足技术要求,实现一幅无畸变的全景图像,同时影片总分辨率又能达到真4K(4096*4096)或更高的画质。同时随着虚拟现实技术的不断发展,传统简单的平面屏幕显示,已完全不能满足观众对多媒体互动投影项目,要达到高交互感、沉浸感的需求,球形或半球形投影显示系统将成为新的趋势。因此对于球形影片制作,如何能找到一种比市面上更有效快速渲染出无畸变的球形全景图像的方法,成为当务之急。

技术实现要素:
本发明的目的是提供一种虚拟场景的球形全景渲染方法,可以方便快捷的获得无畸变的球形全景图像,且整个方案的成本也较低。本发明的目的是通过以下技术方案实现的:一种虚拟场景的球形全景渲染方法,包括:根据光线追踪算法,获取球面每一条出射光线的方向;建立虚拟场景中物体从三维摄像机里的光学镜头的平面成像面,到球面成像面的映射关系;基于该映射关系修改每一条出射光线的方向;将修改后的每一条出射光线的方向数据传输至三维渲染引擎,由三维渲染引擎进行采样与滤波处理后,获得无畸变的球形全景图像。进一步的,所述获取球面每一条出射光线的方向包括:该球面的全景投影采用标准设备坐标定义方位分离角δ与极角α;其中,方位分离角δ为视角方向逆时针度量,位于平面(u,w)上;极角α为相对于(u,w)平面的垂直面内向上旋转的角度;方位分离角δ和极角α与球体坐标角度β和ε之间的关系如下:ε=π—δ;β=π/2—α;在方位分离角δ所在方位方向平面与极角α所在极方向平面里,当物体在球面视点到空间点的距离r范围内时,光线在两个平面里分别进行跟踪运算,其中r2=xn2+yn2≤1.0,xn和yn为标准设备坐标系的点。进一步的,所述建立虚拟场景中物体从三维摄像机里的光学镜头的平面成像面,到球面成像面的映射关系包括:球面放置于虚拟场景中物体与三维摄像机里的光学镜头之间;虚拟场景中物体的坐标记为(M1,M),通过三维摄像机里的光学镜头在成像面上成的实像坐标记为(N1,N);当在数字光学镜头前放置一个球面,当成像面上的实像(N1,N)被投射到球面上时会在球面上产生一个图像(P1,P);将光学镜头坐标系里任一点p(Xp,Yp)∈[-WHres/2,-WVres/2]×[WHres/2,WVres/2],转换成标准设备坐标系对应的点m(Xm,Ym)∈[-1,+1]×[-1,+1]2;其中,WHres≠WVres;WHres为视平面横向采样分辨率,WVres为视平面纵向采样分辨率;坐标变换满足以下公式:Xm=2.0×Xp/(WHres–1.0);Ym=2.0×Yp/(WVres–1.0)。进一步的,基于该映射关系修改每一条出射光线的方向包括:根据标准设备坐标系对应的点m(Xm,Ym),计算方位分离角δ与极角α:δ=Xm×δmax;α=Ym×αmax;(δ,α)∈[-δmax,δmax]×[-αmax,αmax];其中,δmax=180°且αmax=90°时得到360°×180°的视域范围,FOV定义为2δmax×2αmax;对于各个出射光线向量均采用下述公式进行计算,获得修改后的光线向量pnew<px,py,pz>:px=sin(π/2-α)×sin(π-δ);py=cos(π/2-α);pz=sin(π/2-α)×cos(π-δ)。由上述本发明提供的技术方案可以看出,该方案高效灵活,计算量小工序简洁,而且还能与三维制作软件兼容,又更直观地渲染出球形全景图像,从而减少大量的制作和时间成本,大大提高影片的质量和效率。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。图1为本发明实施例提供的一种虚拟场景的球形全景渲染方法的流程图;图2为本发明实施例提供的鱼眼球形渲染模型示意图;图3a-3b为本发明实施例提供的为球形眼鱼投影里光线跟踪示意图;图4a-4b为本发明实施例提供的球形鱼眼相机在180度与360度时出射光线方向的示意图;图5为本发明实施例提供的球形全景渲染示意图;图6为本发明实施例提供的球形全景渲染模型示意图;图7为本发明实施例提供的球面、光学镜头、成像面系统示意图;图8为本发明实施例提供的将光学镜头坐标系点P转换成标准的设备坐标的示意图;图9a-9c为本发明实施例提供的出射光线方向的计算过程示意图;图10为本发明实施例提供的三维软件内一个正方形三面网格体的示意图;图11a-11b为本发明实施例提供的球形全景渲染插件参数与180度球形投影效果示意图;图12a-12b为本发明实施例提供的球形全景渲染插件参数与360度全景渲染效果示意图;图13a-13b为本发明实施例提供的球形全景渲染插件立体参数及360度全景立体效果示意图;图14为本发明实施例提供的虚拟场景360度全景立体效果示意图。具体实施方式下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明的保护范围。研究更直观高效灵活的球形全景图像的方法的原因,是无畸变的球形全景图像具有计算量小,工序简单,成本低,较大的视觉范围,画面变形失真少,沉浸包围感强等优点,以被广泛应用到各种领域的影片制作,如大型球幕影院数字天文馆、球形动感广告、大型科技馆。此外球幕影片在市场上,另外一个主要应用是虚拟现实,模拟仿真领域等,但传统获取虚拟场景全景图像的方法比较复杂,计算量大,且不直观,并不方便于各种球形三维的影片制作。本发明实施例的方案不但方法高效灵活,计算量小工序简洁,而且还能与三维制作软件兼容,又更直观地渲染出球形全景图像,从而减少大量的制作和时间成本,大大提高影片的质量和效率。图1为本发明实施例提供的一种虚拟场景的球形全景渲染方法的流程图。如图1所示,其主要包括如下步骤:步骤11、根据光线追踪算法,获取球面每一条出射光线的方向。步骤12、建立虚拟场景中物体从三维摄像机里的光学镜头的平面成像面,到球面成像面的映射关系。步骤13、基于该映射关系修改每一条出射光线的方向。步骤14、将修改后的每一条出射光线的方向数据传输至三维渲染引擎,由三维渲染引擎进行采样与滤波处理后,获得无畸变的球形全景图像。为了便于理解,下面结合附图对本发明做进一步说明。由于鱼眼球形渲染模型跟球形全景渲染模型有相似之处,因此先对鱼眼球形渲染进行分析,如图2所示,鱼眼球形的可视范围为一个无限大的圆锥表示,球心为视点,圆锥的半角αmax∈[0,180°],其决定了该圆锥的视域范围FOV;当αmax=180°时,在圆锥平面上,视点到空间点的距离为r。从而提供基于视点的全360°视域范围,鱼眼球形里光线跟踪如图3所示,图3a为鱼眼球形的投影系统,图3b为像素在r范围里进行光线跟踪。然后根据光线追踪算法,获得取视点相机每一条出射光线的方向。如图4a-4b所示,可以看出180度和360度两种情况下相机视点在球形相机投影下,出射光线的方向范围。球形全景渲染模型类似于鱼眼球形渲染模型,唯一区别在于全景渲染在两个方向的视角平面上进行光线跟踪计算像素点,图5为在3D球面坐标系里的全景渲染示意图。如图6所示,球形全景渲染模型采用标准设备坐标定义方位分离角δ与极角α;其中,方位分离角δ为视角方向逆时针度量,位于平面(u,w)上;极角α为相对于(u,w)平面的垂直面内向上旋转的角度;方位分离角δ和极角α与球体坐标角度β和ε之间的关系如下:ε=π—δ;β=π/2—α。在方位分离角δ所在方位方向平面与极角α所在极方向平面里,当物体在球面视点到空间点的距离r范围内时,光线在两个平面里分别进行跟踪运算,其中r2=xn2+yn2≤1.0,xn和yn为标准设备坐标系的点。再建立虚拟场景中物体从三维摄像机里的光学镜头的平面成像面,到球面成像面的映射关系包括。如图7所示,球面放置于虚拟场景中物体与三维摄像机里的光学镜头之间。虚拟场景中物体的坐标记为(M1,M),通过三维摄像机里的光学镜头在成像面上成的实像坐标记为(N1,N);当在数字光学镜头前放置一个球面,当成像面上的实像(N1,N)被投射到球面上时会在球面上产生一个图像(P1,P)。如图8所示,将光学镜头坐标系里(视平面坐标系)的任一点p(Xp,Yp)∈[-WHres/2,-WVres/2]×[WHres/2,WVres/2],转换成标准设备坐标系对应的点m(Xm,Ym)∈[-1,+1]×[-1,+1]2;其中,WHres≠WVres;WHres为视平面横向采样分辨率,WVres为视平面纵向采样分辨率;坐标变换满足以下公式:Xm=2.0×Xp/(WHres–1.0);Ym=2.0×Yp/(WVres–1.0)。本发明实施例中,所建立的从平面成像面到球面成像面的映射关系,应该保证视场方向、视角、观察点的高度一致,保证正确的透视关系。当从观看者站在镜头前观看角度,对图像进行采样最终影片,此时会完全地真实还原场景的透视关系,大小尺寸和空间位置,在球面上的图像,应该感觉看到真实的物体。根据标准设备坐标系对应的点m(Xm,Ym),计算方位分离角δ与极角α:δ=Xm×δmax;α=Ym×αmax;(δ,α)∈[-δmax,δmax]×[-αmax,αmax];其中,δmax=180°且αmax=90°时得到360°×180°的视域范围,FOV定义为2δmax×2αmax;对于各个出射光线向量均采用下述公式进行计算,获得修改后的光线向量pnew<px,py,pz>:px=sin(π/2-α)×sin(π-δ);py=cos(π/2-α);pz=sin(π/2-α)×cos(π-δ)。上述的过程如图9a-9c所示,图9a表示一个单位方向光线投射到(u,v)平面,图9b表示对应的标准设备坐标系,图9c表示点p投射到u和v方向上。最后只要将修改后的每一条相要出射光线的方向数据,输出给专业的三维渲染引擎(RenderingEngine),如Mental-ray,Vray,Rendman,Mantra等。进行采样(Sampling),滤波(Filtering)等计算,则可获得无畸变的球形全景图像。本发明实施例中,由于视平面横向采样分辨率WHres和纵向采样分辨率WVres值并不相同,因此视平面坐标系转规格化坐标系计算时,也可以渲染出矩形的全景图像。基于本发明实施例的上述方案,可以根据不同渲染引擎提供的API端口代码通过C语言编写不同的球形全景渲染插件。为了测试本发明实施例的效果,在三维软件里建立一个正方形三面网格体,如图10所示。再通过在三维软件编写好的插件渲染出想要的全景效果,如图11a-11b所示,为球形全景渲染插件参数与180度球形投影效果。也可以渲染出矩形的图像,如图12a-12b所示,为球形全景渲染插件参数与360度全景渲染效果。本发明实施例中,如把两球面与光学镜头的视点,根据一定的人眼瞳距调整,同时考虑张角FOV,底片CMOS等参数值,也能计算出左右眼的全景渲染图像立体效果。如图13a-13b所示为,球形全景渲染插件立体参数及360度全景立体效果,把相同大小的物体放在离视点不同的距离下所成的像。图14为虚拟场景360度全景立体效果。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明披露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求书的保护范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1