CN116485989A - 一种图像处理方法、装置、设备及存储介质 - Google Patents
一种图像处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116485989A CN116485989A CN202310703131.5A CN202310703131A CN116485989A CN 116485989 A CN116485989 A CN 116485989A CN 202310703131 A CN202310703131 A CN 202310703131A CN 116485989 A CN116485989 A CN 116485989A
- Authority
- CN
- China
- Prior art keywords
- shadow
- map
- frame
- cascade
- pixel point
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 31
- 238000012545 processing Methods 0.000 claims abstract description 103
- 238000000034 method Methods 0.000 claims abstract description 74
- 239000011159 matrix material Substances 0.000 claims description 144
- 238000013507 mapping Methods 0.000 claims description 129
- 230000004927 fusion Effects 0.000 claims description 64
- 238000006243 chemical reaction Methods 0.000 claims description 48
- 230000008569 process Effects 0.000 claims description 43
- 238000009877 rendering Methods 0.000 claims description 30
- 238000004590 computer program Methods 0.000 claims description 17
- 238000001914 filtration Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 101150064138 MAP1 gene Proteins 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000007 visual effect Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009432 framing Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/60—Shadow generation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请实施例公开了一种图像处理方法、装置、设备及存储介质。其中方法包括:获取第i帧级联阴影贴图,对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面中的像素点进行第二重投影处理,得到M个第二贴图,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。可见,通过第i帧级联阴影贴图中的M个阴影贴图的重投影结果和第i+1个画面帧中各个像素点的重投影结果对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,可以降低更新联阴影贴图所需的计算资源。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种图像处理方法、一种图像处理装置、一种计算机设备及一种计算机可读存储介质。
背景技术
随着科技研究的进步,图像渲染技术飞速发展。图像渲染技术可以通过对图像中的像素点进行渲染,来还原目标场景;例如,在呈现画面帧的过程中,可以通过画面帧对应的级联阴影贴图对该画面帧中的像素点进行渲染,来得到渲染后的画面帧(即用于呈现的画面帧)。实践发现,当目标场景较为复杂时(如目标场景中存在阴影),对级联阴影贴图进行更新需要消耗大量计算资源。
发明内容
本申请实施例提供了一种图像处理方法、装置、设备及计算机可读存储介质,能够降低更新联阴影贴图所需的计算资源。
一方面,本申请实施例提供了一种图像处理方法,包括:
获取第i帧级联阴影贴图,第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
对第i帧级联阴影贴图中的M个阴影贴图进行重投影处理,得到M个第一贴图,M为正整数;
获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
一方面,本申请实施例提供了一种图像处理装置,该图像处理装置包括:
获取单元,用于获取第i帧级联阴影贴图,第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
处理单元,用于对第i帧级联阴影贴图中的M个阴影贴图进行重投影处理,得到M个第一贴图,M为正整数;
获取单元,还用于获取第i+1个画面帧中各个像素点的深度缓冲信息;
处理单元,还用于基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
以及用于基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
在一种实施方式中,每个阴影贴图携带有该阴影贴图中各个像素点的深度值;处理单元对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图的过程包括:
获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
在一种实施方式中,处理单元用于,通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新,具体用于:
获取第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵;
通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行第一转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置进行第二转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置。
在一种实施方式中,处理单元基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图的过程包括:
基于第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中更新后的位置,确定第k个像素点的贴图位置和深度更新值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度更新值,则将目标像素点的深度值更新为第k个像素点的深度更新值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配;第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点,为第i帧级联阴影贴图的第j个阴影贴图中的任一个像素点。
在一种实施方式中,处理单元基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图的过程包括:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
在一种实施方式中,处理单元用于,通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置,具体用于:
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置。
在一种实施方式中,处理单元基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度值,则将目标像素点的深度值更新为第k个像素点的深度值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配,第i+1个画面帧中第k个像素点,为第i+1个画面帧中的任一个像素点。
在一种实施方式中,处理单元用于,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,具体用于:
将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图;
对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图;
通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
在一种实施方式中,处理单元对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图的过程包括:
从与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中获取目标像素点的相邻像素点的深度值,目标像素点的深度值未包含于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中;
基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值。
在一种实施方式中,目标像素点的相邻像素点的数量为Q,Q为大于1的整数;处理单元用于,基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值,具体用于:
将Q个相邻像素点的深度值中的中间值或最小值,确定为目标像素点的深度值;或者,
将Q个相邻像素点的深度值的平均值,确定为目标像素点的深度值;或者,
通过预测模型对Q个相邻像素点的深度值进行预测处理,得到目标像素点的深度值。
在一种实施方式中,处理单元还用于:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧。
在一种实施方式中,处理单元基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若第k个像素点的深度值大于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为阴影区域像素点;
若第k个像素点的深度值小于或等于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为非阴影区域像素点;
其中,目标像素点在第i+1帧级联阴影贴图的第j个阴影贴图中的位置与第k个像素点的贴图位置匹配。
相应地,本申请提供了一种计算机设备,该计算机设备包括:
存储器,存储器中存储有计算机程序;
处理器,用于加载计算机程序实现上述图像处理方法。
相应地,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述图像处理方法。
相应地,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图像处理方法。
本申请实施例中,获取第i帧级联阴影贴图,对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。可见,通过第i帧级联阴影贴图中的M个阴影贴图的重投影结果和第i+1个画面帧中各个像素点的重投影结果对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,可以降低更新联阴影贴图所需的计算资源。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种图像处理场景图;
图2为本申请实施例提供的一种图像处理方法的流程图;
图3为本申请实施例提供的另一种图像处理方法的流程图;
图4a为本申请实施例提供的一种空间位置转换关系示意图;
图4b为本申请实施例提供的一种目标像素点的相邻像素点的示意图;
图4c为本申请实施例提供的另一种目标像素点的相邻像素点的示意图;
图5为本申请实施例提供的一种图像处理装置的结构示意图;
图6为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及与图像渲染相关的技术,下面对涉及的相关术语进行简单介绍:
阴影贴图(Shadow Map):是指在场景的光源位置向光源照射的方向绘制的一张场景的深度图;阴影贴图可以用于渲染场景中的阴影。
级联阴影贴图(Cascade Shadow Map):一种用于绘制阴影效果的技术,其原理是通过在场景的相机视角(即当前观测视角)上绘制一张或多张阴影贴图,来提高场景的渲染图像中的阴影精度。具体来说,若与相机视角关联的采集设备的视锥体按照与采集设备的距离被划分为N个空间块,则需要在该相机视角上绘制N张阴影贴图,每张阴影贴图对应视锥体的一个空间块,N为正整数。
针对上述图像渲染技术,本申请实施例提供了一种图像处理方法,能够降低更新联阴影贴图所需的计算资源。图1为本申请实施例提供的一种图像处理场景图,如图1所示,本申请提供的图像处理场景中包括计算机设备101,本申请提供的图像处理方案可由计算机设备101执行,计算机设备101可以是终端设备,也可以是服务器。其中,终端设备可以包括但不限于:智能手机(如Android手机、IOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(Mobile Internet Devices,简称MID)、车载终端、智能家电、可穿戴设备等,本申请实施例对此不做限定。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不做限定。
需要说明的是,图1中计算机设备的数量仅用于举例,并不构成本申请的实际限定;例如,图1中还可以包括计算机设备102(如用于向计算机设备101发送获取第i帧级联阴影贴图),计算机设备101和计算机设备102之间可以通过有线或无线的方式进行连接,本申请对此不作限制。
在具体实现中,该图像处理方案的大致原理如下:
(1)计算机设备101获取第i帧级联阴影贴图,第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数。在一种实施方式中,计算机设备101基于第i个画面帧对应的场景深度将第i个画面帧(相机视角)对应的采集设备的视锥体划分为N个空间块(每个空间块深度范围不同,且互不重叠),N为正整数;并在场景的光源视角下生成各个空间块的包围盒。在得到各个空间块的包围盒后,计算机设备101基于每个空间块的包围盒生成该空间块的阴影贴图,并将各个空间块的阴影贴图添加至贴图集合中,得到第i帧级联阴影贴图。可以理解的是,在上述实施方式中,第i帧级联阴影贴图中包括N个阴影贴图。
(2)计算机设备101对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,M为正整数。将第i帧级联阴影贴图中的任一个阴影贴图表示为第i帧级联阴影贴图中的第j个阴影贴图。对于第i帧级联阴影贴图中的第j个阴影贴图来说,第一重投影处理是指:通过第i帧级联阴影贴图中的第j个阴影贴图的阴影投影逆矩阵,将第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间(UV空间)中的位置(如坐标),转换为世界空间中的位置,再通过第i+1帧级联阴影贴图的阴影投影矩阵,将第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在世界空间中的位置,转换为阴影空间中的位置,以达到对第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新的目的。在得到第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置后,通过第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图。待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图(如各个像素点的深度值均为预设值的空白贴图)。
(3)计算机设备101获取第i+1个画面帧的深度缓冲信息(Depth Buffer),并基于i+1个画面帧的深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图。第i+1个画面帧的深度缓冲信息中携带有第i+1个画面帧中各个像素点在相机视角(观测视角)的深度值。M个第一贴图与M个第二贴图一一对应,相对应的第一贴图和第二贴图用于对第i帧级联阴影贴图中的M个阴影贴图中的同一个阴影贴图进行更新。
计算机设备101基于i+1个画面帧的深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理是指:计算机设备101通过每个像素点在第i+1个画面帧中的位置,以及该像素点的深度值,确定该像素点在视图空间中的位置。再通过第i+1个画面帧对应的采集设备(不同画面帧对应的采集设备可以相同或者不同,每个采集设备对应一个视图投影矩阵)的视图投影矩阵(可以用于指示像素点在视图空间的位置和在世界空间中的位置的转换(投影)关系)将第i+1个画面帧中各个像素点在视图空间(与第i+1个画面帧的观测视角相对应)中的位置,转换为世界空间中的位置。在将第i+1个画面帧中各个像素点在视图空间中的位置,转换为世界空间中的位置后,计算机设备101通过第i+1帧级联阴影贴图的阴影投影矩阵,将第i+1个画面帧中的各个像素点在世界空间中的位置,转换为阴影空间中的位置。再基于第i+1个画面帧中的各个像素点在阴影空间中的位置对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图。待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图(如各个像素点的深度值均为预设值的空白贴图)。
(4)计算机设备基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。其中,M个第一贴图与M个第二贴图一一对应,第i+1帧级联阴影贴图中的第j个阴影贴图,是基于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,以及与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,对第i帧级联阴影贴图中的第j个阴影贴图进行更新得到的,第i+1帧级联阴影贴图用于渲染第i+1个画面帧。在一种实施方式中,计算机设备101将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图,并对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图。在得到M个滤波后的融合贴图后,计算机设备101通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
本申请实施例中,获取第i帧级联阴影贴图,对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。可见,通过第i帧级联阴影贴图中的M个阴影贴图的重投影结果和第i+1个画面帧的深度缓冲信息的重投影结果对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,可以降低更新联阴影贴图所需的计算资源。
基于上述图像处理方案,本申请实施例提出更为详细的图像处理方法,下面将结合附图对本申请实施例提出的图像处理方法进行详细介绍。
请参阅图2,图2为本申请实施例提供的一种图像处理方法的流程图,该图像处理方法可以由计算机设备执行,该计算机设备具体可以是终端设备或者服务器。如图2所示,该图像处理方法可包括如下步骤S201-S204:
S201、获取第i帧级联阴影贴图。
第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数。一个画面帧对应一帧级联阴影贴图。在一种实施方式中,计算机设备基于第i个画面帧对应的场景深度将第i个画面帧(相机视角)对应的采集设备的视锥体(frustum)划分为N个空间块(每个空间块深度范围不同,且互不重叠),N为正整数;并在场景的光源视角下生成各个空间块的包围盒。在得到各个空间块的包围盒后,计算机设备基于每个空间块的包围盒生成该空间块的阴影贴图,并将各个空间块的阴影贴图添加至贴图集合中,得到第i帧级联阴影贴图。每个阴影贴图携带有该阴影贴图中各个像素点的深度值。级联阴影贴图(Cascade Shadow Map)是一种用于绘制阴影效果的图像渲染技术,通过在场景的相机视角(即当前观测视角)上绘制一张或多张阴影贴图(在场景的光源位置向光源照射的方向绘制的一张场景的深度图),来提高场景的渲染图像中的阴影精度。也就是说,每个画面帧对应的级联阴影贴图是由一个或多个阴影贴图组成的。
S202、对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图。
第i帧级联阴影贴图中的第j个阴影贴图为第i帧级联阴影贴图中的M个阴影贴图中的任一个阴影贴图;j,M均为小于等于N的正整数,N为第i个画面帧对应的采集设备的视锥体被划分后的空间块的数量。对于第i帧级联阴影贴图中的第j个阴影贴图来说,第一重投影处理是指:通过第i帧级联阴影贴图中的第j个阴影贴图的阴影投影逆矩阵,将第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间(UV空间)中的位置(如坐标),转换为世界空间中的位置,再通过第i+1帧级联阴影贴图的阴影投影矩阵,将第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在世界空间中的位置,转换为阴影空间中的位置,以达到对第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新的目的。
其中,阴影投影矩阵和阴影投影逆矩阵用于指示同一个像素点在阴影空间中的位置与该像素点在世界空间中的位置之间的转换关系。第i帧级联阴影贴图中的第j个阴影贴图的阴影投影逆矩阵与第i帧级联阴影贴图中的第j个阴影贴图的阴影投影矩阵互为逆矩阵。具体来说,第i帧级联阴影贴图中的第j个阴影贴图的阴影投影矩阵,用于将世界空间中的像素点投影至阴影空间中;第i帧级联阴影贴图中的第j个阴影贴图的阴影投影逆矩阵,用于将阴影空间中的像素点投影至世界空间中;同理,第i+1帧级联阴影贴图中的第j个阴影贴图的阴影投影矩阵,用于将世界空间中的像素点投影至阴影空间中。
在得到第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置后,通过第i帧级联阴影贴图中的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图。待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图(如各个像素点的深度值均为预设值的空白贴图)。
在一种实施方式中,每个阴影贴图携带有该阴影贴图中各个像素点的深度值。计算机设备对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M(M为正整数)个第一贴图的过程包括:获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,再基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置。
进一步地,计算机设备通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新;并基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图。其中,待更新贴图可以是指第i帧级联阴影贴图的第j个阴影贴图,也可以是指原始贴图,或者其他预设的贴图;原始切图中各个像素点的深度值均为预设值(如1,正无穷等)。
S203、获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图。
第i+1个画面帧的深度缓冲信息中携带(存储)有第i+1个画面帧中各个像素点在相机视角(观测视角)的深度值。M个第一贴图与M个第二贴图一一对应,相对应的第一贴图和第二贴图用于对第i帧级联阴影贴图中的M个阴影贴图中的同一个阴影贴图进行更新。举例来说,假设目标第一贴图为与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,目标第二贴图为与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,则目标第一贴图和目标第二贴图相互对应,且目标第一贴图和目标第二贴图均用于对第i帧级联阴影贴图中的M个阴影贴图中的第j个阴影贴图进行更新。
在一种实施方式中,一方面,计算机设备可以通过每个像素点在第i+1个画面帧中的位置(x,y),以及该像素点的深度值(z),确定该像素点在视图空间中的位置(x,y,z)。另一方面,计算机设备获取第i+1个画面帧对应的(采集设备的)视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;其中,不同画面帧对应的采集设备可以相同或者不同,每个采集设备对应一个视图投影矩阵,视图投影矩阵可以用于指示像素点在视图空间的位置和在世界空间中的位置的转换(投影)关系。举例来说,假设画面帧1对应采集设备1,画面帧2对应采集设备2,采集设备1对应视图投影矩阵1,采集设备2对应视图投影矩阵2;则画面帧1对应的视图投影矩阵为视图投影矩阵1,画面帧2对应的视图投影矩阵2;视图投影矩阵1可以用于将画面帧1中的像素点在视图空间的位置,转换为画面帧1中的像素点在世界空间中的位置;视图投影矩阵2可以用于将画面帧2中的像素点在视图空间的位置,转换为画面帧2中的像素点在世界空间中的位置。阴影投影矩阵和阴影投影逆矩阵用于指示同一个像素点在阴影空间中的位置与该像素点在世界空间中的位置之间的转换关系;第i+1帧级联阴影贴图中的第j个阴影贴图的阴影投影矩阵,用于将世界空间中的像素点投影至阴影空间中。
接着计算机设备通过第i+1个画面帧对应的(采集设备的)视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置。进一步地,计算机设备基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图。其中,待更新贴图可以是指第i帧级联阴影贴图的第j个阴影贴图,也可以是指原始贴图,或者其他预设的贴图;原始切图中各个像素点的深度值均为预设值(如1,正无穷等)。
S204、基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。
第i+1帧级联阴影贴图中的第j个阴影贴图,是基于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,以及与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,对第i帧级联阴影贴图中的第j个阴影贴图进行更新得到的,第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
在一种实施方式中,M个第一贴图与M个第二贴图一一对应,计算机设备将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图,并对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图。在得到M个滤波后的融合贴图后,计算机设备通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
在另一种实施方式中,计算机设备通过M个第一贴图对第i帧级联阴影贴图的M个阴影贴图进行更新(与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图用于对第j个阴影贴图进行更新),得到第i帧级联阴影贴图的M个阴影贴图的第一更新结果;再通过M个第二贴图对第i帧级联阴影贴图的M个阴影贴图的第一更新结果进行进一步更新(与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图用于对第j个阴影贴图的第一更新结果进行更新),得到第i帧级联阴影贴图的M个阴影贴图的第二更新结果。在得到第i帧级联阴影贴图的M个阴影贴图的第二更新结果后,对第i帧级联阴影贴图的M个阴影贴图的第二更新结果进行滤波,得到更新后的第i+1帧级联阴影贴图。可以理解的是,第一贴图和第二贴图对阴影贴图的更新顺序可以调换,本申请对此不作限制。
本申请实施例中,获取第i帧级联阴影贴图,对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。可见,通过第i帧级联阴影贴图中的M个阴影贴图的重投影结果和第i+1个画面帧的深度缓冲信息的重投影结果对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,可以降低更新联阴影贴图所需的计算资源;进一步地,通过更新后的第i+1帧级联阴影贴图对第i+1个画面帧进行渲染,可以提升该画面帧的渲染效果。
请参阅图3,图3为本申请实施例提供的另一种图像处理方法的流程图,该图像处理方法可以由计算机设备执行,该计算机设备具体可以是终端设备或者服务器。如图3所示,该图像处理方法可包括如下步骤S301-S311:
S301、获取第i帧级联阴影贴图。
步骤S301的具体实施方式可参考图2中步骤S201的实施方式,在此不再赘述。
S302、获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵。
第i+1帧级联阴影贴图中的第j个阴影贴图,可以是对第i帧级联阴影贴图中的M个阴影贴图中的任一个阴影贴图进行更新后得到的。举例来说,假设第i帧级联阴影贴图中包括3个阴影贴图(如阴影贴图1-阴影贴图3),若第i帧级联阴影贴图中需要更新的阴影贴图为阴影贴图1和阴影贴图3(即M=2),则第i+1帧级联阴影贴图中的第j个阴影贴图,可以是对第i帧级联阴影贴图中的阴影贴图1进行更新后得到的,也可以是对第i帧级联阴影贴图中的阴影贴图3进行更新后得到的。
在一种实施方式中,计算机设备获取第i+1个画面帧对应的(采集设备的)视图矩阵,以及第i+1帧级联阴影贴图中第j个层级对应的投影矩阵,并对视图矩阵和投影矩阵进行求积处理,得到第i+1帧级联阴影贴图中第j个层级的阴影贴图的阴影投影矩阵。其中,第i+1个画面帧对应的(采集设备的)视图矩阵是基于对象所属场景中的光源在第i+1个时刻下的位置和朝向得到的,第i+1个时刻与第i+1个画面帧相对应;第i+1帧级联阴影贴图中第j个层级对应的投影矩阵是基于第i+1帧级联阴影贴图中第j个层级对应的包围盒得到的。
S303、基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置。
第i帧级联阴影贴图中的第j个阴影贴图,可以是对第i帧级联阴影贴图中的M个阴影贴图中的任一个阴影贴图。举例来说,假设第i帧级联阴影贴图中包括3个阴影贴图(如阴影贴图1-阴影贴图3),其中需要更新的阴影贴图为阴影贴图1和阴影贴图3,则第i帧级联阴影贴图中的第j个阴影贴图可以是阴影贴图1,或者阴影贴图3。
在一种实施方式中,计算机设备基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在该阴影贴图中的位置(确定各个像素点在视图空间中x轴和y轴的坐标),以及第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值(确定各个像素点在视图空间中z轴的坐标),确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置(可以通过三维空间坐标(x,y,z)表示)。
S304、通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新。
每个阴影贴图携带有该阴影贴图中各个像素点的深度值。在一种实施方式中,计算机设备获取第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵(可以通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵得到)。计算机设备通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行第一转换(投影),得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置。也就是说,第一转换是指通过阴影投影逆矩阵将像素点在阴影空间中的位置转换为像素点在世界空间中的位置。
上述实施方式也可以理解为,计算机设备通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间的位置与这些像素点在世界空间的位置之间的转换关系,从而根据该转换关系对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间的位置进行转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间的位置。
在得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置后,计算机设备通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置进行第二转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置。也就是说,第二转换是指通过阴影投影矩阵将像素点在世界空间中的位置转换为像素点在阴影空间中的位置。
可以理解的是,当第i帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵与第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵不同时,第一转换结果和第二转换结果不同;其中,第一转换结果是基于第i帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对世界空间中目标像素点的位置进行转换(投影)得到的目标像素点在阴影空间中的位置;第二转换结果是基于第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对世界空间中目标像素点的位置进行转换(投影)得到的目标像素点在阴影空间中的位置。
S305、基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图。
待更新贴图可以是第i帧级联阴影贴图的第j个阴影贴图,也可以是预设阴影贴图(如尺度与第i帧级联阴影贴图的第j个阴影贴图相同,且各个像素点的深度值均为正无穷的阴影贴图)。与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,可以用于对第i帧级联阴影贴图中的第j个阴影贴图进行更新。可以理解的是,若待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,则与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,是对第i帧级联阴影贴图中的第j个阴影贴图进行更新后的阴影贴图。
在一种实施方式中,计算机设备基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,(如通过InterlockedMin操作)对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图的过程包括:基于第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中更新后的位置,确定第k个像素点的贴图位置和深度更新值;具体来说,第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中更新后的位置可以通过三维空间坐标(x,y,z)进行表示;其中,(x,y)用于指示第k个像素点(在阴影空间中)的贴图位置,z用于指示第k个像素点(在阴影空间中)的深度更新值。其中,待更新贴图可以是指第i帧级联阴影贴图的第j个阴影贴图,也可以是指原始贴图,或者其他预设的贴图;原始切图中各个像素点的深度值均为预设值(如1,正无穷等)。
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度更新值,则计算机设备将目标像素点的深度值更新为第k个像素点的深度更新值;相应地,若待更新贴图中目标像素点的深度值,小于或等于第k个像素点的深度更新值,则计算机设备保持目标像素点的深度值不变。其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配;第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点,为第i帧级联阴影贴图的第j个阴影贴图中的任一个像素点。
举例来说,假设第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点更新前的贴图位置为(x1,y1),深度值为z1,第k个像素点更新后的贴图位置为(x2,y2),深度值为z2;则待更新贴图中位于(x2,y2)的像素点即为目标像素点,设目标像素点的深度值为z3;若z2大于或等于z3,则保持目标像素点的深度值z3不变;若z2小于z3,则将目标像素点的深度值更新为z2。
S306、获取第i+1个画面帧对应的视图投影矩阵。
第i+1个画面帧对应的视图投影矩阵是指:第i+1个画面帧对应的(采集设备的)视图投影矩阵。第i+1个画面帧对应的(采集设备的)视图投影矩阵用于将第i+1个画面帧中各个像素点在视图空间(与第i+1个画面帧的观测视角相对应)中的位置,转换为世界空间中的位置。也就是说,视图投影矩阵用于指示同一像素点在视图空间中的位置与该像素点在世界空间中的位置之间的转换关系。
图4a为本申请实施例提供的一种空间位置转换关系示意图。如图4a所示,像素点在视图空间中的位置可以通过视图投影矩阵,转换为该像素点在世界空间中的位置;相应地,像素点在世界空间中的位置可以通过视图投影矩阵的逆矩阵,转换为该像素点在视图空间中的位置。此外,像素点在世界空间中的位置可以通过阴影投影矩阵,转换为该像素点在阴影空间中的位置;相应地,像素点在阴影空间中的位置可以通过阴影投影矩阵的逆矩阵(及阴影投影逆矩阵),转换为该像素点在世界空间中的位置。其中,像素点在视图空间中的位置可以通过画面帧以及该画面帧的深度缓冲信息得到;像素点在阴影空间中的位置可以通过阴影贴图得到。
S307、基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置。
在一种实施方式中,计算机设备基于第i+1个画面帧中第k个像素点在第i+1个画面帧中的位置(x,y),确定第k个像素点的x轴坐标和y轴坐标;并通过第i+1个画面帧的深度缓冲信息(携带有第i+1个画面帧中各个像素点的深度值),确定第k个像素点的z轴坐标(即深度值),从而得到第k个像素点在视图空间中的位置(通过(x,y,z)表示)。
S308、通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置。
在一种实施方式中,计算机设备通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置。也就是说,第三转换是指通过视图投影矩阵将像素点在视图空间中的位置转换为像素点在世界空间中的位置。
在得到第i+1个画面帧中各个像素点在世界空间中的位置后,计算机设备通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置。上述实施方式也可以理解为,视图投影矩阵,确定第i+1个画面帧中各个像素点在视图空间中的位置与这些像素点在世界空间的位置之间的转换关系,从而根据该转换关系对第i+1个画面帧中各个像素点在视图空间中的位置进行转换,得到第i+1个画面帧中各个像素点在世界空间的位置。
S309、基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图。
待更新贴图可以是第i帧级联阴影贴图的第j个阴影贴图,也可以是预设阴影贴图(如通过与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,对第i帧级联阴影贴图中的第j个阴影贴图进行更新后得到的阴影贴图)。与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,可以用于对第i帧级联阴影贴图中的第j个阴影贴图进行更新。可以理解的是,若待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,则与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,是对第i帧级联阴影贴图中的第j个阴影贴图进行更新后的阴影贴图。
在一种实施方式中,计算机设备基于第i+1个画面帧中各个像素点在阴影空间中的位置,(如通过InterlockedMin操作)对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图的过程包括:基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;具体来说,第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中的位置可以通过三维空间坐标(x,y,z)进行表示;其中,(x,y)用于指示第k个像素点(在阴影空间中)的贴图位置,z用于指示第k个像素点(在阴影空间中)的深度值。其中,待更新贴图可以是指第i帧级联阴影贴图的第j个阴影贴图,也可以是指原始贴图,或者其他预设的贴图;原始切图中各个像素点的深度值均为预设值(如1,正无穷等)。
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度更新值,则计算机设备将目标像素点的深度值更新为第k个像素点的深度值;相应地,若待更新贴图中目标像素点的深度值,小于或等于第k个像素点的深度更新值,则计算机设备保持目标像素点的深度值不变。其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配,第i+1个画面帧中第k个像素点,为第i+1个画面帧中的任一个像素点。
举例来说,假设第i+1个画面帧中第k个像素点(在阴影空间中)的贴图位置为(x1,y1),深度值为z1,则待更新贴图中位于(x1,y1)的像素点即为目标像素点,设目标像素点的深度值为z2;若z1大于或等于z2,则保持目标像素点的深度值z2不变;若z1小于z2,则将目标像素点的深度值更新为z1。
S310、基于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图,对第i帧级联阴影贴图中的第j个阴影贴图进行更新,得到第i+1帧级联阴影贴图。
第i+1帧级联阴影贴图中的第j个阴影贴图,是基于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图,以及与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图,对第i帧级联阴影贴图中的第j个阴影贴图进行更新得到的,第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
在一种实施方式中,计算机设备将与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图进行融合,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图;具体来说,若与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中的任一个贴图包括与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,则计算机设备直接将该深度值确定为与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值;若与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中均包括与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,则计算机设备将其中的较小值确定为与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值。
举例来说,假设与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值z1;与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图不包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,则将与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,确定为z1。类似地,假设与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图不包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值;与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值z2,则将与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,确定为z2。假设与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值z1,与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图包括:与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值z2;若z1大于或等于z2,则将与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,确定为z2,若z1小于z2,则将与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中第k个像素点的深度值,确定为z1。
进一步地,计算机设备对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图。滤波处理用于对与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中的目标像素点(与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图中均不包括目标像素点的深度值)的深度值进行填补。具体来说,计算机设备从与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中获取目标像素点的相邻像素点的深度值,并基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值。其中,目标像素点的相邻像素点可以是指位于目标像素点周围预设步长(如2)内的像素点。图4b为本申请实施例提供的一种目标像素点的相邻像素点的示意图。如图4b所示,当预设步长为2时,目标像素点A3B3的相邻像素点为:A1B1-A1B5、A2B1-A2B5、A3B1、A3B2、A3B4、A3B5、 A4B1-A4B5及A5B1-A5B5。
可选的,目标像素点的相邻像素点也可以是指在目标像素点的上下左右四个方向上距离目标像素点最近,且携带深度值的像素点。图4c为本申请实施例提供的另一种目标像素点的相邻像素点的示意图。如图4c所示,目标像素点A3B3的相邻像素点为:A2B3、A3B1、A3B4及A5B3。可以理解的是,图4b和图4c中各个像素点的深度值仅用于举例,并不构成本申请的实际限定。
设目标像素点的相邻像素点的数量为Q,Q为大于1的整数。在一个实施例中,计算机将Q个相邻像素点的深度值中的中间值或最小值,确定为目标像素点的深度值。以图4b为例,计算机设备按照从小到大或者从大到小的顺序对图4b中各个像素点的深度值进行排序,得到图4b中各个像素点的深度值的中间值为16,则计算机设备将目标像素点的深度值替换为16。以图4c为例,目标像素点的相邻像素点的深度值分别为:6、7、16、20;则计算机设备将目标像素点的深度值设为6。
在一种实现方式中,计算机设备首先对融合贴图中的像素点进行分组,每组像素点包括PP个像素点,P为大于1的整数。一方面,计算机设备(如通过Compute Shader)为分组中的每个像素点分配一个线程,以读取该像素点(在阴影空间中)的深度值;存储各个线程读取的深度值(如存入Group Shared Memory中,并调用Group Memory Barrier WithGroup Sync函数对存入Group Shared Memory中的数据进行同步)。另一方面,计算机设备调用每个像素点分组中的一个或多个线程读取该像素组的相邻像素点的深度值,并存储各个线程读取的深度值(如存入Group Shared Memory中,并调用Group Memory BarrierWith Group Sync函数对存入Group Shared Memory中的数据进行同步)。接着计算机设备通过像素点分组中一个或多个像素点的相邻像素点的深度值对该像素点进行预测,得到滤波处理后的融合贴图。
举例来说,假设以1616个像素点为一个分组,计算机设备为该分组分配256个线程,设预设步长为2,则对于一个像素点分组来说,包含该像素点分组以及该像素点分组的相邻像素点的尺度为20/>20,计算机设备可以调用分配的256个线程中的R个(R大于等于1,小于等于144)线程来读取该像素点分组的相邻像素点的深度值,并通过像素点分组中一个或多个像素点的相邻像素点的深度值对该像素点进行预测,得到滤波处理后的融合贴图。
在另一个实施例中,计算机设备将Q个相邻像素点的深度值的平均值,确定为目标像素点的深度值。在再一个实施例中,计算机设备通过预测模型对Q个相邻像素点的深度值进行预测处理,得到目标像素点的深度值。可选的,上述针对目标像素点的滤波处理的实施方式,也可以应用于融合贴图中的其他像素点(如融合贴图中已携带深度值的像素点,即通过上述滤波处理的方法对融合贴图中已携带深度值的像素点的深度值进行更新),本申请对此不作限制。
按照上述步骤S302-步骤S310中的实施方式,计算机设备可以得到M个滤波后的融合贴图,并通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新(如将第i帧级联阴影贴图的M个阴影贴图替换为相应的M个滤波后的融合贴图),得到更新后的第i+1帧级联阴影贴图。
实践证明,通过本申请提供的图像处理方法(即通过对第i帧级联阴影贴图中的Shadow Map和第i个画面帧中的像素点(的位置)进行重投影,来重建第i+1帧级联阴影贴图中的Shadow Map的方式),相较于传统的分帧Shadow Map方案,可以在灯光(场景中的光源)变化的情况下,大幅提升画面阴影质量和流畅性,且保留传统的分帧Shadow Map的低时间消耗和带宽的特性。
S311、通过第i+1帧级联阴影贴图,对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧。
在一种实施方式中,一方面,计算机设备获取第i+1个画面帧对应的(采集设备的)视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵。另一方面,计算机设备基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及第i+1个画面帧的深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置。
进一步地,计算机设备通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;再通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置。在得到第i+1个画面帧中各个像素点在阴影空间中的位置后,计算机设备基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图,对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧。
在一个实施例中,计算机设备基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值。若第k个像素点的深度值大于第i+1帧级联阴影贴图中目标像素点的深度值,则计算机设备判定第k个像素点为阴影区域像素点,若第k个像素点的深度值小于或等于第i+1帧级联阴影贴图中目标像素点的深度值,则计算机设备判定第k个像素点为非阴影区域像素点;其中,目标像素点在第i+1帧级联阴影贴图的第j个阴影贴图中的位置与第k个像素点的贴图位置匹配。
在一种实现方式中,画面帧可以是虚拟场景的画面帧;例如,画面帧可以是飞行器(如无人机,飞机等)的虚拟飞行画面帧,或者是可移动平台(如水下机器人,山地探测设备等)的虚拟地形探测画面帧。计算机设备一方面获取虚拟场景的第i帧级联阴影贴图,并对第i帧级联阴影贴图进行第一重投影处理,得到M个第一贴图;另一方面,获取第i+1个画面帧的深度缓冲信息,并基于i+1个画面帧的深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置,再对第i+1个虚拟场景画面帧中各个像素点在视图空间中的位置进行第二重投影处理,得到与M个第一贴图相应的M个第二贴图。在得到M个第一贴图和M个第二贴图后,计算机设备基于M个第一贴图和M个第二贴图,对第i帧级联阴影贴图中的M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,通过第i+1帧级联阴影贴图即可渲染虚拟场景的第i+1帧画面帧。可见,通过该实现方式可以模拟虚拟场景画面帧(如模拟飞行器的飞行画面帧),提高虚拟场景画面帧的还原度(逼真度)。
在又一种实现方式中,画面帧可以是动画中的动画帧;例如,画面帧可以是三维游戏动画中的动画帧。计算机设备一方面获取三维游戏动画的第i帧级联阴影贴图,并对三维游戏动画的第i帧级联阴影贴图进行第一重投影处理,得到M个第一贴图;另一方面,获取第i+1个动画帧的深度缓冲信息,并基于i+1个动画帧的深度缓冲信息,确定第i+1个动画帧中各个像素点在视图空间中的位置,再对第i+1个动画帧中各个像素点在视图空间中的位置进行第二重投影处理,得到与M个第一贴图相应的M个第二贴图。在得到M个第一贴图和M个第二贴图后,计算机设备基于M个第一贴图和M个第二贴图,对第i帧级联阴影贴图中的M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,通过第i+1帧级联阴影贴图即可渲染三维游戏动画的第i+1帧动画帧。可见,通过该实现方式可以对三维游戏动画进行渲染,可以通过降低游戏动画帧渲染所需的计算资源来提高游戏动画帧的渲染速度,从而提高三维游戏流畅度,并提高三维游戏动画的还原度(逼真度)。
在另一种实现方式中,画面帧可以是点云帧。计算机设备一方面获取第i帧级联阴影贴图,并对第i帧级联阴影贴图进行第一重投影处理,得到M个第一贴图;另一方面,获取第i+1个点云帧的深度缓冲信息,并基于i+1个点云帧的深度缓冲信息,确定第i+1个点云帧中各个像素点在视图空间中的位置,再对第i+1个画面帧中各个像素点在视图空间中的位置进行第二重投影处理,得到与M个第一贴图相应的M个第二贴图。在得到M个第一贴图和M个第二贴图后,计算机设备基于M个第一贴图和M个第二贴图,对第i帧级联阴影贴图中的M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,通过第i+1帧级联阴影贴图即可渲染第i+1帧点云帧。可见,通过该实现方式可以对点云帧进行渲染,有效降低点云帧渲染所需的计算资源,并提高点云帧的的还原度(逼真度)。
本申请实施例中,获取第i帧级联阴影贴图,对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图。可见,通过第i帧级联阴影贴图中的M个阴影贴图的重投影结果和第i+1个画面帧的深度缓冲信息的重投影结果对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,可以降低更新联阴影贴图所需的计算资源;进一步地,通过更新后的第i+1帧级联阴影贴图对第i+1个画面帧进行渲染,可以提升该画面帧的渲染效果。此外,在基于M个融合贴图(对M个第一贴图和M个第二贴图进行融合得到),对M个阴影贴图进行更新的过程中,通过对融合贴图中的一个或多个像素点进行滤波处理,可以提高融合贴图的平滑度,从而提高第i+1帧级联阴影贴图的质量。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图5,图5为本申请实施例提供的一种图像处理装置的结构示意图,图5所示的图像处理装置可以搭载在计算机设备中,该计算机设备具体可以是终端设备或者服务器。图5所示的图像处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。请参见图5,该图像处理装置包括:
获取单元501,用于获取第i帧级联阴影贴图,第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
处理单元502,用于对第i帧级联阴影贴图中的M个阴影贴图进行重投影处理,得到M个第一贴图,M为正整数;
获取单元501,还用于获取第i+1个画面帧中各个像素点的深度缓冲信息;
处理单元502,还用于基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
以及用于基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
在一种实施方式中,每个阴影贴图携带有该阴影贴图中各个像素点的深度值;处理单元502对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图的过程包括:
获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
在一种实施方式中,处理单元502用于,通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新,具体用于:
获取第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵;
通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行第一转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置进行第二转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置。
在一种实施方式中,处理单元502基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图的过程包括:
基于第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中更新后的位置,确定第k个像素点的贴图位置和深度更新值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度更新值,则将目标像素点的深度值更新为第k个像素点的深度更新值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配;第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点,为第i帧级联阴影贴图的第j个阴影贴图中的任一个像素点。
在一种实施方式中,处理单元502基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图的过程包括:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
在一种实施方式中,处理单元502用于,通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置,具体用于:
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置。
在一种实施方式中,处理单元502基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度值,则将目标像素点的深度值更新为第k个像素点的深度值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配,第i+1个画面帧中第k个像素点,为第i+1个画面帧中的任一个像素点。
在一种实施方式中,处理单元502用于,基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,具体用于:
将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图;
对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图;
通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
在一种实施方式中,处理单元502对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图的过程包括:
从与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中获取目标像素点的相邻像素点的深度值,目标像素点的深度值未包含于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中;
基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值。
在一种实施方式中,目标像素点的相邻像素点的数量为Q,Q为大于1的整数;处理单元502用于,基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值,具体用于:
将Q个相邻像素点的深度值中的中间值或最小值,确定为目标像素点的深度值;或者,
将Q个相邻像素点的深度值的平均值,确定为目标像素点的深度值;或者,
通过预测模型对Q个相邻像素点的深度值进行预测处理,得到目标像素点的深度值。
在一种实施方式中,处理单元502还用于:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧。
在一种实施方式中,处理单元502基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若第k个像素点的深度值大于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为阴影区域像素点;
若第k个像素点的深度值小于或等于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为非阴影区域像素点;
其中,目标像素点在第i+1帧级联阴影贴图的第j个阴影贴图中的位置与第k个像素点的贴图位置匹配。
根据本申请的一个实施例,图2和图3所示的图像处理方法所涉及的部分步骤可由图5所示的图像处理装置中的各个单元来执行。例如,图2中所示的步骤S201可由图5所示的获取单元501执行,步骤S202和步骤S204可由图5所示的处理单元502执行,步骤S203可由图5所示的获取单元501和处理单元502协同执行;图3中所示的步骤S301,步骤S302和步骤S306可由图5所示的获取单元501执行,步骤S303-步骤S305和步骤S307-步骤S311可由图5所示的处理单元502执行。图5所示的图像处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,图像处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机设备的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图5中所示的图像处理装置,以及来实现本申请实施例的图像处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的图像处理装置解决问题的原理与有益效果与本申请方法实施例中图像处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图6,图6为本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以终端设备或者服务器。如图6所示,计算机设备至少包括处理器601、通信接口602和存储器603。其中,处理器601、通信接口602和存储器603可通过总线或其他方式连接。其中,处理器601(或称中央处理器(Central Processing Unit,CPU))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析对象向计算机设备所发出的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口602可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器601的控制可以用于收发数据;通信接口602还可以用于计算机设备内部数据的传输以及交互。存储器603(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器603既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器603提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器601加载并执行的计算机程序。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,处理器601通过运行存储器603中的计算机程序,执行如下操作:
获取第i帧级联阴影贴图,第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,M为正整数;
获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;第i+1帧级联阴影贴图用于渲染第i+1个画面帧。
作为一种可选的实施例,每个阴影贴图携带有该阴影贴图中各个像素点的深度值;处理器601对第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图的过程包括:
获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新;
基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
作为一种可选的实施例,处理器601通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行更新的具体实施例为:
获取第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵;
通过第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置进行第一转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置进行第二转换,得到第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置。
作为一种可选的实施例,处理器601基于第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图的过程包括:
基于第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在阴影空间中更新后的位置,确定第k个像素点的贴图位置和深度更新值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度更新值,则将目标像素点的深度值更新为第k个像素点的深度更新值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配;第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点,为第i帧级联阴影贴图的第j个阴影贴图中的任一个像素点。
作为一种可选的实施例,处理器601基于深度缓冲信息对第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图的过程包括:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图;待更新贴图为第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
作为一种可选的实施例,处理器601通过第i+1个画面帧对应的视图投影矩阵和第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置的具体实施例为:
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置。
作为一种可选的实施例,处理器601基于第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若待更新贴图中目标像素点的深度值,大于第k个像素点的深度值,则将目标像素点的深度值更新为第k个像素点的深度值;
其中,目标像素点在待更新贴图中的位置与第k个像素点的贴图位置匹配,第i+1个画面帧中第k个像素点,为第i+1个画面帧中的任一个像素点。
作为一种可选的实施例,处理器601基于M个第一贴图和M个第二贴图,对M个阴影贴图进行更新,得到第i+1帧级联阴影贴图的具体实施例为:
将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图;
对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图;
通过M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
作为一种可选的实施例,处理器601对M个融合贴图进行滤波处理,得到M个滤波后的融合贴图的过程包括:
从与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中获取目标像素点的相邻像素点的深度值,目标像素点的深度值未包含于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中;
基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值。
作为一种可选的实施例,目标像素点的相邻像素点的数量为Q,Q为大于1的整数;处理器601基于目标像素点的相邻像素点的深度值,预测目标像素点的深度值的具体实施例为:
将Q个相邻像素点的深度值中的中间值或最小值,确定为目标像素点的深度值;或者,
将Q个相邻像素点的深度值的平均值,确定为目标像素点的深度值;或者,
通过预测模型对Q个相邻像素点的深度值进行预测处理,得到目标像素点的深度值。
作为一种可选的实施例,处理器601通过运行存储器603中的计算机程序,还执行如下操作:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于第i+1个画面帧中各个像素点在第i+1个画面帧中的位置,以及深度缓冲信息,确定第i+1个画面帧中各个像素点在视图空间中的位置;
通过视图投影矩阵对第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到第i+1个画面帧中各个像素点在世界空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到第i+1个画面帧中各个像素点在阴影空间中的位置;
基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧。
作为一种可选的实施例,处理器601基于第i+1个画面帧中各个像素点在阴影空间中的位置,以及第i+1帧级联阴影贴图对第i+1个画面帧中的各个像素点进行渲染,得到第i+1个画面帧的过程包括:
基于第i+1个画面帧中第k个像素点在阴影空间中的位置,确定第k个像素点的贴图位置和深度值;
若第k个像素点的深度值大于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为阴影区域像素点;
若第k个像素点的深度值小于或等于第i+1帧级联阴影贴图中目标像素点的深度值,则判定第k个像素点为非阴影区域像素点;
其中,目标像素点在第i+1帧级联阴影贴图的第j个阴影贴图中的位置与第k个像素点的贴图位置匹配。
基于同一发明构思,本申请实施例中提供的计算机设备解决问题的原理与有益效果与本申请方法实施例中图像处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于被处理器加载并执行上述方法实施例的图像处理方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的图像处理方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory ,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。
Claims (15)
1.一种图像处理方法,其特征在于,所述方法包括:
获取第i帧级联阴影贴图,所述第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
对所述第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图,M为正整数;
获取第i+1个画面帧中各个像素点的深度缓冲信息,并基于所述深度缓冲信息对所述第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
基于所述M个第一贴图和所述M个第二贴图,对所述M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;所述第i+1帧级联阴影贴图用于渲染所述第i+1个画面帧。
2.如权利要求1所述的方法,其特征在于,每个阴影贴图携带有该阴影贴图中各个像素点的深度值;所述对所述第i帧级联阴影贴图中的M个阴影贴图进行第一重投影处理,得到M个第一贴图的过程包括:
获取第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点的深度值,确定所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在阴影空间中的位置;
通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中的位置进行更新;
基于所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图;所述待更新贴图为所述第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
3.如权利要求2所述的方法,其特征在于,所述通过第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中的位置进行更新,包括:
获取所述第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵;
通过所述第i帧级联阴影贴图的第j个阴影贴图的阴影投影逆矩阵,对所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中的位置进行第一转换,得到所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置;
通过所述第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在世界空间中的位置进行第二转换,得到所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中更新后的位置。
4.如权利要求2所述的方法,其特征在于,所述基于所述第i帧级联阴影贴图的第j个阴影贴图中的各个像素点在所述阴影空间中更新后的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图的过程包括:
基于所述第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点在所述阴影空间中更新后的位置,确定所述第k个像素点的贴图位置和深度更新值;
若待更新贴图中目标像素点的深度值,大于所述第k个像素点的深度更新值,则将所述目标像素点的深度值更新为所述第k个像素点的深度更新值;
其中,所述目标像素点在所述待更新贴图中的位置与所述第k个像素点的贴图位置匹配;所述第i帧级联阴影贴图的第j个阴影贴图中的第k个像素点,为所述第i帧级联阴影贴图的第j个阴影贴图中的任一个像素点。
5.如权利要求1所述的方法,其特征在于,所述基于所述深度缓冲信息对所述第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图的过程包括:
获取第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于所述第i+1个画面帧中各个像素点在所述第i+1个画面帧中的位置,以及所述深度缓冲信息,确定所述第i+1个画面帧中各个像素点在视图空间中的位置;
通过所述第i+1个画面帧对应的视图投影矩阵和所述第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将所述第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置;
基于所述第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图;所述待更新贴图为所述第i帧级联阴影贴图的第j个阴影贴图,或者为预设阴影贴图。
6.如权利要求5所述的方法,其特征在于,所述通过所述第i+1个画面帧对应的视图投影矩阵和所述第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,将所述第i+1个画面帧中各个像素点在视图空间中的位置转换为阴影空间中的位置,包括:
通过所述视图投影矩阵对所述第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到所述第i+1个画面帧中各个像素点在世界空间中的位置;
通过所述第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对所述第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到所述第i+1个画面帧中各个像素点在阴影空间中的位置。
7.如权利要求5所述的方法,其特征在于,所述基于所述第i+1个画面帧中各个像素点在阴影空间中的位置,对待更新贴图进行更新,得到与第i帧级联阴影贴图中的第j个阴影贴图相对应的第二贴图的过程包括:
基于所述第i+1个画面帧中第k个像素点在阴影空间中的位置,确定所述第k个像素点的贴图位置和深度值;
若待更新贴图中目标像素点的深度值,大于所述第k个像素点的深度值,则将所述目标像素点的深度值更新为所述第k个像素点的深度值;
其中,所述目标像素点在所述待更新贴图中的位置与所述第k个像素点的贴图位置匹配,所述第i+1个画面帧中第k个像素点,为所述第i+1个画面帧中的任一个像素点。
8.如权利要求1所述的方法,其特征在于,所述基于所述M个第一贴图和所述M个第二贴图,对所述M个阴影贴图进行更新,得到第i+1帧级联阴影贴图,包括:
将每个第一贴图与该第一贴图相对应的第二贴图进行融合,得到M个融合贴图;
对所述M个融合贴图进行滤波处理,得到M个滤波后的融合贴图;
通过所述M个滤波后的融合贴图,对第i帧级联阴影贴图的M个阴影贴图进行更新,得到更新后的第i+1帧级联阴影贴图。
9.如权利要求8所述的方法,其特征在于,所述对所述M个融合贴图进行滤波处理,得到M个滤波后的融合贴图的过程包括:
从与第i帧级联阴影贴图中的第j个阴影贴图相对应的融合贴图中获取目标像素点的相邻像素点的深度值,所述目标像素点的深度值未包含于与第i帧级联阴影贴图中的第j个阴影贴图相对应的第一贴图和第二贴图中;
基于所述目标像素点的相邻像素点的深度值,预测所述目标像素点的深度值。
10.如权利要求9所述的方法,其特征在于,所述目标像素点的相邻像素点的数量为Q,Q为大于1的整数;所述基于所述目标像素点的相邻像素点的深度值,预测所述目标像素点的深度值,包括:
将所述Q个相邻像素点的深度值中的中间值或最小值,确定为所述目标像素点的深度值;或者,
将所述Q个相邻像素点的深度值的平均值,确定为所述目标像素点的深度值;或者,
通过预测模型对所述Q个相邻像素点的深度值进行预测处理,得到所述目标像素点的深度值。
11.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取所述第i+1个画面帧对应的视图投影矩阵,及第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵;
基于所述第i+1个画面帧中各个像素点在所述第i+1个画面帧中的位置,以及所述深度缓冲信息,确定所述第i+1个画面帧中各个像素点在视图空间中的位置;
通过所述视图投影矩阵对所述第i+1个画面帧中各个像素点在视图空间中的位置进行第三转换,得到所述第i+1个画面帧中各个像素点在世界空间中的位置;
通过所述第i+1帧级联阴影贴图的第j个阴影贴图的阴影投影矩阵,对所述第i+1个画面帧中各个像素点在世界空间中的位置进行第二转换,得到所述第i+1个画面帧中各个像素点在阴影空间中的位置;
基于所述第i+1个画面帧中各个像素点在阴影空间中的位置,以及所述第i+1帧级联阴影贴图对所述第i+1个画面帧中的各个像素点进行渲染,得到所述第i+1个画面帧。
12.如权利要求11所述的方法,其特征在于,所述基于所述第i+1个画面帧中各个像素点在阴影空间中的位置,以及所述第i+1帧级联阴影贴图对所述第i+1个画面帧中的各个像素点进行渲染,得到所述第i+1个画面帧的过程包括:
基于所述第i+1个画面帧中第k个像素点在阴影空间中的位置,确定所述第k个像素点的贴图位置和深度值;
若所述第k个像素点的深度值大于所述第i+1帧级联阴影贴图中目标像素点的深度值,则判定所述第k个像素点为阴影区域像素点;
若所述第k个像素点的深度值小于或等于所述第i+1帧级联阴影贴图中目标像素点的深度值,则判定所述第k个像素点为非阴影区域像素点;
其中,所述目标像素点在所述第i+1帧级联阴影贴图的第j个阴影贴图中的位置与所述第k个像素点的贴图位置匹配。
13.一种图像处理装置,其特征在于,所述图像处理装置包括:
获取单元,用于获取第i帧级联阴影贴图,所述第i帧级联阴影贴图用于渲染第i个画面帧,i为正整数;
处理单元,用于对所述第i帧级联阴影贴图中的M个阴影贴图进行重投影处理,得到M个第一贴图,M为正整数;
所述获取单元,还用于获取第i+1个画面帧中各个像素点的深度缓冲信息;
所述处理单元,还用于基于所述深度缓冲信息对所述第i+1个画面帧中的像素点进行第二重投影处理,得到M个第二贴图;
以及用于基于所述M个第一贴图和所述M个第二贴图,对所述M个阴影贴图进行更新,得到第i+1帧级联阴影贴图;所述第i+1帧级联阴影贴图用于渲染所述第i+1个画面帧。
14.一种计算机设备,其特征在于,包括:存储器和处理器;
存储器,所述存储器中存储有计算机程序;
处理器,用于加载所述计算机程序实现如权利要求1-12任一项所述的图像处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-12任一项所述的图像处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310703131.5A CN116485989B (zh) | 2023-06-14 | 2023-06-14 | 一种图像处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310703131.5A CN116485989B (zh) | 2023-06-14 | 2023-06-14 | 一种图像处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116485989A true CN116485989A (zh) | 2023-07-25 |
CN116485989B CN116485989B (zh) | 2024-03-12 |
Family
ID=87215934
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310703131.5A Active CN116485989B (zh) | 2023-06-14 | 2023-06-14 | 一种图像处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116485989B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080143720A1 (en) * | 2006-12-13 | 2008-06-19 | Autodesk, Inc. | Method for rendering global illumination on a graphics processing unit |
US20170374341A1 (en) * | 2016-06-22 | 2017-12-28 | Ashraf Ayman Michail | Depth-aware reprojection |
US20180268604A1 (en) * | 2017-03-15 | 2018-09-20 | Nvidia Corporation | Hybrid frustum traced shadows systems and methods |
US20210142575A1 (en) * | 2019-10-29 | 2021-05-13 | Magic Leap, Inc. | Methods and systems for reprojection in augmented-reality displays |
CN113256755A (zh) * | 2021-07-19 | 2021-08-13 | 广州中望龙腾软件股份有限公司 | 图像的渲染方法、智能终端以及存储装置 |
CN113362442A (zh) * | 2021-01-22 | 2021-09-07 | 惠州Tcl移动通信有限公司 | 一种虚拟现实图像的渲染方法、存储介质及虚拟现实设备 |
US20210366176A1 (en) * | 2020-05-22 | 2021-11-25 | Microsoft Technology Licensing, Llc | Shadow culling |
CN115375815A (zh) * | 2022-09-02 | 2022-11-22 | 网易(杭州)网络有限公司 | 阴影渲染方法、装置、电子设备及存储介质 |
-
2023
- 2023-06-14 CN CN202310703131.5A patent/CN116485989B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080143720A1 (en) * | 2006-12-13 | 2008-06-19 | Autodesk, Inc. | Method for rendering global illumination on a graphics processing unit |
US20170374341A1 (en) * | 2016-06-22 | 2017-12-28 | Ashraf Ayman Michail | Depth-aware reprojection |
US20180268604A1 (en) * | 2017-03-15 | 2018-09-20 | Nvidia Corporation | Hybrid frustum traced shadows systems and methods |
US20210142575A1 (en) * | 2019-10-29 | 2021-05-13 | Magic Leap, Inc. | Methods and systems for reprojection in augmented-reality displays |
US20210366176A1 (en) * | 2020-05-22 | 2021-11-25 | Microsoft Technology Licensing, Llc | Shadow culling |
CN113362442A (zh) * | 2021-01-22 | 2021-09-07 | 惠州Tcl移动通信有限公司 | 一种虚拟现实图像的渲染方法、存储介质及虚拟现实设备 |
CN113256755A (zh) * | 2021-07-19 | 2021-08-13 | 广州中望龙腾软件股份有限公司 | 图像的渲染方法、智能终端以及存储装置 |
CN115375815A (zh) * | 2022-09-02 | 2022-11-22 | 网易(杭州)网络有限公司 | 阴影渲染方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN116485989B (zh) | 2024-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110910486B (zh) | 室内场景光照估计模型、方法、装置、存储介质以及渲染方法 | |
RU2661763C2 (ru) | Использование межкадровой когерентности в архитектуре построения изображений с сортировкой примитивов на промежуточном этапе | |
CN112933599B (zh) | 三维模型渲染方法、装置、设备及存储介质 | |
CN102186067B (zh) | 一种图像帧的传输方法和装置、显示方法和系统 | |
DE102021207678A1 (de) | Streamen eines komprimierten lichtfelds | |
CN112765513A (zh) | 大规模建筑场景的细粒度化Web3D在线可视化方法 | |
CN115546377B (zh) | 一种视频融合方法、装置、电子设备及存储介质 | |
CN112634414B (zh) | 地图显示方法及装置 | |
WO2023207963A1 (zh) | 图像处理方法、装置、电子设备及存储介质 | |
CN112055216B (zh) | 一种基于Unity的倾斜摄影海量快速加载方法及装置 | |
CN114531553B (zh) | 生成特效视频的方法、装置、电子设备及存储介质 | |
EP4290464A1 (en) | Image rendering method and apparatus, and electronic device and storage medium | |
CN111754381A (zh) | 图形渲染方法、装置和计算机可读存储介质 | |
CN115690382A (zh) | 深度学习模型的训练方法、生成全景图的方法和装置 | |
CN113256781A (zh) | 虚拟场景的渲染和装置、存储介质及电子设备 | |
CN112948043A (zh) | 大规模建筑场景的细粒度化Web3D在线可视化方法 | |
DE102021127982A1 (de) | Streaming eines lichtfeldes mit verlustfreier oder verlustbehafteter kompression | |
CN111091491B (zh) | 一种等距圆柱投影的全景视频像素再分配方法及系统 | |
CN115082609A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN113077541A (zh) | 一种虚拟天空画面的渲染方法及相关设备 | |
CN116485989B (zh) | 一种图像处理方法、装置、设备及存储介质 | |
WO2023217138A1 (zh) | 一种参数配置方法、装置、设备、存储介质及产品 | |
CN112802206A (zh) | 漫游视图的生成方法、装置、设备和存储介质 | |
CN111818265A (zh) | 基于增强现实模型的交互方法、装置、电子设备及介质 | |
CN114428573A (zh) | 特效图像处理方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40090123 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |