掌桥专利:专业的专利平台
掌桥专利
首页

图像渲染方法、装置、终端设备及存储介质

文献发布时间:2023-06-19 19:28:50


图像渲染方法、装置、终端设备及存储介质

技术领域

本发明涉及计算机技术领域,具体而言,涉及一种图像渲染方法、装置、终端设备及存储介质。

背景技术

随着科技的快速发展,各种各样的电子产品也越来越多,渲染在电子产品的绘图中是指用软件从模型生成图像的过程。前向渲染技术和延迟渲染技术也称为研究的热点。

相关技术中,前向渲染是一种逐个物件计算光照的渲染管线,但是,现有的前向渲染中存在渲染效果较差的问题。

发明内容

本发明的目的在于,针对上述现有技术中的不足,提供一种图像渲染方法、装置、终端设备及存储介质,以便解决相关技术中所存在的上述技术问题。

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

第一方面,本发明实施例提供了一种图像渲染方法,包括:

获取原始图像对应的深度图像;

根据所述深度图像中各像素的深度信息进行计算,得到法线图像;

根据所述深度图像以及所述法线图像进行处理,得到目标图像;

采用所述目标图像进行前向渲染,显示最终图像。

第二方面,本发明实施例还提供了一种图像渲染装置,包括:

获取模块,用于获取原始图像对应的深度图像;

计算模块,用于根据所述深度图像中各像素的深度信息进行计算,得到法线图像;

处理模块,用于根据所述深度图像以及所述法线图像进行处理,得到目标图像;

显示模块,用于采用所述目标图像进行前向渲染,显示最终图像。

第三方面,本发明实施例还提供了一种终端设备,包括:存储器和处理器,所述存储器存储有所述处理器可执行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面任一项所述的图像渲染方法。

第四方面,本发明实施例还提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,所述计算机程序被读取并执行时,实现上述第一方面任一项所述的图像渲染方法。

本发明的有益效果是:本发明实施例提供一种图像渲染方法,包括:获取原始图像对应的深度图像;根据深度图像中各像素的深度信息进行计算,得到法线图像;根据深度图像以及法线图像进行处理,得到目标图像;采用目标图像进行前向渲染,显示最终图像。基于深度图像和法线图像处理得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

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

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

图3为本发明实施例提供的一种图像渲染方法的流程示意图;

图4为本发明实施例提供的一种图像渲染方法的流程示意图;

图5为本发明实施例提供的一种相邻像素和延伸点的示意图;

图6为本发明实施例提供的一种相邻像素和延伸点的示意图;

图7为本发明实施例提供的一种图像渲染方法的流程示意图;

图8为本发明实施例提供的一种图像渲染方法的流程示意图;

图9为本发明实施例提供的一种图像划分的示意图;

图10为本发明实施例提供的一种图像渲染方法的流程示意图;

图11为本发明实施例提供的一种图像渲染装置的结构示意图;

图12为本发明实施例提供的一种终端设备的结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在本申请的描述中,需要说明的是,若出现术语“上”、“下”、等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该申请产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。

此外,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本申请的实施例中的特征可以相互结合。

针对相关技术中所存在的前向渲染时渲染效果差的问题,本申请实施例提供一种图形渲染方法,深度图像中各像素的深度信息进行计算,得到法线图像,根据深度图像以及法线图像进行处理,得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。

以下先对本申请实施例中所涉及的词汇进行解释说明。

Forward渲染:是指前向渲染,一种逐个物件计算光照的渲染管线。

SSAO:全称screen space ambient occlusion,屏幕空间遮蔽,是一种提高画面真实感的技术。

Depth Buffer:渲染管线中的深度缓冲。

Normal Buffer:渲染管线中的法线缓冲。

GTAO:ground truth ambient occlusion:精确屏幕空间遮蔽,为普通SSAO升级版

Pre_z:预生成Depth Buffer。

Deinterleave:去分离。

Reinterleave:重新组合。

MRT:全称Multiple render target,认识多渲染目标,是指一次渲染多个缓冲区技术。

Texture Array:纹理数组,是GPU(graphics processing unit,图形处理器)编程里面的一种多纹理格式。

本申请实施例提供的一种图像渲染方法,应用于终端设备,该终端设备可以为下述中的任一项:台式电脑、笔记本电脑、平台电脑、智能手机或者智慧屏等等。

以下对本申请实施例提供的图像渲染方法进行解释说明。

图1为本发明实施例提供的一种图像渲染方法的流程示意图,如图1所示,该方法可以包括:

S101、获取原始图像对应的深度图像。

在本申请实施例中,可以采用预设算法或者预设规则,对原始图像进行预处理,得到各像素的深度信息;将各像素的深度信息存在深度缓冲区中,得到原始图像对应的深度图像。

需要说明的是,原始图像中可以包括下述中的任一项:静态的物体、环境、人物、动物等等,本申请实施例中对于原始图像中所包含的对象不进行具体限制。

S102、根据深度图像中各像素的深度信息进行计算,得到法线图像。

在一些实施方式中,根据深度图像中各像素的深度信息进行计算,得到各像素的法线信息,将各像素的法线信息存到法线缓冲区中,可以得到法线图像。

在本申请实施例中,可以根据各像素的深度信息,依次计算各像素的法线信息;也可以根据各像素的深度信息,同时计算各像素的法线信息;还可以采用其它方式计算各像素的法线信息,本申请实施例对此不进行具体限制。

可选的,深度图像可以为depth buffer,法线图像可以为normal buffer。

S103、根据深度图像以及法线图像进行处理,得到目标图像。

其中,目标图像可以为原始图像对应的图像,相比于原始图像,目标图像所包含的信息更加丰富,既包含了深度信息还包含了法线信息。

在一些实施方式中,终端设备的显卡可以将深度图像以及法线图像传入终端设备的GPU中,终端设备的GPU可以根据深度图像以及法线图像进行处理,得到目标图像。

S104、采用目标图像进行前向渲染,显示最终图像。

值得说明的是,目标图像包含了深度信息还包含了法线信息,目标图像可以作为一个中间变量,采用目标图像进行前向渲染,使得最终图像的呈现效果更佳。

在本申请实施例中,采用目标图像进行前向渲染,可以在终端设备自带的显示屏上显示最终图像,当然,也可以在终端设备所外接的显示屏上显示最终图像,本申请实施例对此不进行具体限制。

综上所述,本发明实施例提供一种图像渲染方法,包括:获取原始图像对应的深度图像;根据深度图像中各像素的深度信息进行计算,得到法线图像;根据深度图像以及法线图像进行处理,得到目标图像;采用目标图像进行前向渲染,显示最终图像。基于深度图像和法线图像处理得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。

图2为本发明实施例提供的一种图像渲染方法的流程示意图,如图2所示,上述S101中获取原始图像对应的深度图像的过程,可以包括:

S201、将原始图像中相同的虚拟静态物体打包至同一组中,得到多个组。

其中,将原始图像中相同的虚拟静态物体打包至一个相同材质的组中,得到多个组,每个组中可以包括打包好的内容,这样在后续进行预设操作时,可以减少状态切换,继而可以提高进行预设操作的效率。

S202、采用预设操作对多个组中的内容进行处理,得到深度图像。

其中,预设操作可以为pre_z的操作。

在一些实施方式中,在Forward渲染管线最开始,进行pre_z的操作,对多个组中的内容进行处理,得到一个当前屏幕分辨率的深度图像。

在本申请实施例中,可以在Forward渲染管线中,先做一次pre_z操作,得到pre_zdepth buffer之后,再通过对Depth buffer特定的采样规则,生成精确的Normal buffer。

综上所述,将原始图像中相同的虚拟静态物体打包至同一组中,得到多个组,采用预设操作对多个组中的内容进行处理,得到深度图像,可以提高进行预设操作的效率,继而可以提高获取深度图像的效率。

可选的,图3为本发明实施例提供的一种图像渲染方法的流程示意图,如图3所示,上述S102中根据深度图像中各像素的深度信息进行计算,得到法线图像的过程,可以包括:

S301、确定目标像素的第一方向的相邻像素,以及第二方向的相邻像素。

其中,目标像素为深度图像中各像素中的任一像素。

另外,第一方向和第二方向可以为相反的方向。

在一些实施方式中,在目标像素的第一方向上确定出与目标像素相邻的预设数量个像素,得到第一方向的相邻像素;在目标像素的第二方向上确定出与目标像素相邻的预设数量个像素,得到第二方向的相邻像素。

值得说明的是,在上述S301之前,可以先将深度图像从投影空间转换到摄像机空间,摄像机空间的depth buffer可以称为view depth buffer。

S302、根据第一方向的相邻像素的深度信息,以及第二方向的相邻像素的深度信息,确定目标像素对应的目标平面。

其中,目标平面为第一方向的相邻像素所在的第一平面,或者,第二方向的相邻像素所在的第二平面。

在本申请实施例中,可以根据第一方向的相邻像素的深度信息,以及第二方向的相邻像素的深度信息,确定目标像素在第一方向的相邻像素所在的第一平面,还是在第二方向的相邻像素所在的第二平面上,从而可以确定出目标像素的归属平面。

S303、根据目标像素对应的目标平面,计算法线图像。

其中,目标像素对应的目标平面,又可以称为目标像素的归属平面。

在本申请实施例中,可以采用上述S301至S302的方式,计算深度图像中各像素对应的归属平面,继而根据各像素对应的归属平面,计算法线图像。

需要说明的是,可以同时计算深度图像中各像素对应的归属平面,也可以依次计算深度图像中各像素对应的归属平面,还可以采用其它方式计算深度图像中各像素对应的归属平面,本申请实施例对此不进行具体限制。

综上所述,采用上述S301至S303的过程,来计算得到法线图像,可以提升获取的法线图像的准确率,使得获取的法线图像更加准确。

可选的,图4为本发明实施例提供的一种图像渲染方法的流程示意图,如图4所示,上述S302中根据第一方向的相邻像素的深度信息,以及第二方向的相邻像素的深度信息,确定目标像素对应的目标平面的过程,可以包括:

S401、根据第一方向的相邻像素的深度信息,计算第一平面对应的第一延伸点的深度信息。

S402、根据第二方向的相邻像素的深度信息,计算第二平面对应的第二延伸点的深度信息。

其中,第一延伸点可以为,第一方向的相邻像素所在第一平面延长线上的点;第二延伸点可以为,第二方向的相邻像素所在第二平面延长线上的点。

在一些实施方式中,可以采用预设透视校正插值公式,根据第一方向的相邻像素的深度信息,计算第一平面对应的第一延伸点的深度信息。同理的,可以采用预设透视校正插值公式,根据第二方向的相邻像素的深度信息,计算第二平面对应的第二延伸点的深度信息。

在本申请实施例中,第一方向的相邻像素的数量可以为两个,第二方向的相邻像素的数量可以为两个。第一方向可以为左方向,第二方向可以为右方向。

上述透视校正插值公式可以表示为:

其中,Z表示位于延伸点和一个相邻像素之间的另一个相邻像素的深度信息,Z

图5为本发明实施例提供的一种相邻像素和延伸点的示意图,图6为本发明实施例提供的一种相邻像素和延伸点的示意图,如图5和6中的(a)所示,a和b为第一方向的相邻像素,d和e为第二方向的相邻像素,c为目标像素,如图5和6中的(b)所示,第一延伸点可以为c1,第二延伸点可以为c2。

上述透视校正插值公式中,Z可以为b的深度信息,Z

