图像处理方法、设备及可读介质与流程

文档序号:24785738发布日期:2021-04-23 10:19阅读:78来源:国知局
图像处理方法、设备及可读介质与流程

1.本申请实施例涉及游戏开发技术领域,尤其涉及图像处理方法、设备及可读介质。


背景技术:

2.现有技术中,常用的体积光效果的实现方案主要有两种:第一种是通过在场景中摆放半透明的有光线纹理的矩形面片来实现体积光的效果。另一种是在屏幕空间将画面中的天空与不透明的物体拆分出来,然后,以光源位置点在当前屏幕上的投影坐标为中心点进行径向模糊得到光线图,最后将光线图与原始游戏画面叠加即可得到有体积光效果的图像。
3.但是,第一种方式不能实现任意形状物体的体积光效果,当光源的方向发生变化后,光线的方向不会发生变化;另一种方式,虽然可支持任意形状物体的体积光效果,并能根据光源的方向正确变化,但是当采样点数较少时,确定出的光线图分段效果较严重,只能通过增加采样点数来减轻分段现象,该方案受采样点数的影响较大,局限性较强。


技术实现要素:

4.本申请实施例提供了一种图像处理方法、设备及可读介质,用以减小采样点数对体积光分段效果的影响。
5.第一方面,本申请实施例提供一种图像处理方法,包括:获取第一遮挡纹理图中多个像素的第一纹理坐标;根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行径向模糊处理,得到光线纹理图像;其中,所述光线纹理图像用于确定具有体积光效果的目标图像。
6.可选地,所述方法还包括:
7.获取所述目标图像对应的初始图像中,不透明物体的深度纹理图;
8.对所述深度纹理图进行二值化处理,得到第二遮挡纹理图;
9.对所述第二遮挡纹理图进行下采样,得到所述第一遮挡纹理图。
10.可选地,根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量,包括:
11.获取第一时间信息;
12.将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标;
13.利用所述采样纹理坐标,对所述预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量。
14.可选地,将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标,包括:
15.根据所述多个像素的第一纹理坐标及所述第一时间信息,得到第一二维向量;
16.将所述第一二维向量作为所述预设函数的输入,以通过所述预设函数提取所述第一二维向量的各分量的小数部分构建出第二二维向量;
17.其中,所述第二二维向量中含有多个采样纹理坐标。
18.可选地,根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标,包括:
19.获取所述第一遮挡纹理图的分辨率;
20.利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量;
21.根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标。
22.可选地,根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标,包括:
23.将处理后的所述抖动向量及所述多个像素的第一纹理坐标做加和处理,得到所述第二纹理坐标。
24.可选地,利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量,包括:
25.利用所述分辨率,对所述抖动向量中的向量值进行缩小处理,得到处理后的所述抖动向量。
26.可选地,所述方法还包括:
27.获取虚拟太阳的世界坐标;
28.对所述虚拟太阳的世界坐标进行坐标变换,得到所述虚拟太阳在二维屏幕空间的屏幕坐标;
29.基于所述屏幕坐标确定所述参照坐标。
30.可选地,所述方法还包括:
31.获取所述第一遮挡纹理图经所述径向模糊处理后的处理结果;
32.将所述处理结果作为下次径向模糊处理的输入图像。
33.可选地,所述方法还包括:
34.对所述光线纹理图像进行滤波处理,得到目标光线纹理图像;
35.获取太阳光颜色信息;
36.利用所述目标光线纹理图像,与所述太阳光颜色信息确定出体积光光线纹理图像;
37.将所述体积光光线纹理图像与所述目标图像对应的场景颜色纹理图像进行叠加,得到具有体积光效果的所述目标图像。
38.第二方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现前述的图像处理方法。
39.第三方面,本申请实施例提供一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理
器加载并执行以实现前述的图像处理方法。
40.在本申请中,通过获取第一遮挡纹理图中多个像素的第一纹理坐标;根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行径向模糊处理,得到光线纹理图像;其中,所述光线纹理图像用于确定具有体积光效果的目标图像的方案,依据噪声向量纹理,对用于对第一遮挡纹理图进行模糊处理的采样坐标进行扰动,通过噪声向量的随机特性,以减小采样点数对体积光分段效果的影响,并且可以进一步起到基于较少的采样点实现高质量的体积光效果图像的效果。
附图说明
41.为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
42.图1为本申请实施例提供的一种图像处理方法的流程示意图;
43.图2为本申请实施例提供的一种第一遮挡纹理图的示意图;
44.图3为本申请实施例提供的一种体积光效果处理方法的流程示意图;
45.图4为本申请实施例提供的一种数据处理装置的结构示意图;
46.图5为本申请实施例提供的一种图像处理方法的流程示意图。
具体实施方式
47.为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
48.在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
49.取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
50.另外,下述各方法实施例中的步骤时序仅为一种举例,而非严格限定。
51.如图1为本申请实施例提供的一种图像处理方法的流程示意图,该方法的执行主体可以为计算机设备,该方法可至少包括以下步骤:
52.101、获取第一遮挡纹理图中多个像素的第一纹理坐标;
53.102、根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;
54.103、根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;
55.104、基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行径向模糊处理,得到光线纹理图像;其中,所述光线纹理图像用于确定具有体积光效果的目标图像。
56.在本申请中的一些可选的实施例中,前述第一遮挡纹理图中多个像素可以为第一遮挡纹理图中的全部像素,第一遮挡纹理图可以为待实现体积光效果的帧画面对应的遮挡信息纹理,基于此,本申请的图像处理方法还包括以下步骤:
57.001、获取所述目标图像对应的初始图像中,不透明物体的深度纹理图;
58.002、对所述深度纹理图进行二值化处理,得到第二遮挡纹理图;
59.003、对所述第二遮挡纹理图进行下采样,得到所述第一遮挡纹理图。
60.其中,初始图像可以为待赋予体积光效果的帧画面图像,目标图像是具有体积光效果的图像,前述深度纹理图中存储的是标准设备坐标系中,初始图像中的各像素对应的深度值,且各像素深度值的范围为[0,1]。其中,0对应于相机的近裁剪平面,1对应相机的远裁剪平面。在游戏场景中,对初始图像中的不透明物体渲染完毕之后,即可得到该深度纹理图。
[0061]
本申请中,对第二遮挡纹理图进行下采样,可以减少采样数量以提高渲染效率,上述第一遮挡纹理图的分辨率小于第二遮挡纹理图的分辨率。具体地,相关人员还可以对下采样的采样间隔进行设定,以确定第二遮挡纹理图与第一遮挡纹理图的分辨率的倍数关系,例如:相关人员可以对下采样的采样间隔进行设定,使第一遮挡纹理图的分辨率为第二遮挡纹理图的分辨率的八分之一。
[0062]
进一步地,第一遮挡纹理图中多个像素的第一纹理坐标可以为初始图像对应的遮挡信息纹理的屏幕坐标,其中,屏幕坐标的范围可以为[(0,0),(1,1)]。
[0063]
进一步地,上述预设噪声向量纹理包括多个像素,各个像素都对应有一个二维噪声向量(也就是噪声值);每个第一纹理坐标都在预设噪声向量纹理中有其对应的噪声向量纹理坐标,根据各第一纹理坐标对应的噪声向量纹理坐标,即可进一步实现对预设噪声向量纹理的采样,第一纹理坐标对应的噪声向量纹理坐标处的二维噪声向量,即为第一纹理坐标对应的像素对应的噪声值的抖动向量。
[0064]
进一步地,上述预设噪声向量纹理可根据预设算法得到,例如:该预设噪声向量纹理可以基于柏林噪声生成算法得到,在本申请的方案中,为了使各第一纹理坐标的抖动范围限定在对应的预设范围内,可将预设噪声向量纹理中各像素对应的二维噪声向量的各分量的大小限定至[

1,1],具体限定方式可参见现有技术,此处不再赘述。
[0065]
进一步地,前述步骤103中,“根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标”包括以下步骤:
[0066]
1031、获取所述第一遮挡纹理图的分辨率;
[0067]
1032、利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量;
[0068]
1033、根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标。
[0069]
具体地,前述步骤1032中,“利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量”,可包括:
[0070]
利用所述分辨率,对所述抖动向量中的向量值进行缩小处理,得到处理后的所述抖动向量。
[0071]
在本申请的一些可选的实施例中,利用所述分辨率,对所述抖动向量中的向量值进行缩小处理,得到处理后的所述抖动向量的方式,可通过以下公式(1)进行实现:
[0072]
uvdither1=uvdither0/(n*float2(width,height))
ꢀꢀꢀꢀꢀ
(1)
[0073]
公式(1)中,(width,height)指第一遮挡纹理图的分辨率、width可指第一遮挡纹理图的宽包括的像素的数量、height指第一遮挡纹理图的高包括的像素的数量、uvdither0指处理前的抖动向量、uvdither1为处理后的抖动向量,n可以为正整数。
[0074]
通过前述公式(1),可通过对n的设定,来限定根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定的所述第二纹理坐标相对于第一纹理坐标的偏移范围。当n=2时,具体可参见图2所示,图2为本申请实施例提供的第一遮挡纹理图的示意图,该图中,第一遮挡纹理图的分辨率为10*4;该图仅针对一个第一纹理坐标(0.45,0.625)中的位置进行了示意;若预设噪声向量纹理中,各像素对应的二维噪声向量中,分量的范围为[

1,1],通过前述公式(1)(n=2),得到的处理后的所述抖动向量中,其中一个分量的范围为[

1/20,1/20],另一个分量的范围为[

1/8,1/8]。可将第一纹理坐标(0.45,0.625)的偏移范围限定在图2中的虚线区域,也就是将对应的第二纹理坐标的水平坐标的范围限定在0.4至0.5之间,将对应的第二纹理坐标的垂直坐标的范围限定在0.5至0.75之间。
[0075]
在本申请的另一些可选的实施例中,还可以通过设定公式(1)中n值将第一纹理坐标的偏移范围限定至多个像素或半个像素之内,对此,本申请不做限定。
[0076]
相应地,前述1033中,“根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标”可具体包括:
[0077]
将处理后的所述抖动向量及所述多个像素的第一纹理坐标做加和处理,得到所述第二纹理坐标。
[0078]
具体地,将处理后的所述抖动向量及所述多个像素的第一纹理坐标做加和处理,得到所述第二纹理坐标可通过以下公式(2)进行实现:
[0079]
pospixeldithered=uvpixel+uvdither 1
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(2)
[0080]
公式(2)中,uvdither1为处理后的抖动向量、uvpixel为第一纹理坐标、pospixeldithered为第二纹理坐标。此处公式(2)仅为一个第一纹理坐标的处理示例,本申请中需对第一遮挡纹理图中各个像素对应的第一纹理坐标都做相应的处理。
[0081]
进一步地,上述步骤104中的参照坐标可以为虚拟太阳在屏幕空间的屏幕坐标,相应地,本申请的方法还包括以下步骤:
[0082]
s01、获取虚拟太阳的世界坐标;
[0083]
s02、对所述虚拟太阳的世界坐标进行坐标变换,得到所述虚拟太阳在二维屏幕空间的屏幕坐标;
[0084]
s03、基于所述屏幕坐标确定所述参照坐标。
[0085]
其中,虚拟太阳在二维屏幕空间的屏幕坐标可作为所述参照坐标。
[0086]
具体地,前述步骤104中,基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行模糊处理的方式,可参见现有技术,此处不再赘述。
[0087]
进一步地,所述方法还包括以下步骤:
[0088]
105、获取所述第一遮挡纹理图经所述径向模糊处理后的处理结果;
[0089]
106、将所述处理结果作为下次径向模糊处理的输入图像。
[0090]
具体地,下次径向模糊处理的输入图像就是下次模糊处理时(也就是下次执行前述步骤101至104时),步骤104以及步骤101中的第一遮挡纹理图;用户可以输入迭代次数,多次循环执行前述步骤101至104,每次循环结束得到的处理结果,作为下次迭代的第一遮挡纹理图;迭代次数由用户来控制,迭代次数越多,模糊效果越好。
[0091]
在本申请的另一些可选的实施例中,上述步骤101中的第一纹理坐标还可以为空白纹理图像中多个像素的纹理坐标,空白纹理图像中多个像素的纹理坐标,与第一遮挡纹理图中多个像素的第一纹理坐标一一对应且相同。
[0092]
相应地,若步骤101中的第一纹理坐标为空白纹理图像中多个像素的纹理坐标时,步骤106中的输入图像,可仅作为下次模糊处理时步骤104中的第一遮挡纹理图。
[0093]
进一步地,所述方法还包括以下步骤:
[0094]
111、对所述光线纹理图像进行滤波处理,得到目标光线纹理图像;
[0095]
112、获取太阳光颜色信息;
[0096]
113、利用所述目标光线纹理图像,与所述太阳光颜色信息确定出体积光光线纹理图像;
[0097]
114、将所述体积光光线纹理图像与所述目标图像对应的场景颜色纹理图像进行叠加,得到具有体积光效果的所述目标图像。
[0098]
具体地,模糊处理的次数可以由用户设定,上述步骤111中,对光线纹理图像进行滤波处理是为了滤除光线纹理图像中含有的大量噪声,具体的滤波方式可以为双边模糊滤波算法,以进一步避免光线纹理图像中分段现象的产生,双边模糊滤波算法可以有效的移除光线纹理图像中的噪声,并能保证图像中边缘的锐度。
[0099]
进一步地,上述目标光线纹理图像为灰度图,前述步骤112中,太阳光颜色信息可以根据用户的输入指令获取,太阳光颜色信息可以包括分别对应于rgb值的数值信息;上述步骤113中,“利用所述目标光线纹理图像,与所述太阳光颜色信息确定出体积光光线纹理图像”,可具体通过以下方式进行实现:将前述目标光线纹理图像中的多个像素中,各个像素对应的灰度值信息,与太阳光颜色信息相乘即可得到具备颜色的体积光光线纹理图像。将体积光光线纹理图像与目标图像对应的,已计算完光照之后的场景颜色纹理图像进行叠加,则可得到有体积光效果的游戏画面。
[0100]
需要说明的是,若第一遮挡纹理图为对所述第二遮挡纹理图进行下采样,得到的第一遮挡纹理图,在前述步骤114之前,还需对体积光光线纹理图像进行上采样,以使体积光光线纹理图像的分辨率与目标图像对应的场景颜色纹理图像的分辨率相同,具体的上采样方式可参见现有技术,此处不再赘述。
[0101]
进一步地,在对深度纹理图进行二值化时,可根据用户指定的深度阈值对深度纹理图进行二值化,以得到前述第二遮挡纹理图。例如:深度阈值可以为0.99,当深度纹理图中的像素对应的深度值大于或等于0.99时,该像素对应的深度值二值化结果为1,当深度纹理图中的像素对应的深度值小于0.99时,该像素对应的深度值二值化结果为0;也可以为当深度纹理图中的像素对应的深度值大于或等于0.99时,该像素对应的深度值二值化结果0,当深度纹理图中的像素对应的深度值小于0.99时,该像素对应的深度值二值化结果为1;具
体的二值化结果与深度阈值的关系可以由相关人员设定,对此,本申请不做限定。
[0102]
可选地,通过前述方式得到的第二遮挡纹理图中,像素对应的二值化结果为1时,该像素对应遮挡物,像素对应的二值化结果为0时,该像素对应非遮挡物。
[0103]
在本申请的一些可选的实施例中,在一次执行前述步骤101至104,或多次执行前述步骤101至步骤104,以达到更好的体积光效果时,上述步骤102中,“根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量”,至少包括以下步骤:
[0104]
1021、获取第一时间信息;
[0105]
1022、将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标;
[0106]
1023、利用所述采样纹理坐标,对所述预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量。
[0107]
其中,第一时间信息可以为时间量信息,具体可以为计时器中的记录的从游戏开始到现在经过的总时间,单位是秒或毫秒,第一时间信息对应的数值可以为小数。
[0108]
在本申请的一些可选的实施例中,前述步骤1022中,“将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标”,可具体包括以下步骤:
[0109]
s1、根据所述多个像素的第一纹理坐标及所述第一时间信息,得到第一二维向量;
[0110]
s2、将所述第一二维向量作为所述预设函数的输入,以通过所述预设函数提取所述第一二维向量的各分量的小数部分构建出第二二维向量;
[0111]
其中,所述第二二维向量中含有多个采样纹理坐标。
[0112]
具体地,上述预设函数为frac(),将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标可以通过以下公式(3)进行实现:
[0113]
uvnoise=frac(uvpixel+time)
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(3)
[0114]
公式(3)中,uvpixel为第一纹理坐标,time为第一时间信息,具体可以为二维时间信息,uvpixel与time的和为第一二维向量、uvnoise为第二二维向量,公式(3)适用于所有的第一纹理坐标,得到的第二二维向量对应的采样纹理坐标的数目与第一纹理坐标的数目相同。也就是说,第一纹理坐标、第一二维向量、第二二维向量以及采样纹理坐标一一对应。
[0115]
进一步地,在本申请的另一些可选的实施例中,上述步骤101中的第一纹理坐标还可以为第一遮挡纹理图对应的空白纹理图像中多个像素的纹理坐标,该空白纹理图像中的像素数量,与第一遮挡纹理图中的像素数量相同,且该空白纹理图像中的多个像素的纹理坐标,与第一遮挡纹理图中的像素的第一纹理坐标相同,即该空白纹理图像中的多个像素的纹理坐标与所述第一纹理坐标一一对应且相同。
[0116]
在本申请中,通过获取第一遮挡纹理图中多个像素的第一纹理坐标;根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行径向模糊处理,得到光线纹理图像;其中,所述光线纹理图像用于确定具有体积光效果的目标图像的方案,依据噪声向量纹理,对用于对第一遮挡纹理图进行模糊处理的采样坐标进行扰动,通过噪声向量的随
机特性,以减小采样点数对体积光分段效果的影响,并且可以进一步起到基于较少的采样点实现高质量的体积光效果图像的效果。
[0117]
如图3为本申请实施例提供的一种体积光效果处理方法的流程示意图,该方法的执行主体可以为计算机设备,该方法可至少包括以下步骤:
[0118]
301、获取目标图像对应的第一遮挡纹理图中多个像素的第一纹理坐标;
[0119]
302、根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;
[0120]
303、根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;
[0121]
304、基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行一次模糊处理,得到光线纹理图像;
[0122]
305、利用所述光线纹理图像与所述目标图像对应的场景颜色纹理图像,得到具有体积光效果的画面信息。
[0123]
本实施例对应的具体实现方式可参见前述内容,此处不再赘述。
[0124]
图4为本申请实施例提供的一种数据处理装置的结构示意图,该装置包括:获取模块41、采样模块42、确定模块43以及处理模块44;其中:
[0125]
获取模块41,用于获取第一遮挡纹理图中多个像素的第一纹理坐标;
[0126]
采样模块42,用于根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量;
[0127]
确定模块43,用于根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标;
[0128]
处理模块44,用于基于所述第二纹理坐标及参照坐标,对所述第一遮挡纹理图进行径向模糊处理,得到光线纹理图像;其中,所述光线纹理图像用于确定具有体积光效果的目标图像。
[0129]
可选地,上述装置还用于:
[0130]
获取目标图像对应的初始图像中,不透明物体的深度纹理图;
[0131]
对所述深度纹理图进行二值化处理,得到第二遮挡纹理图;
[0132]
对所述第二遮挡纹理图进行下采样,得到所述第一遮挡纹理图。
[0133]
可选地,上述采样模块42,在用于根据所述多个像素的第一纹理坐标,对预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量时,具体用于:
[0134]
获取第一时间信息;
[0135]
将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标;
[0136]
利用所述采样纹理坐标,对所述预设噪声向量纹理进行采样,得到含有所述多个像素对应的噪声值的抖动向量。
[0137]
可选地,上述采样模块42,在用于将所述多个像素的第一纹理坐标及所述第一时间信息,作为预设函数的输入,得到采样纹理坐标时,具体用于:
[0138]
根据所述多个像素的第一纹理坐标及所述第一时间信息,得到第一二维向量;
[0139]
将所述第一二维向量作为所述预设函数的输入,以通过所述预设函数提取所述第一二维向量的各分量的小数部分构建出第二二维向量;
[0140]
其中,所述第二二维向量中含有多个采样纹理坐标。
[0141]
可选地,上述确定模块43,在用于根据所述抖动向量,确定所述多个像素对应的抖动后的第二纹理坐标时,具体用于:
[0142]
获取所述第一遮挡纹理图的分辨率;
[0143]
利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量;
[0144]
根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标。
[0145]
可选地,在上述确定模块43,在用于根据处理后的所述抖动向量及所述多个像素的第一纹理坐标,确定所述第二纹理坐标时,具体用于:
[0146]
将处理后的所述抖动向量及所述多个像素的第一纹理坐标做加和处理,得到所述第二纹理坐标。
[0147]
可选地,在上述确定模块43用于利用所述分辨率,对所述抖动向量中的向量值进行处理,得到处理后的所述抖动向量时,具体用于:
[0148]
利用所述分辨率,对所述抖动向量中的向量值进行缩小处理,得到处理后的所述抖动向量。
[0149]
可选地,上述装置还用于:
[0150]
获取虚拟太阳的世界坐标;
[0151]
对所述虚拟太阳的世界坐标进行坐标变换,得到所述虚拟太阳在二维屏幕空间的屏幕坐标;
[0152]
基于所述屏幕坐标确定所述参照坐标。
[0153]
可选地,上述装置还用于:
[0154]
获取所述第一遮挡纹理图经所述径向模糊处理后的处理结果;
[0155]
将所述处理结果作为下次径向模糊处理的输入图像。
[0156]
可选地,上述装置还用于:
[0157]
对所述光线纹理图像进行滤波处理,得到目标光线纹理图像;
[0158]
获取太阳光颜色信息;
[0159]
利用所述目标光线纹理图像,与所述太阳光颜色信息确定出体积光光线纹理图像;
[0160]
将所述体积光光线纹理图像与所述目标图像对应的场景颜色纹理图像进行叠加,得到具有体积光效果的所述目标图像。
[0161]
本实施例对应的具体实现方式可参见前述内容,此处不再赘述。
[0162]
本申请还提供了一种电子设备,包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由所述处理器加载并执行以实现前述的图像处理方法,和/或体积光效果处理方法。
[0163]
本申请还提供了一种计算机可读介质,其上存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现前述的图像处理方法,和/或体积光效果处理方法。
[0164]
下面结合具体应用场景对本申请实施例提供的技术方案进行进一步补充说明。
[0165]
应用场景一
[0166]
参见图5所示,本申请提供的图像处理方法可包括以下步骤:
[0167]
501、获取当前帧的不透明物体的深度纹理;
[0168]
502、根据用户输入的深度阈值,对深度纹理进行二值化,得到遮挡信息纹理;
[0169]
503、对遮挡信息纹理进行下采样,得到经下采样后的遮挡信息纹理;
[0170]
504、以太阳在二维屏幕空间的坐标值为中心点,对下采样后的遮挡信息纹理进行多次迭代径向模糊,得到具有体积光效果的光线纹理(对应前述104中的光线纹理图像);
[0171]
505、对光线纹理进行双边模糊操作,移除光线图中的噪点,得到平滑的光线纹理;
[0172]
506、利用用户指定的太阳光颜色与平滑后的光线纹理相乘,得到具有颜色的体积光光线纹理,并将体积光光线纹理与当前帧计算光照之后的颜色纹理相加,得到有体积光效果的画面。
[0173]
具体地,待赋予体积光效果的当前帧的不透明物体的深度纹理中存储有对应标准设备坐标系(ndc)的深度值,一般而言,其范围是[0,1],0表示相机的近裁剪平面,1表示相机的远裁剪平面。在游戏场景中的不透明物体渲染完毕之后,得到该深度纹理。
[0174]
进一步地,可将虚拟太阳在世界空间的位置坐标进行投影变换,得到太阳在二维屏幕空间的坐标值。前述迭代次数由用户来控制,迭代次数越多,模糊效果越好。经过径向模糊之后,则可得到具有体积光效果的光线纹理。
[0175]
进一步地,在利用用户指定的太阳光颜色与光线纹理相乘之前,还需对前述得到的平滑的光线纹理进行上采样,以使平滑后的光线纹理的分辨率与前述深度纹理的分辨率相同。
[0176]
进一步地,前述光线纹理为灰度图,该光线纹理中各个像素对应的灰度值与用户输入的太阳光颜色信息相乘,即可得到有颜色的体积光光线纹理;体积光光线纹理与游戏的计算完光照之后的场景颜色纹理进行叠加,就可以得到有体积光效果的游戏画面。
[0177]
应用场景二
[0178]
针对前述步骤504,以太阳在二维屏幕空间的坐标值为中心点,对下采样后的遮挡信息纹理进行多次迭代径向模糊,得到具有体积光效果的光线纹理时,迭代次数由用户来控制,迭代次数越多,模糊效果越好。经过径向模糊之后,则可得到具有体积光效果的光线纹理。
[0179]
其中,针对设定迭代次数m后的每次迭代的径向模糊算法的详细流程如下:
[0180]
取用于存储径向模糊中间结果的空白帧的多个(全部)像素的纹理坐标uvpixel1和时间量time1计算出对噪声向量纹理采样的纹理坐标uvnoise1
[0181]
uvnoise 1=frac(uvpixel 1+time1)
[0182]
其中,frac()函数作用是取传入二维向量的各个分量的小数部分构建出新的二维向量并返回。上述空白帧与待赋予体积光效果的当前帧有对应关系,其分辨率与待采样的遮挡信息纹理的分辨率相同。
[0183]
利用uvnoise1对噪声向量纹理进行采样,并对采样结果进行处理,以使采样得到的向量的分量的范围为[

1,1];得到抖动向量uvdither2,根据当前渲染分辨率width1和height1对抖动向量进行缩小,并将缩小后的抖动向量与空白帧的多个像素的纹理坐标相加得到抖动后的纹理坐标pospixeldithered1:
[0184]
pospixeldithered1=uvpixel1+uvdither2/n1*float2(width1,height1)
[0185]
n1可以由用户设定,例如可以为2,进一步地,利用抖动后的坐标pospixeldithered1和太阳在屏幕空间的坐标possun得到当前像素到太阳的方向向量v:
[0186]
v=possun

