本申请涉及图像渲染,具体而言,涉及一种有向距离场的生成方法、装置、电子设备及存储介质。
背景技术:
1、sdf(signed distance field,有向距离场)是指给定任意空间的位置点,返回这个点离空间场景物体最近的距离。sdf在光线步进技术中用于决定步进光线每次步进的距离。而光线步进技术的目的是通过发射步进光线,步进光线通过逐步步进最终与空间场景中的物体相交,而基于交点信息则可进行一系列的图像渲染操作。
2、现有技术中,是通过空间点的深度信息获取空间点的sdf值,但是,仅依赖于一层深度信息,会使得深度之后的场景信息被忽略,从而导致计算得到的sdf值存在较大误差。
技术实现思路
1、本申请的目的在于,针对上述现有技术中的不足,提供一种有向距离场的生成方法、装置、电子设备及存储介质,以便于提高生成的sdf值的精确性。
2、为实现上述目的,本申请实施例采用的技术方案如下:
3、第一方面,本申请实施例提供了一种有向距离场的生成方法,包括:
4、根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
5、根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
6、根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
7、根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
8、第二方面,本申请实施例还提供了一种有向距离场的生成装置,包括:确定模块、生成模块;
9、所述确定模块,用于根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
10、所述确定模块,用于根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
11、所述生成模块,用于根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
12、所述生成模块,用于根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
13、第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执实现如第一方面中提供的有向距离场的生成方法。
14、第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的有向距离场的生成方法。
15、本申请的有益效果是:
16、本申请提供一种有向距离场的生成方法、装置、电子设备及存储介质,该方法通过获取待生成sdf值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的sdf值以及各相邻像素点的sdf值。其中,由于空间坐标信息为空间点的实际位置信息,而sdf本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行sdf的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的sdf的取值正负号进行准确判定,有效提升计算结果的准确性。
17、其次,本方案采用动静场景sdf分离存储的方式,将静态场景的sdf值对应存储至静态场景sdf纹理贴图中,将动态场景的sdf值对应存储至动态场景sdf纹理贴图中,由于静态场景的sdf值不需要每个都进行更新,从而可有效降低生成sdf值时的运算量。
18、另外,本方案中采用具有多层纹理贴图的sdf纹理贴图存储对应世界空间中空间点的sdf值,不同的世界空间范围使用相同大小(相同像素尺寸)的sdf纹理贴图进行映射,以实现不同映射精度。距虚拟相机越近,所需精度越大,sdf纹理贴图的映射精度越大,反之距虚拟相机越远,所需精度越小,sdf纹理贴图的映射精度越小。如此避免了因存储全场景均匀(远近皆映射相同的空间范围)sdf纹理贴图造成的过高显存占用。
1.一种有向距离场的生成方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图;
3.根据权利要求2所述的方法,其特征在于,所述根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,包括:
4.根据权利要求2所述的方法,其特征在于,所述根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,包括:
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,包括:
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,包括:
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息,包括:
8.根据权利要求7所述的方法,其特征在于,所述根据所述点乘结果、以及所述距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息,包括:
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,包括:
10.根据权利要求1所述的方法,其特征在于,根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息之后,还包括:
11.根据权利要求1-10任一所述的方法,其特征在于,还包括:
12.一种有向距离场的生成装置,其特征在于,包括:确定模块、生成模块;
13.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以实现如权利要求1至11任一所述的有向距离场的生成方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至11任一所述的有向距离场的生成方法。