需要说明的是,可以先执行S401的过程再执行S402的过程,也可以先执行S402的过程在执行S401的过程,还可以同时执行上述S401以及S402的过程,本申请实施例对此不进行具体限制。

S403、根据第一延伸点的深度信息、第二延伸点的深度信息以及目标像素的深度信息,确定目标平面。

在一些实施方式中,可以对目标像素的深度信息,分别与第一延伸点的深度信息、第二延伸点的深度信息进行比较,确定目标像素对应的目标平面。

可选的,图7为本发明实施例提供的一种图像渲染方法的流程示意图,如图7所示,上述S403中根据第一延伸点的深度信息、第二延伸点的深度信息以及目标像素,确定目标平面的过程,可以包括:

S701、从第一延伸点的深度信息、第二延伸点的深度信息中,确定与目标像素的深度信息更接近的目标延伸点的深度信息。

其中,目标延伸点可以为第一延伸点或者第二延伸点。

需要说明的是,可以计算第一延伸点的深度信息和目标像素的深度信息的第一距离,计算、第二延伸点的深度信息和目标像素的深度信息的第二距离;若第一距离小于第二距离,则第一延伸点为目标延伸点;若第二距离小于第一距离,则第二延伸点为目标延伸点。

S702、将目标延伸点对应的平面,作为目标平面。

在本申请实施例中,若目标延伸点为第一延伸点,则目标平面为第一平面;若目标延伸点为第二延伸点,则目标平面为第二平面。

在实际应用中,针对图5和6中的示例,目标像素c对应的目标平面可以为c和d所在的平面。

可选的,图8为本发明实施例提供的一种图像渲染方法的流程示意图,如图8所示,上述S103中根据深度图像以及法线图像进行处理,得到目标图像的过程,可以包括:

S801、将深度图像划分为多个子深度图像。

其中,深度图像的分辨率可以为当前屏幕分辨率。

在一些实施方式中,可以将当前屏幕分辨率的长和宽各除以预设值,得打一个缩小版的小屏幕的长和宽,则将深度图像划分为多个子深度图像,每个子深度图像中包括一份像素的深度信息。其中,预设值可以根据实际需求进行设置,示例的,预设值可以为4,则子深度图像的数量可以为14。

其中,可以创建多个缓冲区,将多份像素的深度信息去分离(Deinterleave)至多个缓冲区中,得到多个子深度图像。其中,创建的多个缓冲区可以为MRT Buffer。

可选的,当前屏幕分辨率的长和宽,可以表示为:src_screen_w,src_screen_h。缩小版的小屏幕的长和宽,可以表示为:dst_screen_w,dst_screen_h。即dst_screen_w=src_screen_w/4,dst_screen_h=src_screen_h/4。

图9为本发明实施例提供的一种图像划分的示意图,如图9所示,该全屏图像a中包括多个像素,可以对图像a进行采样,将全屏图像(深度图像)得到四张图像(多个子深度图像)a1、a2、a3、a4。

S802、采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像。

其中,纹理数组又可以称为TextureArray。

在一些实施方式中,终端设备可以采用SSAO算法,通过纹理数组的方式,将法线图像和多个子深度图像传输到终端设备的GPU中,采用GPU计算得到目标图像。

其中,SSAO算法可以采用GTAO的计算方式。

可选的,图10为本发明实施例提供的一种图像渲染方法的流程示意图,如图10所示,上述S802中采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像的过程,可以包括:

S1001、采用纹理数组的方式,根据法线图像和多个子深度图像,得到多个子目标图像。

在一些实施方式中,终端设备可以采用SSAO算法,通过纹理数组的方式,将法线图像和多个子深度图像传输到终端设备的GPU中,采用GPU计算得到多个子目标图像,继而采用MRT输出多个子目标图像。

在实际应用中,多个子目标图像可以称为AO Buffer或者MRT AO Buffer。可选的,子目标图像的数量可以为16个,即AO Buffer的数量可以为16个。

S1002、采用纹理数组的方式,对多个子目标图像进行组合,得到目标图像。

在本申请实施例中,可以采用纹理数组的方式,可以将多个子目标图像(多个MRTAO Buffer)进行组合输入到GPU中,采用GPU对多个子目标图像进行reinterleave(重新组合),得到目标图像。

综上所述,将深度图像划分为多个子深度图像,采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像,可以提高处理效率。采用deinterleave和reinterleave方式,将屏幕大小的深度图像分离成小块的多个子深度图像之后,再重新合成屏幕大小的目标图像。这种小块的多个子深度图像是缓存友好的方式,计算SSAO的时候速度会加快,从而提高了处理效率。

可选的,上述S104中采用目标图像进行前向渲染,显示最终图像的过程,可以包括:

根据目标图像进行光照计算,以采用目标图像进行前向渲染,显示最终图像。

在一些实施方式中,在Forward渲染管线中,在物体做光照计算的时候,可以根据目标图像进行光照计算,以采用目标图像进行前向渲染,显示最终图像。

在本申请实施例中,可以对当前的Depth buffer做deinterleave操作,将当前的全屏Depth buffer交错分离成4X4(16)个小型depth buffer(子深度图像)。接着开始SSAO的计算,对这16个小型的depth buffer分别进行AO计算,计算AO算法采用GTAO。当得到16个小AO结果(子目标图像)之后,对这16个AO结果进行reinterleave,合并成一个大的最终结果的AO Buffer(目标图像)。最后,在Forward渲染管线中物体渲染的时候,传入AO Buffer在光照阶段进行物体最终的AO计算。

本发明实施例提供一种图像渲染方法,包括:获取原始图像对应的深度图像;根据深度图像中各像素的深度信息进行计算,得到法线图像;根据深度图像以及法线图像进行处理,得到目标图像;采用目标图像进行前向渲染,显示最终图像。基于深度图像和法线图像处理得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。而且,将深度图像划分为多个子深度图像,采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像,可以提高处理效率。

下述对用以执行本申请所提供的图像渲染方法的图像渲染装置、终端设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述图像渲染方法的相关内容,下述不再赘述。

可选的,图11为本发明实施例提供的一种图像渲染装置的结构示意图,如图11所示,该图像渲染装置可以包括:

获取模块1101,用于获取原始图像对应的深度图像;

计算模块1102,用于根据所述深度图像中各像素的深度信息进行计算,得到法线图像;

处理模块1103,用于根据所述深度图像以及所述法线图像进行处理,得到目标图像;

显示模块1004,用于采用所述目标图像进行前向渲染,显示最终图像。

可选的,所述获取模块1101,具体用于将所述原始图像中相同的虚拟静态物体打包至同一组中,得到多个组;采用预设操作对所述多个组中的内容进行处理,得到所述深度图像。

可选的,所述计算模块1102,具体用于确定目标像素的第一方向的相邻像素,以及第二方向的相邻像素,其中,所述目标像素为所述深度图像中所述各像素中的任一像素;根据所述第一方向的相邻像素的深度信息,以及所述第二方向的相邻像素的深度信息,确定目标像素对应的目标平面,其中,所述目标平面为所述第一方向的相邻像素所在的第一平面,或者,所述第二方向的相邻像素所在的第二平面;根据所述目标像素对应的目标平面,计算所述法线图像。

可选的,所述计算模块1102,具体用于根据所述第一方向的相邻像素的深度信息,计算所述第一平面对应的第一延伸点的深度信息;根据所述第二方向的相邻像素的深度信息,计算所述第二平面对应的第二延伸点的深度信息;根据所述第一延伸点的深度信息、所述第二延伸点的深度信息以及所述目标像素的深度信息,确定所述目标平面。

可选的,所述计算模块1102,具体用于从所述第一延伸点的深度信息、所述第二延伸点的深度信息中,确定与所述目标像素的深度信息更接近的目标延伸点的深度信息;将所述目标延伸点对应的平面,作为所述目标平面。