pospixeldithered1
[0187]
对方向向量v根据采样次数n进行等分得到每次采样的步长向量deltav:
[0188]
deltav=v/n
[0189]
针对空白帧的多个像素中的每个像素,以自身对应的pospixeldithered1作为初始坐标开始循环n次,对当前待赋予体积光效果的当前帧对应的遮挡信息纹理(被采样纹理)进行采样,每次循环纹理采样坐标都累加deltav,采样结果加到总采样值totaloccu中,循环结束之后计算得到纹理采样坐标自身对应的最终的遮挡值finaloccu:
[0190]
finaloccu=totaloccu/n
[0191]
进一步得到针对空白帧的多个像素的多个纹理坐标对应的遮挡值,进而得到对当前待赋予体积光效果的当前帧对应的遮挡信息纹理的模糊结果,将该模糊结果存储于临时纹理(也可以存储于前述空白帧)中,以作为下次迭代的被采样纹理(也就是下次迭代被采样的遮挡信息纹理)。
[0192]
当迭代次数达到预设迭代次数m时,迭代停止,将最后一次迭代结束时,得到的经过m次径向模糊的遮挡信息纹理,作为具有体积光效果的光线纹理。
[0193]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的各个模块可以是或者也可以不是物理上分开的。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0194]
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助加必需的通用硬件平台的方式来实现,当然也可以通过硬件和软件结合的方式来实现。基于这样的理解,上述技术方案本质上或者说做出贡献的部分可以以计算机产品的形式体现出来,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd

rom、光学存储器等)上实施的计算机程序产品的形式。
[0195]
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1