本公开涉及计算机图形,具体而言,涉及一种阴影渲染方法、装置、设备及存储介质。
背景技术:
1、光线在传播过程中被不透明的物体遮挡时,在遮挡物体背面形成暗区,暗区投射到另一物体上即形成阴影,阴影可以体现出场景中各物体之间的空间关系以及光源的位置等信息,在三维场景渲染应用中,为了增加渲染的逼真效果,提升场景的层次感,通常都会使用阴影渲染技术来为场景中的物体绘制阴影。
2、在进行阴影渲染时,通常将各像素点在阴影空间下的深度和在光源空间下的深度进行比对,得到像素点对应的阴影信息,然而,上述方式只能确定出被遮挡的物体,针对物体不同表面的遮挡情况区分度低,从而影响阴影渲染的准确性。
技术实现思路
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、确定所述第一像素点在所述世界空间下的三维坐标的偏导数,得到偏导结果,并基于所述偏导结果,确定所述第一像素点的法线方向。
43、一种可选的实施方式中,所述阴影检测模块具体用于:
44、针对每个所述第一像素点,在所述法线方向与所述光照方向相同的情况下,将该第一像素点确定为所述目标像素点。
45、一种可选的实施方式中,所述阴影检测模块具体用于:
46、针对每个所述第一像素点,在所述第一像素点的法线方向与所述第一像素点对应的拍摄方向符合预设条件的情况下,将所述第一像素点确定为第二像素点;
47、在所述第二像素点的法线方向与所述光照方向相同的情况下,将所述第二像素点确定为所述目标像素点。
48、一种可选的实施方式中,在所述第一像素点的法线方向与所述第一像素点对应的拍摄方向之间的夹角呈钝角的情况下,确定所述第一像素点的法线方向与所述第一像素点对应的拍摄方向符合预设条件。
49、本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述任一种可能的阴影渲染方法的步骤。
50、本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述任一种可能的阴影渲染方法的步骤。
51、关于上述阴影渲染装置、电子设备及计算机可读存储介质的效果描述参见上述阴影渲染方法的说明,这里不再赘述。
52、应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
53、为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。