可选的,所述处理模块1103,具体用于将所述深度图像划分为多个子深度图像;采用纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到所述目标图像。

可选的,所述处理模块1103,具体用于采用所述纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到多个子目标图像;采用所述纹理数组的方式,对所述多个子目标图像进行组合,得到所述目标图像。

可选的,所述显示模块1104,具体用于根据所述目标图像进行光照计算,以采用所述目标图像进行前向渲染,显示所述最终图像。

上述装置用于执行前述实施例提供的方法,其实现原理和技术效果类似,在此不再赘述。

以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

图12为本发明实施例提供的一种终端设备的结构示意图,该终端设备包括:处理器1201、存储器1202。

存储器1202用于存储程序,处理器1201调用存储器1202存储的程序,以执行上述方法实施例。具体实现方式和技术效果类似,这里不再赘述。

示例的,该方法可以包括:

获取原始图像对应的深度图像;

根据所述深度图像中各像素的深度信息进行计算,得到法线图像;

根据所述深度图像以及所述法线图像进行处理,得到目标图像;

采用所述目标图像进行前向渲染,显示最终图像。

可选的,所述获取原始图像对应的深度图像,包括:

将所述原始图像中相同的虚拟静态物体打包至同一组中,得到多个组;

采用预设操作对所述多个组中的内容进行处理,得到所述深度图像。

可选的,所述根据所述深度图像中各像素的深度信息进行计算,得到所述法线图像,包括:

确定目标像素的第一方向的相邻像素,以及第二方向的相邻像素,其中,所述目标像素为所述深度图像中所述各像素中的任一像素;

根据所述第一方向的相邻像素的深度信息,以及所述第二方向的相邻像素的深度信息,确定目标像素对应的目标平面,其中,所述目标平面为所述第一方向的相邻像素所在的第一平面,或者,所述第二方向的相邻像素所在的第二平面;

根据所述目标像素对应的目标平面,计算所述法线图像。

可选的,所述根据所述第一方向的相邻像素的深度信息,以及所述第二方向的相邻像素的深度信息,确定目标像素对应的目标平面,包括:

根据所述第一方向的相邻像素的深度信息,计算所述第一平面对应的第一延伸点的深度信息;

根据所述第二方向的相邻像素的深度信息,计算所述第二平面对应的第二延伸点的深度信息;

根据所述第一延伸点的深度信息、所述第二延伸点的深度信息以及所述目标像素的深度信息,确定所述目标平面。

可选的,所述根据所述第一延伸点的深度信息、所述第二延伸点的深度信息以及所述目标像素,确定所述目标平面,包括:

从所述第一延伸点的深度信息、所述第二延伸点的深度信息中,确定与所述目标像素的深度信息更接近的目标延伸点的深度信息;

将所述目标延伸点对应的平面,作为所述目标平面。

可选的,所述根据所述深度图像以及所述法线图像进行处理,得到目标图像,包括:

将所述深度图像划分为多个子深度图像;

采用纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到所述目标图像。

可选的,所述采用纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到所述目标图像,包括:

采用所述纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到多个子目标图像;

采用所述纹理数组的方式,对所述多个子目标图像进行组合,得到所述目标图像。

可选的,所述采用所述目标图像进行前向渲染,显示最终图像,包括:

根据所述目标图像进行光照计算,以采用所述目标图像进行前向渲染,显示所述最终图像。

综上所述,本发明实施例提供一种图像渲染方法,包括:获取原始图像对应的深度图像;根据深度图像中各像素的深度信息进行计算,得到法线图像;根据深度图像以及法线图像进行处理,得到目标图像;采用目标图像进行前向渲染,显示最终图像。基于深度图像和法线图像处理得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。而且,将深度图像划分为多个子深度图像,采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像,可以提高处理效率。

