System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及计算机图形学,尤其涉及一种有向距离场的存储方法、系统、设备及介质。
技术介绍
1、在计算机图形学
中,sdf(signed distance field,有向距离场)是一种常用来表示隐式的曲面的函数,其存储了空间中每个点到最近表面的距离。sdf广泛应用于实时渲染、几何处理和物理模拟等领域。传统的sdf存储方法通常使用三维纹理,将所有点的距离值保存在三维纹理的每个体素中。然而上述存储方式十分占用空间,导致sdf的应用受到限制。
2、因此,亟需提出一种有向距离场的存储方法来解决上述缺陷。
技术实现思路
1、有鉴于此,本专利技术提出了一种有向距离场的存储方法、系统、设备及介质,解决了sdf距离场存储过程中存储体积过大问题,极大减少了内存上的消耗,提高了sdf的查询效率。
2、基于上述目的,本专利技术实施例的一方面提供了一种有向距离场的存储方法,具体包括如下步骤:
3、将模型的包围盒切分为若干体素,根据所述模型中各目标三角形面片的重心坐标,确定各所述目标三角形面片分别对应的所述体素并获取两者间的最短有向距离作为所述体素对应的最短有向距离;
4、将所述模型的包围盒分别按照x轴、y轴和z轴分割为若干体素网络,并以各所述体素网络的顶点坐标作为节点构建kd树,其中所述体素网络中包括若干所述体素;
5、判断各所述体素网络中包括的所有所述体素的所述最短有向距离是否满足预设条件;
6、响应于未满足预设条件,存储所
7、在一些实施方式中,所述的有向距离场的存储方法还包括:
8、响应于满足预设条件,计算所述体素网络内包括的所有所述体素对应的最短有向距离的均值,并将所述均值存储至所述kd树中对应所述体素网络的节点中。
9、在一些实施方式中,所述判断各所述体素网络中包括的所有所述体素的所述最短有向距离是否满足预设条件的步骤,包括:
10、判断所述体素网络中包括的所有所述体素的所述最短有向距离对应的符号是否相同,且所有所述最短有向距离间的方差是否小于预设差值;
11、若所述体素网络中包括的所有所述体素的所述最短有向距离对应的符号相同,且所有所述最短有向距离间的方差小于预设差值,判断为满足预设条件;
12、若所述体素网络中包括的所有所述体素的所述最短有向距离中存在至少一个所述最短有向距离对应的符号不相同,或所有所述最短有向距离间的方差大于预设差值,判断为不满足预设条件。
13、在一些实施方式中,所述的有向距离场的存储方法还包括:
14、响应于查询操作被触发,获取查询点的坐标,在所述kd树中查找顶点坐标与所述查询点的坐标相近的目标节点;
15、根据所述目标节点内的存储信息,确定所述查询点对应的目标最短有向距离。
16、在一些实施方式中,所述根据所述目标节点内的存储信息,确定所述查询点对应的目标最短有向距离的步骤,包括:
17、响应于所述存储信息为所述最短有向距离的均值,将所述均值作为目标最短有向距离;
18、响应于所述存储信息为所述存储地址指针,根据所述存储地址指针获取与所述查询点匹配的所述体素,将匹配的所述体素的最短有向距离作为目标最短有向距离。
19、在一些实施方式中,所述确定各所述目标三角形面片分别对应的所述体素并获取两者间的最短有向距离作为所述体素对应的最短有向距离的步骤,包括:
20、针对每个所述体素,从所述体素的目标点向多个方向发出射线,并判断是否存在所述射线与所述体素对应的所述三角形面片相交;
21、若存在所述射线与所述体素对应的所述三角形面片相交,获取所有所述射线与对应的所述三角形面片的交点与所述目标点的距离,并将其中的最短距离作为所述体素对应的所述最短有向距离;
22、其中,所述目标点包括所述体素的中心点或起始点。
23、在一些实施方式中,所述的有向距离场的存储方法还包括:
24、遍历所述模型中所有三角形面片,针对每个所述三角形面片计算其面积,并判断所述面积是否大于预设面积;
25、响应于所述面积大于预设面积,将所述三角形面片作为所述目标三角形面片并存入过滤列表。
26、本专利技术实施例的另一方面,还提供了一种有向距离场的存储系统,有向距离场的存储系统包括:
27、体素化单元,用于将模型的包围盒切分为若干体素,根据所述模型中各目标三角形面片的重心坐标,确定各所述目标三角形面片分别对应的所述体素并获取两者间的最短有向距离作为所述体素对应的最短有向距离;
28、构建单元,用于将所述模型的包围盒分别按照x轴、y轴和z轴分割为若干体素网络,并以各所述体素网络的顶点坐标作为节点构建kd树,其中所述体素网络中包括若干所述体素;
29、判断单元,用于判断各所述体素网络中包括的所有所述体素的所述最短有向距离是否满足预设条件;
30、存储单元,用于响应于未满足预设条件,存储所述体素网络内包括的所有所述体素及其所述最短有向距离,并将对应的存储地址指针存储至所述kd树中对应所述体素网络的节点中。
31、本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机程序,所述计算机程序由所述处理器执行时实现如上方法的步骤。
32、本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。
33、本专利技术至少具有以下有益技术效果:本专利技术的有向距离场的存储方法,通过计算每个体素对应的距离值来确定sdf值变化剧烈的体素网络,以体素网络的顶点构建kd树以对模型空间进行划分,将变化剧烈的sdf值存储在kd树对应节点上,对于sdf值变化较小或不变化的体素网络,将该体素网络内sdf值的均值存储在kd树对应节点上,避免了大量体素网络的冗余存储,尤其是对于稀疏分布的三维模型,存储空间的节约效果更为显著,利用kd树的快速搜索特性,可以迅速找到查询点附近的表面并获得最短有向距离,相比于传统方法中逐个体素的扫描方式,查询效率得到显著提升。
本文档来自技高网...【技术保护点】
1.一种有向距离场的存储方法,其特征在于,包括:
2.根据权利要求1所述的有向距离场的存储方法,其特征在于,还包括:
3.根据权利要求1所述的有向距离场的存储方法,其特征在于,所述判断各所述体素网络中包括的所有所述体素的所述最短有向距离是否满足预设条件的步骤,包括:
4.根据权利要求1所述的有向距离场的存储方法,其特征在于,还包括:
5.根据权利要求4所述的有向距离场的存储方法,其特征在于,所述根据所述目标节点内的存储信息,确定所述查询点对应的目标最短有向距离的步骤,包括:
6.根据权利要求1所述的有向距离场的存储方法,其特征在于,所述确定各所述目标三角形面片分别对应的所述体素并获取两者间的最短有向距离作为所述体素对应的最短有向距离的步骤,包括:
7.根据权利要求1所述的有向距离场的存储方法,其特征在于,还包括:
8.一种有向距离场的存储系统,其特征在于,包括:
9.一种计算机设备,包括:
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所
...【技术特征摘要】
1.一种有向距离场的存储方法,其特征在于,包括:
2.根据权利要求1所述的有向距离场的存储方法,其特征在于,还包括:
3.根据权利要求1所述的有向距离场的存储方法,其特征在于,所述判断各所述体素网络中包括的所有所述体素的所述最短有向距离是否满足预设条件的步骤,包括:
4.根据权利要求1所述的有向距离场的存储方法,其特征在于,还包括:
5.根据权利要求4所述的有向距离场的存储方法,其特征在于,所述根据所述目标节点内的存储信息,确定所述查询点对应的目标最短有向距离的步骤,包括:
...【专利技术属性】
技术研发人员:李超然,李腾,李士龙,宋俊,黑俊铭,吴艺文,王韩,张线哲,
申请(专利权)人:浪潮通用软件有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。