一种VR渲染方法、装置、穿戴式设备及可读存储介质与流程

文档序号:14943019发布日期:2018-07-13 21:33

本发明涉及数据处理技术领域,尤其涉及一种VR渲染方法、装置、穿戴式设备及可读存储介质。



背景技术:

虚拟现实(Virtual Reality,VR)是近年来出现的高新技术。VR是一项综合集成技术,涉及计算机图形学、人机交互技术传感技术、人工智能等领域。它用计算机生成逼真的三维视听使人作为参与者,通过适当装置自然地对虚拟世界进行体验和交互作用。VR主要有三方面的含义:第一,虚拟现实是借助于计算机生成逼真的实体,“实体”是对于人的感觉(视听触嗅)而言的;第二,用户可以通过人的自然技能与这个环境交互,自然技能是指人的头部转动眼动手势等其他人体的动作;第三,虚拟现实往往要借助于一些三维设备和传感设备来完成交互操作。

就目前的VR体验而言,其最亟需解决的问题是,用户体验时的眩晕等身体不适问题,造成身体不适的原因很多,如分辨率、画面重影、画面延迟、深度感知不连续等等。以游戏为例,通常一款游戏的帧率只要保持在30帧/秒以上即可满足玩家流畅游戏的需要,但对于VR沉浸式体验来说,30帧/秒的速度是远远不够的,如果帧率过低,就会造成画面延迟度过长,则用户实际看到的渲染场景是“一顿一顿”进行显示的,进而增加了VR体验的不适感,甚至让人感到眩晕。一般来说,延迟度需要小于20ms且越小越好,这样才能保证较好的VR体验,如果想要延迟度小于20ms,则必须要保证帧率至少达到75帧/秒,甚至90帧/秒以上,而这种性能要求,即便是目前主流家用PC机也难以达到。因此,解决画面延迟的首要任务就是提高渲染的速度。



技术实现要素:

有鉴于此,本发明提供了一种VR渲染方法、装置、穿戴式设备及可读存储介质,用以提高渲染速度,以降低画面延迟,从而提升用户的VR体验,其技术方案如下:

一种VR渲染方法,应用于穿戴式设备,所述VR渲染方法包括:

获取左眼场景图像和右眼场景图像;

将所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,获得目标纹理图像;

采用基于网格顶点的反畸变方式对所述目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

其中,所述将所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,包括:

将所述左眼场景图像和所述右眼场景图像渲染在所述纹理图像上互不重叠的两个区域。

其中,所述采用基于网格顶点的反畸变方式对所述目标纹理图像进行反畸变处理,包括:

基于所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定用于进行反畸变的网格顶点;

基于所述用于进行反畸变的网格顶点对所述目标纹理图像进行反畸变处理。

其中,所述基于所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定用于进行反畸变的网格顶点,包括:

通过所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定人眼可见的屏幕区域;

基于所述人眼可见的屏幕区域构造反畸变网格;

确定所述反畸变网格的网格顶点,作为所述用于进行反畸变的网格顶点。

其中,所述基于所述用于进行反畸变的网格顶点对所述目标纹理图像进行反畸变处理,包括:

通过所述用于进行反畸变的网格顶点和所述目标终端的屏幕的绘制视口,确定反畸变后的网格顶点;

通过所述反畸变后的网格顶点和所述目标纹理图像确定所述反畸变处理后的图像。

一种VR渲染装置,应用于穿戴式设备,所述VR渲染装置包括:获取模块、渲染模块和反畸变模块;

所述获取模块,用于获取左眼场景图像和右眼场景图像;

所述渲染模块,用于将所述获取模块获取的所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,获得目标纹理图像;

所述反畸变模块,用于采用基于网格顶点的反畸变方式对所述渲染模块渲染后的所述目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

其中,所述反畸变模块包括:确定子模块和反畸变处理子模块;

所述确定子模块,用于基于所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定用于进行反畸变的网格顶点;

所述反畸变处理子模块,用于基于所述用于进行反畸变的网格顶点对所述目标图像进行反畸变处理。

其中,所述确定子模块,具体用于通过所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定人眼可见的屏幕区域,基于所述人眼可见的屏幕区域构造反畸变网格,确定所述反畸变网格的网格顶点,作为所述用于进行反畸变的网格顶点。

一种穿戴式设备,包括:存储器和处理器;

所述存储器,用于存储程序;

所述处理器,用于执行所述程序,所述程序具体用于:

获取左眼场景图像和右眼场景图像;

将所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,获得目标纹理图像;

采用基于网格顶点的反畸变方式对所述目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现所述的VR渲染方法的各个步骤。

上述技术方案具有如下有益效果:

