CN116704098A - 有向距离场的生成方法、装置、电子设备及存储介质 - Google Patents
有向距离场的生成方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116704098A CN116704098A CN202310680194.3A CN202310680194A CN116704098A CN 116704098 A CN116704098 A CN 116704098A CN 202310680194 A CN202310680194 A CN 202310680194A CN 116704098 A CN116704098 A CN 116704098A
- Authority
- CN
- China
- Prior art keywords
- distance field
- point
- pixel point
- directional distance
- texture map
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 82
- 238000009877 rendering Methods 0.000 claims abstract description 20
- 230000003068 static effect Effects 0.000 claims description 29
- 238000013507 mapping Methods 0.000 claims description 24
- 238000004590 computer program Methods 0.000 claims description 4
- 238000004364 calculation method Methods 0.000 abstract description 46
- 238000010586 diagram Methods 0.000 description 14
- 238000012545 processing Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000005286 illumination Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000000463 material Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000000926 separation method 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/04—Texture mapping
Landscapes
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Image Generation (AREA)
Abstract
本申请提供一种有向距离场的生成方法、装置、电子设备及存储介质,涉及图像渲染技术领域。该方法通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。
Description
技术领域
本申请涉及图像渲染技术领域,具体而言,涉及一种有向距离场的生成方法、装置、电子设备及存储介质。
背景技术
SDF(Signed Distance Field,有向距离场)是指给定任意空间的位置点,返回这个点离空间场景物体最近的距离。SDF在光线步进技术中用于决定步进光线每次步进的距离。而光线步进技术的目的是通过发射步进光线,步进光线通过逐步步进最终与空间场景中的物体相交,而基于交点信息则可进行一系列的图像渲染操作。
现有技术中,是通过空间点的深度信息获取空间点的SDF值,但是,仅依赖于一层深度信息,会使得深度之后的场景信息被忽略,从而导致计算得到的SDF值存在较大误差。
发明内容
本申请的目的在于,针对上述现有技术中的不足,提供一种有向距离场的生成方法、装置、电子设备及存储介质,以便于提高生成的SDF值的精确性。
为实现上述目的,本申请实施例采用的技术方案如下:
第一方面,本申请实施例提供了一种有向距离场的生成方法,包括:
根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
第二方面,本申请实施例还提供了一种有向距离场的生成装置,包括:确定模块、生成模块;
所述确定模块,用于根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
所述确定模块,用于根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
所述生成模块,用于根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
所述生成模块,用于根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
第三方面,本申请实施例提供了一种电子设备,包括:处理器、存储介质和总线,存储介质存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储介质之间通过总线通信,处理器执行机器可读指令,以执实现如第一方面中提供的有向距离场的生成方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如第一方面提供的有向距离场的生成方法。
本申请的有益效果是:
本申请提供一种有向距离场的生成方法、装置、电子设备及存储介质,该方法通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
其次,本方案采用动静场景SDF分离存储的方式,将静态场景的SDF值对应存储至静态场景SDF纹理贴图中,将动态场景的SDF值对应存储至动态场景SDF纹理贴图中,由于静态场景的SDF值不需要每个都进行更新,从而可有效降低生成SDF值时的运算量。
另外,本方案中采用具有多层纹理贴图的SDF纹理贴图存储对应世界空间中空间点的SDF值,不同的世界空间范围使用相同大小(相同像素尺寸)的SDF纹理贴图进行映射,以实现不同映射精度。距虚拟相机越近,所需精度越大,SDF纹理贴图的映射精度越大,反之距虚拟相机越远,所需精度越小,SDF纹理贴图的映射精度越小。如此避免了因存储全场景均匀(远近皆映射相同的空间范围)SDF纹理贴图造成的过高显存占用。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的有向距离场的生成方法的流程示意图一;
图2为本申请实施例提供的一种SDF纹理贴图的示意图;
图3为本申请实施例提供的有向距离场的生成方法的流程示意图二;
图4为本申请实施例提供的一种SDF纹理贴图重叠区域展示示意图;
图5为本申请实施例提供的有向距离场的生成方法的流程示意图三;
图6为本申请实施例提供的一种像素点展示示意图;
图7为本申请实施例提供的有向距离场的生成方法的流程示意图四;
图8为本申请实施例提供的一种空间点展示示意图;
图9为本申请实施例提供的有向距离场的生成方法的流程示意图五;
图10为本申请实施例提供的有向距离场的生成方法的流程示意图六;
图11为本申请实施例提供的一种有向距离场的生成装置的示意图;
图12为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,应当理解,本申请中附图仅起到说明和描述的目的,并不用于限定本申请的保护范围。另外,应当理解,示意性的附图并未按实物比例绘制。本申请中使用的流程图示出了根据本申请的一些实施例实现的操作。应该理解,流程图的操作可以不按顺序实现,没有逻辑的上下文关系的步骤可以反转顺序或者同时实施。此外,本领域技术人员在本申请内容的指引下,可以向流程图添加一个或多个其他操作,也可以从流程图中移除一个或多个操作。
另外,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请实施例中将会用到术语“包括”,用于指出其后所声明的特征的存在,但并不排除增加其它的特征。
首先,对本方案所涉及的相关背景进行说明:
在游戏的一些高级渲染效果如漫反射全局光、镜面反射、软阴影、环境光遮蔽中,可通过raymarching(光线步进)技术实现,raymarching技术也即指从相机向屏幕各像素发射射线,射线通过逐步前进的方式与游戏场景(场景中的虚拟模型)求交,射线步进的长度取决于射线当前所在的位置离游戏场景的最短距离,也即指当前位置(空间点)的有向距离场信息(SDF值)。SDF(Signed Distance Field,有向距离场),指给定任意空间的位置pos,返回这个点离场景物体最近的距离。
通常,采用SDF纹理贴图来对应存储游戏场景空间范围中各空间点的SDF值。由于游戏场景中的模型可能是动态移动的,或者由于虚拟相机位置的改变,会导致游戏场景中的同一空间点在不同帧渲染时具有不同的SDF值,也即,每帧渲染中游戏场景中各空间点的SDF值并非是保持不变的,会根据实际情况进行实时更新,那么,如何精确的计算出每帧渲染时所需的SDF值变得尤为重要。
现有技术中,第一种是采用Unreal 4引擎(虚幻4引擎)进行SDF的计算,使用了离线烘培+实时拼凑的方法:即离线计算每个空间点的SDF数据到一张小型的3D纹理,在实时渲染的时候再把此包含SDF数据的3D纹理通过平移旋转缩放应用到该模型在场景中的实际位置上,得到空间点的真实SDF信息。这种方法的一个显著缺点是只能处理静态场景,无法处理动态场景:比如可破碎模型,带动画的模型,可移动的角色车辆等;另离线预生成的SDF数据没有光照信息,也就无法进行后续漫反射全局光,镜面反射等一些渲染计算。
第二种是采用KinectFusion(点云重建)算法进行SDF的计算,该算法是基于多帧渲染的深度贴图来构建场景SDF信息,每帧只更新相机所能看到的一层信息。但是该算法存在以下确定:1、由于仅通过深度贴图恢复SDF数据,深度贴图后侧的SDF信息无法准确获取,导致SDF的信息不完整。2、计算出的SDF值跟真实的SDF值差异较大,从而影响raymarching时的步长取值,可能造成跳过实际表面的错误。3、只依赖一层深度信息,深度背后的场景信息一无所知,有时候这是一堵很厚的墙,有时候可能就是一片薄薄的飘带,这样就会在深度后面生成错误的SDF信息,而错误的SDF信息会导致全局光计算过程中的漏光,鬼影ghosting等各种问题。
基于此,本方案提出一种全新的SDF生成方法,通过结合空间点的坐标信息和法线朝向以及三角面片的信息进行SDF的计算,摆脱了依赖深度信息的计算方式,且能够适用于动态场景和静态场景下的任一空间点的SDF的计算,实现了更加精确的SDF计算。
图1为本申请实施例提供的有向距离场的生成方法的流程示意图一;本方法的执行主体可以是终端设备或者服务器、处理器等计算设备。如图1所示,该方法可包括:
S101、根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息。
本方案侧重于对有向距离场(下文中以SDF指代)的生成方法的描述,在实施例中是以当前待渲染画面帧所对应的当前SDF纹理的生成进行说明,在实际的应用场景中,待渲染画面每一帧都会发生变化,对应的用于存储场景空间点SDF的纹理贴图也会实时更新,而针对每一次的更新,则均可采用如本方案所示出的SDF生成方法,生成新的SDF,并采用新的SDF替换前一次的SDF,以保证SDF纹理贴图中所存储的各空间点的SDF值在每一帧渲染画面时均为最新的最精确的SDF值。
假设在前一帧渲染时,步进光线由游戏场景中的空间点a点步进至空间点b点,当前正处于b点,而当前帧渲染时,要获取步进光线由b点继续步进的距离,则可先计算当前的SDF纹理贴图中空间点b所映射至的像素点1所对应存储的SDF值,从而将纹理贴图中像素点1所存储的SDF值作为当前帧渲染时,步进光线由b点所要步进的距离。
第一像素点可以指当前的目标SDF纹理贴图中待更新SDF值的像素点中的任一像素点,第一像素点的像素坐标信息可以指第一像素点在SDF纹理贴图中的坐标。
基于所获取的第一像素点的像素坐标信息,可以根据纹理贴图与世界空间的坐标映射关系,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息。
这里对纹理贴图与世界空间之间的映射方式进行说明:
为通过SDF纹理贴图实现访问世界空间(世界坐标)下空间某位置的SDF值,现定义SD纹理贴图在世界空间中的覆盖盒子范围(AABB:axis-al igned bounding box),包围盒坐标最小值为BBMin,包围盒坐标最大值为BBMax,则SDF纹理贴图的每个像素的像素坐标(纹理坐标UVW)就可以准确的映射到世界空间中的一个空间点(WorldPos),反之亦然,映射公式如下:WorldPos=BBMin+(BBMax-BBMin)*UVW;UVW=(WorldP os-BBMin)/(BBMax-BBMin)。
基于上述映射公式,在已知第一像素点的像素坐标信息时,可以计算得到第一像素点映射至世界空间中的第一空间点的空间坐标信息;反之,在已知世界空间中的第一空间点的空间坐标信息时,同样可以计算得到第一空间点映射至SDF纹理贴图中的第一像素点的像素坐标信息。
S102、根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息。
通常,世界空间中的空间点均是依附于三角面片而存在的,也就是世界空间中的物体均是由最小单元的三角面片构成的,不同的空间点可能位于同一个三角面片上,也有可能位于不同的三角面片上。
为了避免待更新SDF值的像素点所在的面片与光栅化方向平行导致无法通过光栅化获取该下像素点的深度的问题,保证能够拿到面片的深度信息,本实施例中在预设的多个方向上进行光栅化。
光栅化是指把三角面片转化为像素的过程,并且考虑遮挡关系,如果一个像素位置同时被多个三角面片覆盖,则选取最前面的三角面片信息吸入这个像素。
根据预设的光栅化方向,可以在SDF纹理贴图中确定出第一像素点对应的各相邻像素点。而针对各相邻像素点同样可基于各相邻像素点的像素坐标信息以及纹理贴图与世界空间的映射关系,确定出各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息。
S103、根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息。
在一些实施例中,可基于上述所确定出的第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息。
本实施例中采用基于空间点的空间坐标信息以及空间点对应的相邻空间点的空间坐标信息进行SDF的计算,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。
另外,根据空间点的法线朝向可以进一步地确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
S104、根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,第二像素点为目标有向距离场中除第一像素点以及各相邻像素点之外的剩余像素点。
第二像素点为当前的目标有向距离场纹理贴图中除了第一像素点和第二像素点对应的各相邻像素点之外的剩余待更新SDF值的像素点。
在一种可实现的方式中,对于第二像素点的SDF的生成,同样可采用上述步骤S101-S103的方式进行计算,此时,第二像素点可以作为第一像素点执行运算。
而在另一种可实现的方式中,为了减少运算量,提高计算效率,对于第二像素点的SDF值的生成,可以是根据已经计算得到的第一像素点的SDF值以及第一像素点对应的各相邻像素点的SDF值进行综合分析,生成第二像素点的SDF值。
基于此,对当前的目标有向距离场纹理贴图中所有需要重新生成SDF值的像素点均完成了SDF生成,从而可根据生成的SDF值替换原始所存储的SDF值,得到更新后的目标有向距离场纹理贴图。
综上,本实施例提供的有向距离场的生成方法,通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
可选地,目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图。
本实施例中通过动静场景分离存储的方式,将静态场景的SDF值对应存储至静态场景SDF纹理贴图中,将动态场景的SDF值对应存储至动态场景SDF纹理贴图中,由于静态场景的SDF值不需要每个都进行更新,从而可有效降低生成SDF值时的运算量。
静态场景可以由场景中的静态模型构成,例如一面墙、一条路等,而动态场景可以由场景中的动态模型构成,例如:移动的载具、漂浮的云朵等。而场景则存在于世界空间范围中。
目标有向距离场纹理贴图包括多层纹理贴图,各层纹理贴图采用相同尺寸存储对应世界空间范围中各空间点的有向距离场信息,且各层纹理贴图中各像素点存储对应空间点的有向距离场信息;其中,各层纹理贴图所对应的世界空间范围根据世界空间范围与虚拟相机的距离确定。
图2为本申请实施例提供的一种SDF纹理贴图的示意图。如图2所示,以目标SDF纹理贴图包括三层纹理贴图为例,目标SDF纹理贴图可以为围绕虚拟相机建立的三层3D纹理贴图,分别映射距离虚拟相机不同距离的游戏世界空间的空间范围。
如图2所示,每一层为SDF纹理贴图映射的世界空间范围。每一层纹理贴图存储的空间点的SDF所属的世界空间范围由虚拟相机位置决定,当虚拟相机位置发生变化时,纹理贴图对应的世界空间范围也随之变化,其中,每层纹理贴图的纹理数量不发生变化,每层纹理贴图采用相同像素尺寸(例如:128*128*128,)存储对应世界空间范围的空间点的有向距离场信息,也即,每层纹理贴图均为长宽高相等的纹理贴图,因而SDF纹理贴图所占用的显存始终固定。
可选地,不同的世界空间范围使用相同大小(相同像素尺寸)的SDF纹理贴图进行映射,以实现不同映射精度。距虚拟相机越近,所需精度越大,SDF纹理贴图的映射精度越大,反之距虚拟相机越远,所需精度越小,SDF纹理贴图的映射精度越小。如此避免了因存储全场景均匀(远近皆映射相同的空间范围)SDF纹理贴图造成的过高显存占用。
图3为本申请实施例提供的有向距离场的生成方法的流程示意图二;可选地,步骤S101中,根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,可以包括:
S301、若当前的目标有向距离场纹理贴图为静态场景有向距离场纹理贴图,则根据当前的目标有向距离场纹理贴图所对应的世界空间范围与前一目标有向距离场纹理贴图所对应的世界空间范围,确定当前的目标有向距离场纹理贴图与前一目标有向距离场纹理贴图的重叠区域和非重叠区域。
在从当前的目标SDF纹理贴图中获取第一像素点的像素坐标信息之前,若确定当前的目标SDF纹理贴图为静态场景SDF纹理贴图,则可先确定出当前的目标SDF纹理贴图与前一目标SDF纹理贴图的重叠区域和非重叠区域,对于重叠区域,可以将前一目标SDF纹理贴图所存储的SDF值对应复制到当前的目标SDF纹理贴图中,而对于非重叠区域,则采用步骤S101-S104的方法生成非重叠区域中各像素点的SDF值。那么,当前的目标SDF纹理贴图中的第一像素点则可以指非重叠区域中的任一像素点。
值得注意的是,前一目标SDF纹理贴图可以对应前一帧渲染画面时需要读取SDF值的目标SDF纹理贴图,也就是说,前一帧渲染画面时,步进光线的步进距离可以从前一目标SDF纹理贴图中读取对应的SDF得到;当前的目标SDF纹理贴图则对应当前帧渲染画面时需要读取SDF值的目标SDF纹理贴图;当前帧渲染画面时,步进光线的步进距离可以从当前的目标SDF纹理贴图中读取对应的SDF得到。在游戏运行的过程中,每一帧游戏画面的渲染可以从每帧所对应的SDF纹理贴图中读取空间点的SDF以进行光线步进,并根据步进光线与场景的交点,获取交点的相关信息,进行一些高级渲染。
其中,当前的目标SDF纹理贴图和前一目标SDF纹理贴图为同一贴图,仅仅是贴图中相同的像素点所对应存储的SDF值可能发生了变化。
S302、根据前一目标有向距离场纹理贴图中重叠区域的各像素的有向距离场信息,对当前的目标有向距离场纹理贴图中重叠区域中各像素的有向距离场信息进行更新。
图4为本申请实施例提供的一种SDF纹理贴图重叠区域展示示意图,如图4所示,黑色部分表示前一目标SDF纹理贴图与当前的目标SDF纹理贴图的重叠区域(值得注意的是,实际应用中纹理贴图是三维的,此处为演示方便简略为二维),对于重叠区域而言,当前的目标SDF纹理贴图中重叠区域的各像素点存储的SDF值可以直接复制前一目标SDF纹理贴图中该重叠区域中各像素点存储的SDF值。由于重叠区域所对应的世界空间范围在当前帧和前一帧是未发生改变的,对应存储的世界空间范围中空间点的SDF值也是未发生改变的,只是对于目标SDF纹理贴图而言,重叠区域中同一像素点在前一目标SDF纹理贴图中和在当前的DF纹理贴图中的像素坐标信息是不同的,从而导致在从前一目标SDF纹理贴图中复制重叠区域中各像素点的SDF值时,需要对应进行复制,例如前一目标SDF纹理贴图中重叠区域左上角的像素点假设为(4,7,9),其对应存储的SDF值为a,而前一目标SDF纹理贴图中重叠区域左上角的像素点(4,7,9)对应在当前的目标SDF纹理贴图中则变为像素点(0,0,11),那么,当前的目标SDF纹理贴图中重叠区域的像素点(0,0,11)存储的SDF值则替换为a,同理,可对应得到重叠区域中各像素点的SDF值。
S303、将当前的目标有向距离场纹理贴图中非重叠区域中各像素的有向距离场信息初始化为预设值,第一像素点为非重叠区域中的像素点。
而对于非重叠区域而言,如图4中的斜线部分所表示的区域,可首先将非重叠区域中各像素点的SDF值均初始化为预设值,其中,预设值可以为CellSize*4(4倍的CellSize),其中,CellSize表征SDF纹理贴图中单个像素边长映射到世界空间中的长度。
对于非重叠区域中的各像素点而言,均需要重新计算得到各像素点的新的SDF值,那么,上述的第一像素点可以为非重叠区域中的任一像素点。
可选地,步骤S101中,根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,可以包括:若目标有向距离场纹理贴图为动态场景有向距离场纹理贴图,则将当前的目标有向距离场纹理贴图中各像素的有向距离场信息初始化为预设值,第一像素点为当前的目标有向距离场纹理贴图中的任一像素点。
而若当前的目标SDF纹理贴图为动态场景SDF纹理贴图时,则纹理贴图中所有像素点的SDF均需要重新生成,那么,此时可将所有像素点的SDF均初始化为预设值,这里的预设值与上述一致,可以为CellSize*4。
需要说明的是,选取CellSize*4的原因是上述对预设方向进行光栅化时是选取第一像素点沿光栅化方向3个像素选取相邻像素点进行计算,若预设值选取大于CellSize*4,则光线步进的过程中会跳过障碍物,无法获取光线步进的准确结果。
当然预设值的选取可根据实际的光栅化场景进行适应性调整。
图5为本申请实施例提供的有向距离场的生成方法的流程示意图三;如图5所示,步骤S102中,根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点,可以包括:
S501、根据第一像素点的像素坐标信息以及第一光栅化方向,确定沿第一光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第一相邻像素点。
第一光栅化方向可以为x轴方向,假设第一像素点的像素坐标信息为[x,y,z],基于[x,y,z]沿着x轴方向前后各3个像素可分别确定出第一像素点对应的各第一相邻像素点,分别包括:[x-3,y,z],[x-2,y,z],[x-1,y,z],[x+1,y,z],[x+2,y,z],[x+3,y,z]。
S502、根据第一像素点的像素坐标信息以及第二光栅化方向,确定沿第二光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第二相邻像素点。
第二光栅化方向可以为y轴方向,基于[x,y,z]沿着y轴方向前后各3个像素可分别确定出第一像素点对应的各第二相邻像素点,分别包括:[x,y-3,z],[x,y-2,z],[x,y-1,z],[x,y+1,z],[x,y+2,z],[x,y+3,z]。
S503、根据第一像素点的像素坐标信息以及第三光栅化方向,确定沿第三光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第三相邻像素点。
第三光栅化方向可以为z轴方向,基于[x,y,z]沿着z轴方向前后各3个像素可分别确定出第一像素点对应的各第二相邻像素点,分别包括:[x,y,z-3],[x,y,z-2],[x,y,z-1],[x,y,z+1],[x,y,z+2],[x,y,z+3]。
图6为本申请实施例提供的一种像素点展示示意图,如图6所示,则分别展示了第一像素点及按照上述光栅化方向所确定出的第一像素点对应的各相邻像素点的像素坐标信息及位置关系。
图7为本申请实施例提供的有向距离场的生成方法的流程示意图四;可选地,步骤S103中,根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,可以包括:
S701、根据第一空间点的空间坐标信息以及第一空间点所对应的三角面片的深度信息,生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息。
图8为本申请实施例提供的一种空间点展示示意图,假设第一空间点以及第一空间点对应的三角面片的位置关系如图8所示,首先可获取三角面片的深度信息,其中,面片的深度信息可以指面片所代表的位置距观察者(可以指虚拟相机)的距离。深度信息的计算方式可以为过屏幕某像素点做平行于观察方向的射线,该射线与面片相交的点距该像素点的距离即为该面片的深度。
根据三角面片的深度信息可以计算出三角面片的在世界空间中的位置信息,那么,根据第一空间点的位置信息以及三角面片的位置信息,进行矢量运算,则可计算出第一空间点的SDF值,也就是点到面的距离求解运算。而第一空间点的SDF值则对应存储至当前的目标SDF纹理贴图中的第一像素点中,从而得到了第一像素点的SDF值。
S702、根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息。
而对于第一像素点的各相邻像素点的SDF值的生成,则可以分别根据各相邻空间点的空间坐标信息、第一空间点的空间坐标信息以及第一空间点的法线朝向,逐一进行计算。具体在下面实施例进行详细展开。
图9为本申请实施例提供的有向距离场的生成方法的流程示意图五;可选地,步骤S702中,根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息,可以包括:
S901、根据目标相邻空间点的空间坐标信息、以及第一空间点的空间坐标信息,确定目标相邻空间点与第一空间点之间的距离值,目标相邻空间点为各相邻空间点中的任一相邻空间点。
以图6所示的像素点展示示意图为例,这里的目标相邻空间点可以指图6中除第一像素点[x,y,z]之外的任一像素点所映射至世界空间中的空间点。
以生成像素点[x-1,y,z]的SDF值为例,那么,目标相邻空间点则指像素点[x-1,y,z]映射至世界空间中的空间点,可根据纹理贴图与世界空间之间的坐标映射关系,确定出目标相邻空间点的空间坐标信息。
假设第一空间点的空间坐标信息为P,目标相邻空间点的空间坐标信息为P2,那么,可计算P点到P2点的距离D,得到目标相邻空间点与第一空间点之间的距离值。
S902、根据第一空间点与目标相邻空间点的方向矢量以及第一空间点的法线的点乘结果。
另外,假设第一空间点的法线朝向为第一空间点与目标相邻空间点的方向矢量为/>则可计算/>与/>的点乘,得到点乘结果。
S903、根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
根据点乘结果可以确定目标相邻空间点的SDF值取值的正负号,从而得到目标相邻空间点的SDF值,而目标相邻空间点的SDF值对应存储至目标相邻像素点中,则可得到目标相邻像素点的SDF值,也即得到当前的目标SDF纹理贴图中像素点[x-1,y,z]的SDF值,如图6所示的像素点[x-1,y,z]的SDF值。
而对于图6中所示出的第一像素点[x,y,z]之外的任一相邻像素点的SDF值的计算,可按照上述的计算方式逐一执行,从而分别得到第一像素点对应的各相邻像素点的SDF值。
可选地,步骤S903中根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息,可以包括:若点乘结果大于0,则将距离值作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
若与/>的点乘结果大于0,则可说明目标相邻空间点位于第一空间点对应的三角面片的外侧,此时,可将计算得到的目标相邻空间点与第一空间点之间的距离值确定为目标相邻像素点的SDF值。
若点乘结果小于或等于0,则将距离值的负数作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
而若与/>的点乘结果小于或等于0,则可说明目标相邻空间点位于第一空间点对应的三角面片的内侧,此时,可将计算得到的目标相邻空间点与第一空间点之间的距离值的负数确定为目标相邻像素点的SDF值。
图10为本申请实施例提供的有向距离场的生成方法的流程示意图六;可选地,步骤S104中,根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,可以包括:
S1001、判断当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息是否大于预设阈值,目标第二像素点为各第二像素点中的任一像素点。
而对于第二像素点的SDF的运算,可通过多帧扩散的方式进行运算。以目标第二像素点的SDF值的生成为例,可先判断目标第二像素点当前的SDF值的绝对值是否大于预设阈值,这里的预设阈值可以指3*CellSize。
在目标第二像素点的SDF未被重新生成之前,目标第二像素点的SDF值被初始化为4*CellSize,而当判断目标第二像素点的SDF值大于3*CellSize时,可认为目标第二像素点的SDF值在此之前还未被重新生成。
S1002、若是,则根据当前的目标有向距离场纹理贴图中目标第二像素点的各预设相邻像素点的有向距离场信息,确定初始的有向距离场信息。
可选地,可获取目标第二像素点的所有邻居像素点的SDF值,这里的邻居像素点指目标第二像素点在当前的目标SDF纹理贴图中上下左右四个相邻的像素点。并从四个相邻的像素点的SDF值中取SDF值绝对值的最小值K为初始的SDF。
S1003、根据初始的有向距离场信息、以及目标有向距离场纹理贴图中单位像素边长映射至世界空间范围中的长度,生成当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息。
那么,目标第二像素点的SDF值则可以用(K+1)*CellSize来更新。目标第二像素点为所有第二像素点中的任意一个,可以按照目标第二像素点的SDF值的生成方式,生成所有第二像素点的SDF值。
而当判断目标第二像素点当前的SDF值的绝对值小于3*CellSize时,则可跳过当前的更新逻辑,也即目标第二像素点的SDF值保持不变。
可选地,步骤S104中,根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息之后,本方法还可包括:若生成的当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息的绝对值大于前一目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值,则将生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息调整为前一目标有向距离场纹理贴图中第一像素点的有向距离场信息。
通过上述的各步骤,已经初步的生成了当前的目标SDF纹理贴图中各需要重新计算SDF值的像素点的新的SDF值,但是,不一定所计算出的新的SDF值会被采用,由于SDF值指的是空间点与场景的最近距离,那么,还可将所生成的当前的目标SDF纹理贴图中各像素点的SDF值的绝对值与前一目标SDF纹理贴图各像素点的SDF值的绝对值进行比较。取两次中的最小值作为当前的目标SDF纹理贴图中各像素点的SDF值。
例如:通过本方法所生成的当前的目标SDF纹理贴图中第一像素点的SDF值为-4,而前一目标SDF纹理贴图中第一像素点的SDF值为5,由于当前的目标SDF纹理贴图中第一像素点的SDF值的绝对值小于前一目标SDF纹理贴图中第一像素点的SDF值的绝对值,则可采用生成的当前的目标SDF纹理贴图中第一像素点的SDF值-4作为当前的目标SDF纹理贴图中第一像素点的最终SDF值。
而若所生成的当前的目标SDF纹理贴图中第一像素点的SDF值为-5,而前一目标SDF纹理贴图中第一像素点的SDF值为4,由于当前的目标SDF纹理贴图中第一像素点的SDF值的绝对值大于前一目标SDF纹理贴图中第一像素点的SDF值的绝对值,则生成的当前的目标SDF纹理贴图中第一像素点的SDF值仍然保持4不变。
通过本方法对生成的SDF的值进行校正,可以保证每一帧渲染时所对应的目标SDF纹理贴图中各像素点的SDF值均能取得最精确的值,从而保证光线步进的准确性。
可选地,本申请的方法还可包括:根据当前的目标有向距离场纹理贴图中各像素点的有向距离场信息渲染当前帧。
假设当前帧待渲染的画面为渲染虚拟模型a的间接光照,那么,可以从虚拟模型a向游戏场景中发射步进光线,在当前帧步进光线所要步进的距离则从当前的目标有向距离场纹理贴图中读取,假设步进光线当前所在的位置为空间点a,则可从当前的目标有向距离场纹理贴图中空间点a所对应的像素点中读取所存储的空间点a的SDF值,从而步进光线根据该SDF值进行步进,假设步进后与场景中的虚拟模型b相交,那么可读取交点的材质信息,例如交点位置场景表面的材质、纹理等信息,从而结合入射光线信息,例如:光线颜色、强度、角度、材质、衰减度等,可以确定交点的颜色信息,从而根据交点的颜色信息对虚拟模型a进行间接光照的计算。
当然,这仅为一种渲染场景的举例,实际应用中,步进光线的作用并不限于进行间接光照的计算,但是步进光线的步进距离则根每帧步进时空间点的SDF相关。
综上所述,本实施例提供的有向距离场的生成方法,通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
其次,本方案采用动静场景SDF分离存储的方式,将静态场景的SDF值对应存储至静态场景SDF纹理贴图中,将动态场景的SDF值对应存储至动态场景SDF纹理贴图中,由于静态场景的SDF值不需要每个都进行更新,从而可有效降低生成SDF值时的运算量。
另外,本方案中采用具有多层纹理贴图的SDF纹理贴图存储对应世界空间中空间点的SDF值,不同的世界空间范围使用相同大小(相同像素尺寸)的SDF纹理贴图进行映射,以实现不同映射精度。距虚拟相机越近,所需精度越大,SDF纹理贴图的映射精度越大,反之距虚拟相机越远,所需精度越小,SDF纹理贴图的映射精度越小。如此避免了因存储全场景均匀(远近皆映射相同的空间范围)SDF纹理贴图造成的过高显存占用。
下述对用以执行本申请所提供的有向距离场的生成方法的装置、设备及存储介质等进行说明,其具体的实现过程以及技术效果参见上述,下述不再赘述。
图11为本申请实施例提供的一种有向距离场的生成装置的示意图,该有向距离场的生成装置实现的功能对应上述有向距离场的生成方法执行的步骤。该装置可以理解为上述的终端设备或服务器,或服务器的处理器,也可以理解为独立于上述服务器或处理器之外的在服务器控制下实现本申请功能的组件,如图11所示,该装置可包括:确定模块110、生成模块120;
确定模块110,用于根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息;
确定模块110,用于根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
生成模块120,用于根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
生成模块120,用于根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,第二像素点为目标有向距离场中除第一像素点以及各相邻像素点之外的剩余像素点。
可选地,目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图;
目标有向距离场纹理贴图包括多层纹理贴图,各层纹理贴图采用相同尺寸存储对应世界空间范围中各空间点的有向距离场信息,且各层纹理贴图中各像素点存储对应空间点的有向距离场信息;其中,各层纹理贴图所对应的世界空间范围根据世界空间范围与虚拟相机的距离确定。
可选地,装置还包括:更新模块、初始化模块;
确定模块110,还用于若当前的目标有向距离场纹理贴图为静态场景有向距离场纹理贴图,则根据当前的目标有向距离场纹理贴图所对应的世界空间范围与前一目标有向距离场纹理贴图所对应的世界空间范围,确定当前的目标有向距离场纹理贴图与前一目标有向距离场纹理贴图的重叠区域和非重叠区域;
更新模块,用于根据前一目标有向距离场纹理贴图中重叠区域的各像素的有向距离场信息,对当前的目标有向距离场纹理贴图中重叠区域中各像素的有向距离场信息进行更新;
初始化模块,用于将当前的目标有向距离场纹理贴图中非重叠区域中各像素的有向距离场信息初始化为预设值,第一像素点为非重叠区域中的像素点。
可选地,初始化模块,还用于若目标有向距离场纹理贴图为动态场景有向距离场纹理贴图,则将当前的目标有向距离场纹理贴图中各像素的有向距离场信息初始化为预设值,第一像素点为当前的目标有向距离场纹理贴图中的任一像素点。
可选地,确定模块110,具体用于根据第一像素点的像素坐标信息以及第一光栅化方向,确定沿第一光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第一相邻像素点;
根据第一像素点的像素坐标信息以及第二光栅化方向,确定沿第二光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第二相邻像素点;
根据第一像素点的像素坐标信息以及第三光栅化方向,确定沿第三光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第三相邻像素点。
可选地,生成模块120,具体用于根据第一空间点的空间坐标信息以及第一空间点所对应的三角面片的深度信息,生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息;
根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息。
可选地,生成模块120,具体用于根据目标相邻空间点的空间坐标信息、以及第一空间点的空间坐标信息,生成目标相邻空间点与第一空间点之间的距离值,目标相邻空间点为各相邻空间点中的任一相邻空间点;
根据第一空间点与目标相邻空间点的方向矢量以及第一空间点的法线的点乘结果;
根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
可选地,生成模块120,具体用于若点乘结果大于0,则将距离值作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息;若点乘结果小于或等于0,则将距离值的负数作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
可选地,生成模块120,具体用于判断当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息是否大于预设阈值,目标第二像素点为各第二像素点中的任一像素点;
若是,则根据当前的目标有向距离场纹理贴图中目标第二像素点的各预设相邻像素点的有向距离场信息,确定初始的有向距离场信息;
根据初始的有向距离场信息、以及目标有向距离场纹理贴图中单位像素边长映射至世界空间中的长度,生成当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息。
可选地,装置还包括:调整模块;
调整模块,用于若生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值大于前一目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值,则将生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息调整为前一目标有向距离场纹理贴图中第一像素点的有向距离场信息。
可选地,装置还包括:渲染模块;
渲染模块,用于根据当前的目标有向距离场纹理贴图中各像素点的有向距离场信息渲染当前帧。
以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital singnal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
上述模块可以经由有线连接或无线连接彼此连接或通信。有线连接可以包括金属线缆、光缆、混合线缆等,或其任意组合。无线连接可以包括通过LAN、WAN、蓝牙、ZigBee、或NFC等形式的连接,或其任意组合。两个或更多个模块可以组合为单个模块,并且任何一个模块可以分成两个或更多个单元。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考方法实施例中的对应过程,本申请中不再赘述。
图12为本申请实施例提供的一种电子设备的结构示意图,包括:处理器801、存储介质802和总线803,存储介质802存储有处理器801可执行的机器可读指令,当电子设备运行如实施例中的一种有向距离场的生成方法时,处理器801与存储介质802之间通过总线803通信,处理器801执行机器可读指令,以执行以下步骤:
根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息;
根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,第二像素点为目标有向距离场中除第一像素点以及各相邻像素点之外的剩余像素点。
在一个可行的实施方案中,目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图;
目标有向距离场纹理贴图包括多层纹理贴图,各层纹理贴图采用相同尺寸存储对应世界空间范围中各空间点的有向距离场信息,且各层纹理贴图中各像素点存储对应空间点的有向距离场信息;其中,各层纹理贴图所对应的世界空间范围根据世界空间范围与虚拟相机的距离确定。
在一个可行的实施方案中,处理器801在执行根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,还用于:若当前的目标有向距离场纹理贴图为静态场景有向距离场纹理贴图,则根据当前的目标有向距离场纹理贴图所对应的世界空间范围与前一目标有向距离场纹理贴图所对应的世界空间范围,确定当前的目标有向距离场纹理贴图与前一目标有向距离场纹理贴图的重叠区域和非重叠区域;
根据前一目标有向距离场纹理贴图中重叠区域的各像素的有向距离场信息,对当前的目标有向距离场纹理贴图中重叠区域中各像素的有向距离场信息进行更新;
将当前的目标有向距离场纹理贴图中非重叠区域中各像素的有向距离场信息初始化为预设值,第一像素点为非重叠区域中的像素点。
在一个可行的实施方案中,处理器801在执行根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,还用于:若目标有向距离场纹理贴图为动态场景有向距离场纹理贴图,则将当前的目标有向距离场纹理贴图中各像素的有向距离场信息初始化为预设值,第一像素点为当前的目标有向距离场纹理贴图中的任一像素点。
在一个可行的实施方案中,处理器801在执行根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点时,具体用于:根据第一像素点的像素坐标信息以及第一光栅化方向,确定沿第一光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第一相邻像素点;
根据第一像素点的像素坐标信息以及第二光栅化方向,确定沿第二光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第二相邻像素点;
根据第一像素点的像素坐标信息以及第三光栅化方向,确定沿第三光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第三相邻像素点。
在一个可行的实施方案中,处理器801在执行根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息时,具体用于:根据第一空间点的空间坐标信息以及第一空间点所对应的三角面片的深度信息,生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息;
根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息时,具体用于:根据目标相邻空间点的空间坐标信息、以及第一空间点的空间坐标信息,确定目标相邻空间点与第一空间点之间的距离值,目标相邻空间点为各相邻空间点中的任一相邻空间点;
根据第一空间点与目标相邻空间点的方向矢量以及第一空间点的法线的点乘结果;
根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息时,具体用于:若点乘结果大于0,则将距离值作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息;
若点乘结果小于或等于0,则将距离值的负数作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息时,具体用于:判断当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息是否大于预设阈值,目标第二像素点为各第二像素点中的任一像素点;
若是,则根据当前的目标有向距离场纹理贴图中目标第二像素点的各预设相邻像素点的有向距离场信息,确定初始的有向距离场信息;
根据初始的有向距离场信息、以及目标有向距离场纹理贴图中单位像素边长映射至世界空间中的长度,生成当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息之后,还用于:若生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值大于前一目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值,则将生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息调整为前一目标有向距离场纹理贴图中第一像素点的有向距离场信息。
在一个可行的实施方案中,处理器801还用于:根据当前的目标有向距离场纹理贴图中各像素点的有向距离场信息渲染当前帧。
通过上述方式,电子设备通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
其中,存储介质802存储有程序代码,当程序代码被处理器801执行时,使得处理器801执行本说明书上述“示例性方法”部分中描述的根据本申请各种示例性实施方式的有向距离场的生成方法中的各种步骤。
处理器801可以是通用处理器,例如中央处理器(CPU)、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储介质802作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。存储器可以包括至少一种类型的存储介质,例如可以包括闪存、硬盘、多媒体卡、卡型存储器、随机访问存储器(Random Access Memory,RAM)、静态随机访问存储器(Static Random Access Memory,SRAM)、可编程只读存储器(Programmable Read Only Memory,PROM)、只读存储器(Read Only Memory,ROM)、带电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性存储器、磁盘、光盘等等。存储器是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。本申请实施例中的存储介质802还可以是电路或者其它任意能够实现存储功能的装置,用于存储程序指令和/或数据。
可选地,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行,处理器执行以下步骤:
根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息;
根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,第二像素点为目标有向距离场中除第一像素点以及各相邻像素点之外的剩余像素点。
在一个可行的实施方案中,目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图;
目标有向距离场纹理贴图包括多层纹理贴图,各层纹理贴图采用相同尺寸存储对应世界空间范围中各空间点的有向距离场信息,且各层纹理贴图中各像素点存储对应空间点的有向距离场信息;其中,各层纹理贴图所对应的世界空间范围根据世界空间范围与虚拟相机的距离确定。
在一个可行的实施方案中,处理器801在执行根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,还用于:若当前的目标有向距离场纹理贴图为静态场景有向距离场纹理贴图,则根据当前的目标有向距离场纹理贴图所对应的世界空间范围与前一目标有向距离场纹理贴图所对应的世界空间范围,确定当前的目标有向距离场纹理贴图与前一目标有向距离场纹理贴图的重叠区域和非重叠区域;
根据前一目标有向距离场纹理贴图中重叠区域的各像素的有向距离场信息,对当前的目标有向距离场纹理贴图中重叠区域中各像素的有向距离场信息进行更新;
将当前的目标有向距离场纹理贴图中非重叠区域中各像素的有向距离场信息初始化为预设值,第一像素点为非重叠区域中的像素点。
在一个可行的实施方案中,处理器801在执行根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,还用于:若目标有向距离场纹理贴图为动态场景有向距离场纹理贴图,则将当前的目标有向距离场纹理贴图中各像素的有向距离场信息初始化为预设值,第一像素点为当前的目标有向距离场纹理贴图中的任一像素点。
在一个可行的实施方案中,处理器801在执行根据第一像素点的像素坐标信息以及预设的光栅化方向,分别确定第一像素点对应的各相邻像素点时,具体用于:根据第一像素点的像素坐标信息以及第一光栅化方向,确定沿第一光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第一相邻像素点;
根据第一像素点的像素坐标信息以及第二光栅化方向,确定沿第二光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第二相邻像素点;
根据第一像素点的像素坐标信息以及第三光栅化方向,确定沿第三光栅化方向且与第一像素点相邻预设数量的各像素点为第一像素点对应的各第三相邻像素点。
在一个可行的实施方案中,处理器801在执行根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息时,具体用于:根据第一空间点的空间坐标信息以及第一空间点所对应的三角面片的深度信息,生成当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息;
根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息时,具体用于:根据目标相邻空间点的空间坐标信息、以及第一空间点的空间坐标信息,确定目标相邻空间点与第一空间点之间的距离值,目标相邻空间点为各相邻空间点中的任一相邻空间点;
根据第一空间点与目标相邻空间点的方向矢量以及第一空间点的法线的点乘结果;
根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据点乘结果、以及距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息时,具体用于:若点乘结果大于0,则将距离值作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息;
若点乘结果小于或等于0,则将距离值的负数作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行根据第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息时,具体用于:判断当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息是否大于预设阈值,目标第二像素点为各第二像素点中的任一像素点;
若是,则根据当前的目标有向距离场纹理贴图中目标第二像素点的各预设相邻像素点的有向距离场信息,确定初始的有向距离场信息;
根据初始的有向距离场信息、以及目标有向距离场纹理贴图中单位像素边长映射至世界空间中的长度,生成当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息。
在一个可行的实施方案中,处理器801在执行第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息之后,还用于:若生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值大于前一目标有向距离场纹理贴图中第一像素点的有向距离场信息的绝对值,则将生成的当前的目标有向距离场纹理贴图中第一像素点的有向距离场信息调整为前一目标有向距离场纹理贴图中第一像素点的有向距离场信息。
在一个可行的实施方案中,处理器801还用于:根据当前的目标有向距离场纹理贴图中各像素点的有向距离场信息渲染当前帧。
通过上述方式,电子设备通过获取待生成SDF值的第一像素点映射至世界空间中的第一空间点的空间坐标信息以及第一像素点对应的各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息可分别生成第一像素点的SDF值以及各相邻像素点的SDF值。其中,由于空间坐标信息为空间点的实际位置信息,而SDF本身表征的为空间点与场景物体的最近距离,那么,直接采用空间点的实际位置信息进行SDF的计算,可以使得计算结果精确度较高,摆脱了传统依赖空间点的深度信息进行计算时,深度信息缺失所导致的计算结果准确性较差的问题。并且进一步地结合空间点的法线朝向可以确定空间点与其最近的场景物体的位置关系,从而对计算得到的SDF的取值正负号进行准确判定,有效提升计算结果的准确性。
在本申请实施例中,该计算机程序被处理器运行时还可以执行其它机器可读指令,以执行如实施例中其它所述的方法,关于具体执行的方法步骤和原理参见实施例的说明,在此不再详细赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(英文:processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取存储器(英文:Random Access Memory,简称:RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (14)
1.一种有向距离场的生成方法,其特征在于,包括:
根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
2.根据权利要求1所述的方法,其特征在于,所述目标有向距离场纹理贴图包括:静态场景有向距离场纹理贴图和动态场景有向距离场纹理贴图;
所述目标有向距离场纹理贴图包括多层纹理贴图,各层纹理贴图采用相同尺寸存储对应世界空间范围中各空间点的有向距离场信息,且各层纹理贴图中各像素点存储对应空间点的有向距离场信息;其中,各层纹理贴图所对应的世界空间范围根据世界空间范围与虚拟相机的距离确定。
3.根据权利要求2所述的方法,其特征在于,所述根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,包括:
若所述当前的目标有向距离场纹理贴图为静态场景有向距离场纹理贴图,则根据所述当前的目标有向距离场纹理贴图所对应的世界空间范围与前一目标有向距离场纹理贴图所对应的世界空间范围,确定所述当前的目标有向距离场纹理贴图与前一目标有向距离场纹理贴图的重叠区域和非重叠区域;
根据前一目标有向距离场纹理贴图中所述重叠区域的各像素的有向距离场信息,对当前的目标有向距离场纹理贴图中所述重叠区域中各像素的有向距离场信息进行更新;
将当前的目标有向距离场纹理贴图中所述非重叠区域中各像素的有向距离场信息初始化为预设值,所述第一像素点为所述非重叠区域中的像素点。
4.根据权利要求2所述的方法,其特征在于,所述根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息之前,包括:
若所述目标有向距离场纹理贴图为动态场景有向距离场纹理贴图,则将所述当前的目标有向距离场纹理贴图中各像素的有向距离场信息初始化为预设值,所述第一像素点为所述当前的目标有向距离场纹理贴图中的任一像素点。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,包括:
根据所述第一像素点的像素坐标信息以及第一光栅化方向,确定沿所述第一光栅化方向且与所述第一像素点相邻预设数量的各像素点为所述第一像素点对应的各第一相邻像素点;
根据所述第一像素点的像素坐标信息以及第二光栅化方向,确定沿所述第二光栅化方向且与所述第一像素点相邻预设数量的各像素点为所述第一像素点对应的各第二相邻像素点;
根据所述第一像素点的像素坐标信息以及第三光栅化方向,确定沿所述第三光栅化方向且与所述第一像素点相邻预设数量的各像素点为所述第一像素点对应的各第三相邻像素点。
6.根据权利要求1所述的方法,其特征在于,所述根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,包括:
根据所述第一空间点的空间坐标信息以及所述第一空间点所对应的三角面片的深度信息,生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息;
根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,生成当前的目标有向距离场纹理贴图中各相邻像素点的有向距离场信息,包括:
根据目标相邻空间点的空间坐标信息、以及所述第一空间点的空间坐标信息,确定所述目标相邻空间点与所述第一空间点之间的距离值,所述目标相邻空间点为各相邻空间点中的任一相邻空间点;
根据所述第一空间点与所述目标相邻空间点的方向矢量以及所述第一空间点的法线的点乘结果;
根据所述点乘结果、以及所述距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
8.根据权利要求7所述的方法,其特征在于,所述根据所述点乘结果、以及所述距离值,生成当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息,包括:
若所述点乘结果大于0,则将所述距离值作为当前的目标有向距离场纹理贴图中所述目标相邻像素点的有向距离场信息;
若所述点乘结果小于或等于0,则将所述距离值的负数作为当前的目标有向距离场纹理贴图中目标相邻像素点的有向距离场信息。
9.根据权利要求1所述的方法,其特征在于,所述根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,包括:
判断当前的目标有向距离场纹理贴图中目标第二像素点的有向距离场信息是否大于预设阈值,所述目标第二像素点为各第二像素点中的任一像素点;
若是,则根据当前的目标有向距离场纹理贴图中所述目标第二像素点的各预设相邻像素点的有向距离场信息,确定初始的有向距离场信息;
根据所述初始的有向距离场信息、以及所述目标有向距离场纹理贴图中单位像素边长映射至所述世界空间中的长度,生成当前的目标有向距离场纹理贴图中所述目标第二像素点的有向距离场信息。
10.根据权利要求1所述的方法,其特征在于,根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息之后,还包括:
若生成的当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息的绝对值大于前一目标有向距离场纹理贴图中所述第一像素点的有向距离场信息的绝对值,则将生成的当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息调整为前一目标有向距离场纹理贴图中所述第一像素点的有向距离场信息。
11.根据权利要求1-10任一所述的方法,其特征在于,还包括:
根据所述当前的目标有向距离场纹理贴图中各像素点的有向距离场信息渲染当前帧。
12.一种有向距离场的生成装置,其特征在于,包括:确定模块、生成模块;
所述确定模块,用于根据当前的目标有向距离场纹理贴图中第一像素点的像素坐标信息,确定所述第一像素点映射至世界空间中的第一空间点的空间坐标信息;
所述确定模块,用于根据所述第一像素点的像素坐标信息以及预设的光栅化方向,分别确定所述第一像素点对应的各相邻像素点,并根据各相邻像素点的像素坐标信息确定各相邻像素点映射至世界空间中的各相邻空间点的空间坐标信息;
所述生成模块,用于根据所述第一空间点的空间坐标信息、各相邻空间点的空间坐标信息以及所述第一空间点的法线朝向,分别生成当前的目标有向距离场纹理贴图中所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息;
所述生成模块,用于根据所述第一像素点的有向距离场信息以及各相邻像素点的有向距离场信息,分别生成所述当前的目标有向距离场纹理贴图中各第二像素点的有向距离场信息,所述第二像素点为所述目标有向距离场中除所述第一像素点以及各相邻像素点之外的剩余像素点。
13.一种电子设备,其特征在于,包括:处理器、存储介质和总线,所述存储介质存储有所述处理器可执行的程序指令,当电子设备运行时,所述处理器与所述存储介质之间通过总线通信,所述处理器执行所述程序指令,以实现如权利要求1至11任一所述的有向距离场的生成方法。
14.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1至11任一所述的有向距离场的生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310680194.3A CN116704098A (zh) | 2023-06-08 | 2023-06-08 | 有向距离场的生成方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310680194.3A CN116704098A (zh) | 2023-06-08 | 2023-06-08 | 有向距离场的生成方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116704098A true CN116704098A (zh) | 2023-09-05 |
Family
ID=87830691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310680194.3A Pending CN116704098A (zh) | 2023-06-08 | 2023-06-08 | 有向距离场的生成方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116704098A (zh) |
-
2023
- 2023-06-08 CN CN202310680194.3A patent/CN116704098A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10540576B1 (en) | Panoramic camera systems | |
US20230053462A1 (en) | Image rendering method and apparatus, device, medium, and computer program product | |
US11069124B2 (en) | Systems and methods for reducing rendering latency | |
US11138782B2 (en) | Systems and methods for rendering optical distortion effects | |
CN112316420B (zh) | 模型渲染方法、装置、设备及存储介质 | |
CN111243071A (zh) | 实时三维人体重建的纹理渲染方法、系统、芯片、设备和介质 | |
CN111968216A (zh) | 一种体积云阴影渲染方法、装置、电子设备及存储介质 | |
US10699467B2 (en) | Computer-graphics based on hierarchical ray casting | |
US10553012B2 (en) | Systems and methods for rendering foveated effects | |
CN108230435B (zh) | 采用立方图纹理的图形处理 | |
CN111612882B (zh) | 图像处理方法、装置、计算机存储介质及电子设备 | |
US9224233B2 (en) | Blending 3D model textures by image projection | |
EP4213102A1 (en) | Rendering method and apparatus, and device | |
CN113160420A (zh) | 一种三维点云重建的方法、装置、电子设备及存储介质 | |
US9401044B1 (en) | Method for conformal visualization | |
CN115908716A (zh) | 虚拟场景灯光渲染方法、装置、存储介质及电子设备 | |
WO2022188460A1 (zh) | 光照渲染方法、装置、电子设备及存储介质 | |
JP3629243B2 (ja) | モデリング時の距離成分を用いてレンダリング陰影処理を行う画像処理装置とその方法 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
CN116704098A (zh) | 有向距离场的生成方法、装置、电子设备及存储介质 | |
CN116777731A (zh) | 软光栅化的方法、装置、设备、介质及程序产品 | |
CN116109758B (zh) | 一种光源投影位置定位、场景渲染的方法及装置 | |
CN117557740B (zh) | 三维模型分割层级切换方法、装置、电子设备及存储介质 | |
JP7368950B2 (ja) | 効率的な建物フットプリント特定のための方法及び装置 | |
US20220245890A1 (en) | Three-dimensional modelling from photographs in series |
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 |