本技术涉及光栅化渲染,特别涉及一种基于滤波核预测的神经阴影计算方法及装置。
背景技术:
1、在光栅化渲染中,阴影映射算法可通过预计算光源视角的深度信息构建深度缓冲,支持快速判断场景各个点是否处于阴影之中,大幅提升了渲染效率。阴影映射方法只产生0或1的硬阴影,针对具有一定体积的光源产生的软阴影效果,主流的软阴影算法百分比靠近滤波(percentage-closer filtering)通过查询局部区域内光源深度更小的物体的百分比来作为软阴影的比例。一些更复杂的软阴影方法对硬阴影的统计信息进行预先滤波,再从统计信息中快速恢复出近似的软阴影比例。
2、尽管上述方法已经在工业生产中得到广泛应用,但阴影映射算法存在精度不足导致的硬阴影走样、锯齿等问题,而软阴影方法由于真实软阴影求解的复杂性,只计算一个近似比例作为结果,和实际阴影存在一定差别,同时还容易产生漏光等问题,亟待解决。
技术实现思路
1、本技术提供一种基于滤波核预测的神经阴影计算方法及装置,以解决现有的阴影映射方法的精度较差,容易导致硬阴影走样等问题。
2、本技术第一方面实施例提供一种基于滤波核预测的神经阴影计算方法,包括以下步骤:确定目标光源的光源位置,并从所述光源位置出发,基于预设的光栅化图形管线和阴影映射策略,以生成所述目标光源在所有方向上的深度缓冲;从目标相机出发,对所述深度缓冲进行正常光栅化渲染,以得到对应的基础阴影信息和几何缓冲信息,并基于所述基础阴影信息和所述几何缓冲信息,处理并计算目标网络输入信息;将所述目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对所述目标网络输入信息进行网络推理,以输出所述目标神经网络和所述目标网络输入信息对应的滤波核参数,并通过所述滤波核参数对所述基础阴影信息进行滤波,以生成对应的最终软阴影结果。
3、可选地,在本技术的一个实施例中,在将所述目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对所述目标网络输入信息进行网络推理之前,还包括:基于预设的unet模型和空洞滤波器参数模型,构建所述目标神经网络;随机生成目标光源对应的多组光源位置和所述目标相机对应的多组相机位置和多组相机方向,以基于所述多组光源位置、所述多组相机位置和所述多组相机方向,构建对应的训练样本;对所述多组光源位置、所述多组相机位置和所述多组相机方向进行扰动操作,以构建对应的扰动样本;利用所述第三方推理库分别对所述训练样本和所述扰动样本进行网络推理,以得到所述训练样本对应的第一预测软阴影和所述扰动样本对应的第二预测软阴影;基于预设的光线追踪算法,计算当前场景下所述训练样本和所述扰动样本对应的真实阴影,以根据所述真实阴影确定所述目标神经网络对应的目标结果;基于所述目标结果、所述第一预测软阴影和第二预测软阴影,并结合预设的损失函数,训练所述目标神经网络。
4、可选地,在本技术的一个实施例中,所述确定目标光源的光源位置,并从所述光源位置出发,基于预设的光栅化图形管线和阴影映射策略,以生成所述目标光源在所有方向上的深度缓冲,包括:确定所述目标光源的光源位置和光源半径,并基于预设的立方体贴图策略,从所述光源位置出发,将所有方向分割为正方体的六个面,使得每个方向恰好包含在其中一个面内;利用所述光栅化图形管线,对所述正方体的六个面分别进行对应的透视投影,以将当前场景几何映射至所述正方体每个面中,且记录每个正方体每个面的深度缓冲。
5、可选地,在本技术的一个实施例中,所述从目标相机出发,对所述深度缓冲进行正常光栅化渲染,以得到对应的基础阴影信息和几何缓冲信息,并基于所述基础阴影信息和所述几何缓冲信息,处理并计算目标网络输入信息,包括:基于所述深度缓冲,计算相机视角着色点的基础阴影信息,同时收集所述相机视角着色点的几何缓冲信息,其中,所述几何缓冲信息包括相机坐标系位置、法线、阴影映射深度;基于所述基础阴影信息和所述几何缓冲信息,计算所述相机视角着色点的法线和所述相机视角着色点到所述目标光源方向夹角的第一余弦值、所述相机视角着色点的法线和所述相机视角着色点到所述目标相机方向夹角的第二余弦值,并确定相机视角的深度,以计算所述第二余弦值与所述相机视角的深度的比值;确定所述相机视角着色点与所述目标光源之间的第一距离和所述相机视角着色点在阴影映射中查询到的遮挡物到所述目标光源的第二距离,并计算所述第一距离和所述第二距离之间的距离差值和距离比例;根据所述距离差值、所述距离比例、所述第一余弦值和所述第二余弦值计算所述相机视角着色点对应的半影大小,并确定所述相机视角着色点对应的基础阴影;基于所述第二余弦值与所述相机视角的深度的比值、所述第一余弦值、所述第一距离、所述第二距离、所述距离差值、所述距离比例、所述半影大小和所述基础阴影,确定所述目标网络输入信息。
6、可选地,在本技术的一个实施例中,所述将所述目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对所述目标网络输入信息进行网络推理,以输出所述目标神经网络和所述目标网络输入信息对应的滤波核参数,并通过所述滤波核参数对所述基础阴影信息进行滤波,以生成对应的最终软阴影结果,包括:利用所述第三方推理库对所述目标网络输入信息进行网络推理,以确定所述目标神经网络中预设的空洞滤波器的每个子滤波器对应的滤波核参数;通过所述空洞滤波器中当前子滤波器的滤波核参数对所述基础阴影信息进行滤波,以得到所述当前子滤波器对应的当前滤波结果;将所述当前滤波结果输入至所述空洞滤波器的下一子滤波器中,以利用所述下一子滤波器的滤波核参数对所述基础阴影信息进行滤波,直至所述空洞滤波器中的每个子滤波器均对所述基础阴影信息进行滤波为止,以生成所述基础阴影信息对应的最终软阴影结果。
7、本技术第二方面实施例提供一种基于滤波核预测的神经阴影计算装置,包括:阴影映射模块,用于确定目标光源的光源位置,并从所述光源位置出发,基于预设的光栅化图形管线和阴影映射策略,以生成所述目标光源在所有方向上的深度缓冲;光栅化渲染模块,用于从目标相机出发,对所述深度缓冲进行正常光栅化渲染,以得到对应的基础阴影信息和几何缓冲信息,并基于所述基础阴影信息和所述几何缓冲信息,处理并计算目标网络输入信息;第一网络推理模块,用于将所述目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对所述目标网络输入信息进行网络推理,以输出所述目标神经网络和所述目标网络输入信息对应的滤波核参数,并通过所述滤波核参数对所述基础阴影信息进行滤波,以生成对应的最终软阴影结果。
8、可选地,在本技术的一个实施例中,还包括:构建模块,用于在将所述目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对所述目标网络输入信息进行网络推理之前基于预设的unet模型和空洞滤波器参数模型,构建所述目标神经网络;随机模块,用于随机生成目标光源对应的多组光源位置和所述目标相机对应的多组相机位置和多组相机方向,以基于所述多组光源位置、所述多组相机位置和所述多组相机方向,构建对应的训练样本;扰动模块,用于对所述多组光源位置、所述多组相机位置和所述多组相机方向进行扰动操作,以构建对应的扰动样本;第二网络推理模块,用于利用所述第三方推理库分别对所述训练样本和所述扰动样本进行网络推理,以得到所述训练样本对应的第一预测软阴影和所述扰动样本对应的第二预测软阴影;计算模块,用于基于预设的光线追踪算法,计算当前场景下所述训练样本和所述扰动样本对应的真实阴影,以根据所述真实阴影确定所述目标神经网络对应的目标结果;训练模块,用于基于所述目标结果、所述第一预测软阴影和第二预测软阴影,并结合预设的损失函数,训练所述目标神经网络。
9、可选地,在本技术的一个实施例中,所述阴影映射模块包括:分割单元,用于确定所述目标光源的光源位置和光源半径,并基于预设的立方体贴图策略,从所述光源位置出发,将所有方向分割为正方体的六个面,使得每个方向恰好包含在其中一个面内;透视投影单元,用于利用所述光栅化图形管线,对所述正方体的六个面分别进行对应的透视投影,以将当前场景几何映射至所述正方体每个面中,且记录每个正方体每个面的深度缓冲。
10、可选地,在本技术的一个实施例中,所述光栅化渲染模块包括:收集单元,用于基于所述深度缓冲,计算相机视角着色点的基础阴影信息,同时收集所述相机视角着色点的几何缓冲信息,其中,所述几何缓冲信息包括相机坐标系位置、法线、阴影映射深度;第一确定单元,用于基于所述基础阴影信息和所述几何缓冲信息,计算所述相机视角着色点的法线和所述相机视角着色点到所述目标光源方向夹角的第一余弦值、所述相机视角着色点的法线和所述相机视角着色点到所述目标相机方向夹角的第二余弦值,并确定相机视角的深度,以计算所述第二余弦值与所述相机视角的深度的比值;第二确定单元,用于确定所述相机视角着色点与所述目标光源之间的第一距离和所述相机视角着色点在阴影映射中查询到的遮挡物到所述目标光源的第二距离,并计算所述第一距离和所述第二距离之间的距离差值和距离比例;第三确定单元,用于根据所述距离差值、所述距离比例、所述第一余弦值和所述第二余弦值计算所述相机视角着色点对应的半影大小,并确定所述相机视角着色点对应的基础阴影;第四确定单元,用于基于所述第二余弦值与所述相机视角的深度的比值、所述第一余弦值、所述第一距离、所述第二距离、所述距离差值、所述距离比例、所述半影大小和所述基础阴影,确定所述目标网络输入信息。
11、可选地,在本技术的一个实施例中,所述第一网络推理模块包括:推理单元,用于利用所述第三方推理库对所述目标网络输入信息进行网络推理,以确定所述目标神经网络中预设的空洞滤波器的每个子滤波器对应的滤波核参数;滤波单元,用于通过所述空洞滤波器中当前子滤波器的滤波核参数对所述基础阴影信息进行滤波,以得到所述当前子滤波器对应的当前滤波结果;生成单元,用于将所述当前滤波结果输入至所述空洞滤波器的下一子滤波器中,以利用所述下一子滤波器的滤波核参数对所述基础阴影信息进行滤波,直至所述空洞滤波器中的每个子滤波器均对所述基础阴影信息进行滤波为止,以生成所述基础阴影信息对应的最终软阴影结果。
12、本技术第三方面实施例提供一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现如上述实施例所述的基于滤波核预测的神经阴影计算方法。
13、本技术第四方面实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,该程序被处理器执行时实现如上的基于滤波核预测的神经阴影计算方法。
14、本技术第五方面实施例提供一种计算机程序产品,包括计算机程序,所述计算机程序被执行,以用于实现上述的基于滤波核预测的神经阴影计算方法。
15、由此,本技术的实施例具有以下有益效果:
16、本技术的实施例可通过确定目标光源的光源位置,并从光源位置出发,基于预设的光栅化图形管线和阴影映射策略,以生成目标光源在所有方向上的深度缓冲;从目标相机出发,对深度缓冲进行正常光栅化渲染,以得到对应的基础阴影信息和几何缓冲信息,并基于基础阴影信息和几何缓冲信息,处理并计算目标网络输入信息;将目标网络输入信息输入至预先训练的目标神经网络,以利用预设的第三方推理库对目标网络输入信息进行网络推理,以输出目标神经网络和目标网络输入信息对应的滤波核参数,并通过滤波核参数对基础阴影信息进行滤波,以生成对应的最终软阴影结果。本技术能够从基础阴影信息中计算视觉效果良好的软阴影,具有阴影准确、效率高、方法泛化性良好等优势,在实时阴影渲染中有着广阔的应用前景。由此,解决了现有的阴影映射方法的精度较差,容易导致硬阴影走样等问题。
17、本技术附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本技术的实践了解到。