本发明提供的VR渲染方法、装置、穿戴式设备及可读存储介质,首先获取左眼场景图像和右眼场景图像,然后将左眼场景图像和右眼场景图像渲染到一张纹理图像上,最后,采用基于网格顶点的反畸变方式对目标图像进行反畸变处理,由上述过程可知,本发明将两眼的场景图像渲染到一张纹理图像上,从而使得纹理图像只需传递一次,与现有技术中两次传递纹理图像相比,降低了耗时,并且,本发明采用的是基于网格顶点的反畸变方式,由于不需要单独处理每一个像素,而是对相对稀疏的网格的顶点做畸变处理,因此,极大的减少了计算量,降了耗时,提高了反畸变的效率,综上,与现有技术相比,本发明大大降低了VR渲染过程的耗时,有效地提高了VR渲染效率,进而提升了用户的VR体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本发明实施例提供的VR渲染方法的流程示意图;

图2为本发明实施例提供的VR渲染方法的一具体实例的流程示意图;

图3为本发明实施例提供的VR渲染装置的结构示意图;

图4为本发明实施例提供的穿戴式设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现有技术中,VR渲染过程为:渲染模块将用户左眼看到画面渲染到一张纹理图像上,获得左眼纹理图像,将左眼纹理图像提交给反畸变模块进行反畸变处理,然后将右眼看到画面渲染到另一张纹理图像上,获得右眼纹理图像,将右眼纹理图像提交给反畸变处理模块进行反畸变处理,由于纹理图像由渲染模块传递到反畸变模块的过程是在主线进行的,时间的消耗相对较高,而VR渲染过程中需要传递两次纹理图像至反畸变模块,因此,耗时较长。

另外,现有技术中反畸变模块通过GLSL着色器中的像素着色器对纹理进行多次采样进而实现反畸变处理,由于像素着色器需要对每个像素进行采样,然后进行各种计算,计算步骤较多,而且复杂度较高,因此,耗时也较长,尤其是针对移动端的某些显示设备,这种耗时操作会严重影响渲染帧率,从而影响VR的体验。

基于此,本发明实施例提供了一种VR渲染方法,该VR渲染方法应用于穿戴式设备,请参阅图1,示出了该VR渲染方法的流程示意图,该方法可以包括:

步骤101:获取左眼场景图像以及右眼场景图像。

具体地,将按人眼的瞳距摆放的两个摄像头中的对象进行渲染和裁剪,得到与用户左眼对应的左眼场景图像和与用户右眼对应的右眼场景图像。

步骤102:将左眼场景图像和右眼场景图像渲染到一张纹理图像上,获得目标纹理图像。

为了避免两次传递纹理图像所导致的耗时,本实施例将左眼场景图像和右眼场景图像渲染到一张纹理图像,进而只进行一次纹理图像的传递。

具体的,将左眼场景图像和右眼场景图像渲染到纹理图像上互不重叠的两个区域,例如,将左眼场景图像渲染到纹理图像的第一区域,将右眼场景图像渲染到纹理图像的第二区域,第一区域与第二区域互不重叠。

步骤103:采用基于网格顶点的反畸变方式对目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

具体地,采用基于网格顶点的反畸变方式对目标图像进行反畸变处理的过程可以包括:基于目标终端的屏幕的参数,以及,头戴式设备的镜片的参数,确定用于进行反畸变的网格顶点;基于用于进行反畸变的网格顶点对目标图像进行反畸变处理。

本发明实施例提供的VR渲染方法,首先获取左眼场景图像和右眼场景图像,然后将左眼场景图像和右眼场景图像渲染到一张纹理图像上,最后,采用基于网格顶点的反畸变方式对目标图像进行反畸变处理,由上述过程可知,本发明实施例提供的VR渲染方法将两眼的场景图像渲染到一张纹理图像上,从而使得纹理图像只需传递一次,与现有技术中两次传递纹理图像相比,降低了耗时,并且,本发明实施例采用的是基于网格顶点的反畸变方式,由于不需要单独处理每一个像素,而是对相对稀疏的网格的顶点做畸变处理,因此,极大的减少了计算量,降了耗时,提高了反畸变的效率,综上,与现有技术相比,本发明实施例大大降低了VR渲染过程的耗时,有效地提高了VR渲染效率,进而提升了用户的VR体验。

请参阅图2,示出了本发明实施例提供的VR渲染方法的一具体实例的流程示意图,该VR渲染方法应用于穿戴式设备,该方法可以包括:

步骤201:获取左眼场景图像以及右眼场景图像。

具体地,将按人眼的瞳距摆放的两个摄像头中的对象进行渲染和裁剪,得到与用户左眼对应的左眼场景图像和与用户右眼对应的右眼场景图像。

步骤202:将左眼场景图像和右眼场景图像渲染到一张纹理图像上,获得目标纹理图像。

为了避免两次传递纹理图像所导致的耗时,本实施例将左眼场景图像和右眼场景图像渲染到一张纹理图像,进而只进行一次纹理图像的传递。具体的,将左眼场景图像和右眼场景图像渲染到纹理图像上互不重叠的两个区域。

步骤203:通过目标终端的屏幕的参数,以及,头戴式设备的镜片的参数,确定人眼可见的屏幕区域。