可选地,本发明还提供一种程序产品,例如计算机可读存储介质,包括程序,该程序在被处理器执行时用于执行上述方法实施例。

示例的,该方法可以包括:

获取原始图像对应的深度图像;

根据所述深度图像中各像素的深度信息进行计算,得到法线图像;

根据所述深度图像以及所述法线图像进行处理,得到目标图像;

对所述目标图像进行前向渲染,显示所述目标图像。

可选的,所述获取原始图像对应的深度图像,包括:

将所述原始图像中相同的虚拟静态物体打包至同一组中,得到多个组;

采用预设操作对所述多个组中的内容进行处理,得到所述深度图像。

可选的,所述根据所述深度图像中各像素的深度信息进行计算,得到所述法线图像,包括:

确定目标像素的第一方向的相邻像素,以及第二方向的相邻像素,其中,所述目标像素为所述深度图像中所述各像素中的任一像素;

根据所述第一方向的相邻像素的深度信息,以及所述第二方向的相邻像素的深度信息,确定目标像素对应的目标平面,其中,所述目标平面为所述第一方向的相邻像素所在的第一平面,或者,所述第二方向的相邻像素所在的第二平面;

根据所述目标像素对应的目标平面,计算所述法线图像。

可选的,所述根据所述第一方向的相邻像素的深度信息,以及所述第二方向的相邻像素的深度信息,确定目标像素对应的目标平面,包括:

根据所述第一方向的相邻像素的深度信息,计算所述第一平面对应的第一延伸点的深度信息;

根据所述第二方向的相邻像素的深度信息,计算所述第二平面对应的第二延伸点的深度信息;

根据所述第一延伸点的深度信息、所述第二延伸点的深度信息以及所述目标像素的深度信息,确定所述目标平面。

可选的,所述根据所述第一延伸点的深度信息、所述第二延伸点的深度信息以及所述目标像素,确定所述目标平面,包括:

从所述第一延伸点的深度信息、所述第二延伸点的深度信息中,确定与所述目标像素的深度信息更接近的目标延伸点的深度信息;

将所述目标延伸点对应的平面,作为所述目标平面。

可选的,所述根据所述深度图像以及所述法线图像进行处理,得到目标图像,包括:

将所述深度图像划分为多个子深度图像;

采用纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到所述目标图像。

可选的,所述采用纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到所述目标图像,包括:

采用所述纹理数组的方式,根据所述法线图像和所述多个子深度图像,得到多个子目标图像;

采用所述纹理数组的方式,对所述多个子目标图像进行组合,得到所述目标图像。

可选的,所述对所述目标图像进行前向渲染,显示所述目标图像,包括:

根据所述目标图像进行光照计算,以对所述目标图像进行前向渲染,显示所述目标图像。

综上所述,本发明实施例提供一种图像渲染方法,包括:获取原始图像对应的深度图像;根据深度图像中各像素的深度信息进行计算,得到法线图像;根据深度图像以及法线图像进行处理,得到目标图像;采用目标图像进行前向渲染,最终图像。基于深度图像和法线图像处理得到目标图像,使得目标图像中所包含的信息更加丰富,继而采用目标图像进行前向渲染,可以提升前向渲染的渲染效果,使得最终图像的显示效果更佳,提高了用户体验。而且,将深度图像划分为多个子深度图像,采用纹理数组的方式,根据法线图像和多个子深度图像,得到目标图像,可以提高处理效率。

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

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

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 脸部检测方法、脸部图像渲染方法、装置及存储介质
  • 图像复原的方法、装置、存储介质和终端设备
  • 处理应用中图像的方法、装置、终端设备和存储介质
  • 一种图像分类方法、装置、终端设备及可读存储介质
  • 一种视频图像的分割方法、装置、终端设备及存储介质
  • 图像渲染方法、装置、终端设备及计算机可读存储介质
  • 图像渲染方法、装置、终端设备及存储介质
技术分类

06120115927093