其中,目标终端的屏幕的参数可以包括屏幕的宽度和高度、绘制视口的大小等,头戴式设备的镜片参数包括镜片的视场角、折射率等。具体地,屏幕的宽度和高度可通过屏幕的DPI(每英寸的像素数)确定,进一步地,可通过系统接口从目标终端获取屏幕的DPI。

步骤204:基于人眼可见的屏幕区域构造反畸变网格,并确定反畸变网格的网格顶点。

其中,反畸变网格为用于进行反畸变的网格,反畸变网格的网格顶点即为反畸变网格中每个网格顶点的位置坐标。

步骤205:通过反畸变网格的网格顶点和目标终端的屏幕的绘制视口,确定反畸变后的网格顶点。

具体的,计算反畸变网格的网格顶点与目标终端的屏幕的绘制视口中心的距离,基于计算出的距离确定反畸变后的网格顶点。

步骤206:通过反畸变后的网格顶点和目标图像确定反畸变处理后的图像。

具体地,通过反畸变后的网格顶点将目标图像绘制到指定位置。

步骤207:将反畸变处理后的图像显示至目标终端的屏幕上。

本发明实施例提供的VR渲染方法,将两眼的场景图像渲染到一张纹理图像上,从而使得纹理图像只需传递一次,与现有技术中两次传递纹理图像相比,降低了耗时,并且,本发明实施例采用的是基于网格顶点的反畸变方式,由于不需要单独处理每一个像素,而是对相对稀疏的网格的顶点做畸变处理,因此,极大的减少了计算量,降了耗时,提高了反畸变的效率,综上,与现有技术相比,本发明实施例大大降低了VR渲染过程的耗时,有效地提高了VR渲染效率,进而提升了用户的VR体验。

与上述方法相对应,本发明实施例还提供了一种VR渲染装置,该VR渲染装置可应用于穿戴式设备,请参阅图3,示出了该VR渲染装置30包括:获取模块301、渲染模块302和反畸变模块303。其中:

获取模块301,用于获取左眼场景图像和右眼场景图像。

渲染模块302,用于将获取模块301获取的所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,获得目标纹理图像。

反畸变模块303,用于采用基于网格顶点的反畸变方式对渲染模块302渲染后的所述目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

本发明实施例提供的VR渲染装置,首先获取左眼场景图像和右眼场景图像,然后将左眼场景图像和右眼场景图像渲染到一张纹理图像上,最后,采用基于网格顶点的反畸变方式对目标图像进行反畸变处理,由上述过程可知,本发明实施例提供的VR渲染方法将两眼的场景图像渲染到一张纹理图像上,从而使得纹理图像只需传递一次,与现有技术中两次传递纹理图像相比,降低了耗时,并且,本发明实施例提供的VR渲染装置采用的是基于网格顶点的反畸变方式,由于不需要单独处理每一个像素,而是对相对稀疏的网格的顶点做畸变处理,因此,极大的减少了计算量,降了耗时,提高了反畸变的效率,综上,与现有技术相比,本发明实施例大大降低了VR渲染过程的耗时,有效地提高了VR渲染效率,进而提升了用户的VR体验。

在一种可能的实现方式中,上述实施例提供的VR渲染装置中,渲染模块302,具体用于将所述左眼场景图像和所述右眼场景图像渲染在所述纹理图像上互不重叠的两个区域。

在一种可能的实现方式中,上述实施例提供的VR渲染装置中,反畸变模块303包括:确定子模块和反畸变处理子模块。

确定子模块,用于基于所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定用于进行反畸变的网格顶点。

反畸变处理子模块,用于基于所述用于进行反畸变的网格顶点对所述目标图像进行反畸变处理。

进一步地,确定子模块,具体用于通过所述目标终端的屏幕的参数,以及,所述头戴式设备的镜片的参数,确定人眼可见的屏幕区域;基于所述人眼可见的屏幕区域构造反畸变网格;确定所述反畸变网格的网格顶点,作为所述用于进行反畸变的网格顶点。

进一步地,反畸变处理子模块,具体用于通过所述用于进行反畸变的网格顶点和所述目标终端的屏幕的绘制视口,确定反畸变后的网格顶点;通过所述反畸变后的网格顶点和所述目标纹理图像确定所述反畸变处理后的图像。

本发明实施例还提供了一种穿戴式设备,请参阅图4,示出了该穿戴式设备的结构示意图,可以包括:存储器401和处理器402。

存储器401,用于存储程序。

处理器402,用于执行所述程序,所述程序具体用于:

获取左眼场景图像和右眼场景图像;

将所述左眼场景图像和所述右眼场景图像渲染到一张纹理图像上,获得目标纹理图像;

采用基于网格顶点的反畸变方式对所述目标纹理图像进行反畸变处理,并将反畸变处理后的图像显示至目标终端的屏幕上。

本发明实施例还提供了一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,实现上述的VR渲染方法的各个步骤。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。

在本申请所提供的几个实施例中,应该理解到,所揭露的方法、装置和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

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