三维模型体素化方法、装置、电子设备及存储介质转让专利

申请号 : CN202111428741.6

文献号 : CN113850917B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马东鹏刘逸平朱海斌

申请人 : 浙江清华柔性电子技术研究院

摘要 :

本申请提出一种三维模型体素化方法、装置、电子设备及存储介质。其中,方法包括:获取待处理的三维模型;根据三维模型中各面片,确定三维模型投影在二维平面的考察区域,投影的方向垂直于二维平面;根据目标体素的大小,将考察区域进行网格化处理;基于考察区域中各网格,沿垂直于二维平面方向对三维模型进行线扫描,确定三维模型的实物区间;根据目标体素的大小对实物区间进行离散化,得到三维模型的体素集合。该方案不仅可以降低体素化实现过程的复杂度,也可以保证体素化的准确性。

权利要求 :

1.一种三维模型体素化方法,其特征在于,包括:获取待处理的三维模型;

根据所述三维模型中各面片确定所述三维模型投影在二维平面的考察区域,所述投影的方向垂直于所述二维平面;

根据目标体素的大小,将所述考察区域进行网格化处理;

基于所述考察区域中各网格,确定每个所述网格各自的扫描线,所述扫描线延垂直于所述二维平面方向;

沿垂直于所述二维平面方向对所述三维模型进行线扫描,得到各所述扫描线与所述面片的多个交点;

根据所述多个交点,确定所述三维模型的实物区间;

根据所述目标体素的大小对所述实物区间进行离散化,得到所述三维模型的体素集合。

2.根据权利要求1所述的方法,其特征在于,所述沿垂直于所述二维平面方向对所述三维模型进行线扫描,得到各所述扫描线与所述面片的多个交点,包括:根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系;根据所述关联关系,对所述三维模型进行线扫描,得到所述扫描线各自的多个交点;其中,所述交点为扫描线与对应网格关联的面片的交点。

3.根据权利要求2所述的方法,其特征在于,所述根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系,包括:针对每个所述面片,确定所述面片的顶点坐标;

根据所述顶点坐标,将所述面片沿所述投影的方向向所述考察区域进行投影,得到所述面片的投影几何图;

将位于所述投影几何图中的目标网格与所述面片进行关联。

4.根据权利要求2所述的方法,其特征在于,所述根据所述多个交点,确定所述三维模型的实物区间,包括:

针对同一条扫描线的多个交点,确定每个所述交点的坐标值;

将所述坐标值按大小进行排序,并根据排序结果对所述坐标值进行两两组合,获得所述多个交点的坐标区间;

将所述多个交点的坐标区间,作为所述三维模型的实物区间。

5.根据权利要求3所述的方法,其特征在于,所述扫描线经过对应网格的中心点;所述将位于所述投影几何图中的目标网格与所述面片进行关联,包括:根据所述投影几何图的顶点坐标和所述考察区域中各网格的坐标,从所述各网格中确定第一网格,所述第一网格为所述投影几何图至少部分覆盖的网格;

确定所述第一网格的中心点,并将所述中心点的位置与所述投影几何图进行比对;

将所述中心点位于所述投影几何图内的第一网格作为目标网格,并将所述目标网格与所述面片进行关联。

6.根据权利要求1所述的方法,其特征在于,所述根据所述三维模型中各面片,确定所述三维模型投影在二维平面的考察区域,包括:将所述三维模型中各面片沿垂直于所述二维平面方向,向所述二维平面进行投影,得到所述三维模型在所述二维平面的投影图;

根据所述投影图,确定所述考察区域。

7.一种三维模型体素化装置,其特征在于,包括:获取模块,用于获取待处理的三维模型;

第一确定模块,用于根据所述三维模型中各面片,确定所述三维模型投影在二维平面的考察区域,所述投影的方向垂直于所述二维平面;

网格处理模块,用于根据目标体素的大小,将所述考察区域进行网格化处理;

第二确定模块,用于基于所述考察区域中各网格,确定每个所述网格各自的扫描线,所述扫描线延垂直于所述二维平面方向;沿垂直于所述二维平面方向对所述三维模型进行线扫描,得到各所述扫描线与所述面片的多个交点;根据所述多个交点,确定所述三维模型的实物区间;

离散化模块,用于根据所述目标体素的大小对所述实物区间进行离散化,得到所述三维模型的体素集合。

8.根据权利要求7所述的装置,其特征在于,所述第二确定模块包括:第一确定单元,用于根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系;扫描单元,用于根据所述关联关系,对所述三维模型进行线扫描,得到所述扫描线各自的多个交点;其中,所述交点为扫描线与对应网格关联的面片的交点。

9.根据权利要求8所述的装置,其特征在于,所述第一确定单元具体用于:针对每个所述面片,确定所述面片的顶点坐标;

根据所述顶点坐标,将所述面片沿所述投影的方向向所述考察区域进行投影,得到所述面片的投影几何图;

将位于所述投影几何图中的目标网格与所述面片进行关联。

10.根据权利要求8所述的装置,其特征在于,所述第二确定模块具体用于:针对同一条扫描线的多个交点,确定每个所述交点的坐标值;

将所述坐标值按大小进行排序,并根据排序结果对所述坐标值进行两两组合,获得所述多个交点的坐标区间;

将所述多个交点的坐标区间,作为所述三维模型的实物区间。

11.根据权利要求9所述的装置,其特征在于,所述扫描线经过对应网格的中心点;所述第一确定单元具体用于:

据所述投影几何图的顶点坐标和所述考察区域中各网格的坐标,从所述各网格中确定第一网格,所述第一网格为所述投影几何图至少部分覆盖的网格;

确定所述第一网格的中心点,并将所述中心点的位置与所述投影几何图进行比对;

将所述中心点位于所述投影几何图内的第一网格作为目标网格,并将所述目标网格与所述面片进行关联。

12.根据权利要求7所述的装置,其特征在于,所述第一确定模块具体用于:将所述三维模型中各面片沿垂直于所述二维平面方向,向所述二维平面进行投影,得到所述三维模型在所述二维平面的投影图;

根据所述投影图,确定所述考察区域。

13.一种电子设备,其特征在于,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1至6中任一项所述的方法。

14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的方法。

说明书 :

三维模型体素化方法、装置、电子设备及存储介质

技术领域

[0001] 本申请涉及计算机图形处理领域,具体涉及三维模型数据处理领域,尤其涉及一种三维模型体素化方法、装置、电子设备及存储介质。

背景技术

[0002] 三维模型体素化是将由大量面片构成的外表光滑的三维模型,转化成由小正方体堆叠而成、外表呈锯齿状的对应几何体。体素化后的三维模型的面片关系被简化成垂直和
平行的关系,同时当体素设定的足够小时模型的几何形状仍具备高保真度。由于面片关系
相对简单,体素化后的模型进行运算则简单而高效。因此,三维模型体素化一直是计算机图
形学热门的研究课题。
[0003] 相关技术中,通常采用切层策略、点灯法和基于GPU(Graphic Processing Unit,图形处理器)的图像处理方法以实现三维模型的体素化,但实现过程复杂耗时,而且体素化
后模型还原的准确率有待提高。

发明内容

[0004] 本申请旨在提供一种三维模型体素化方法、装置、电子设备及存储介质。
[0005] 根据本申请第一方面,提供了一种三维模型体素化方法,包括:
[0006] 获取待处理的三维模型;
[0007] 根据所述三维模型中各面片,确定所述三维模型投影在二维平面的考察区域,所述投影的方向垂直于所述二维平面;
[0008] 根据目标体素的大小,将所述考察区域进行网格化处理;
[0009] 基于所述考察区域中各网格,沿垂直于所述二维平面方向对所述三维模型进行线扫描,确定所述三维模型的实物区间;
[0010] 根据所述目标体素的大小对所述实物区间进行离散化,得到所述三维模型的体素集合。
[0011] 在本申请的一些实施例中,所述基于所述考察区域中各网格,沿垂直于所述二维平面方向对所述三维模型进行线扫描,确定所述三维模型的实物区间,包括:
[0012] 根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系;
[0013] 确定每个所述网格各自的扫描线,所述扫描线沿垂直于所述二维平面方向;
[0014] 根据所述关联关系,对所述三维模型进行线扫描,得到所述扫描线各自的多个交点;其中,所述交点为扫描线与对应网格关联的面片的交点;
[0015] 根据所述扫描线各自的多个交点,确定所述三维模型的实物区间。
[0016] 其中,所述根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系,包括:
[0017] 针对每个所述面片,确定所述面片的顶点坐标;
[0018] 根据所述顶点坐标,将所述面片沿所述投影的方向向所述考察区域进行投影,得到所述面片的投影几何图;
[0019] 将位于所述投影几何图中的目标网格与所述面片进行关联。
[0020] 在本申请的一些实施例中,所述根据所述扫描线各自的多个交点,确定所述三维模型的实物区间,包括:
[0021] 针对同一条扫描线的多个交点,确定每个所述交点的坐标值;
[0022] 将所述坐标值按大小进行排序,并根据排序结果对所述坐标值进行两两组合,获得所述多个交点的坐标区间;
[0023] 将所述多个交点的坐标区间,作为所述三维模型的实物区间。
[0024] 进一步地,在本申请实施中,所述扫描线经过对应网格的中心点;所述将位于所述投影几何图中的目标网格与所述面片进行关联,包括:
[0025] 根据所述投影几何图的顶点坐标和所述考察区域中各网格的坐标,从所述各网格中确定第一网格,所述第一网格为所述投影几何图至少部分覆盖的网格;
[0026] 确定所述第一网格的中心点,并将所述中心点的位置与所述投影几何图进行比对;
[0027] 将所述中心点位于所述投影几何图内的第一网格作为目标网格,并将所述目标网格与所述面片进行关联。
[0028] 在本申请的一些实施例中,所述根据所述三维模型中各面片,确定所述三维模型投影在二维平面的考察区域,包括:
[0029] 将所述三维模型中各面片沿垂直于所述二维平面方向,向所述二维平面进行投影,得到所述三维模型在所述二维平面的投影图;
[0030] 根据所述投影图,确定所述考察区域。
[0031] 根据本申请的第二方面,提供了一种三维模型体素化装置,包括:
[0032] 获取模块,用于获取待处理的三维模型
[0033] 第一确定模块,用于根据所述三维模型中各面片,确定所述三维模型投影在二维平面的考察区域,所述投影的方向垂直于所述二维平面;
[0034] 网格处理模块,用于根据目标体素的大小,将所述考察区域进行网格化处理;
[0035] 第二确定模块,用于基于所述考察区域中各网格,沿垂直于所述二维平面方向对所述三维模型进行线扫描,确定所述三维模型的实物区间;
[0036] 离散化模块,用于根据所述目标体素的大小对所述实物区间进行离散化,得到所述三维模型的体素集合。
[0037] 在本申请的一些实施例中,所述第二确定模块包括:
[0038] 第一确定单元,用于根据所述投影的方向和所述考察区域,确定所述考察区域中各网格与所述各面片间的关联关系;
[0039] 第二确定单元,用于确定每个所述网格各自的扫描线,所述扫描线沿垂直于所述二维平面方向;
[0040] 扫描单元,用于根据所述关联关系,对所述三维模型进行线扫描,得到所述扫描线各自的多个交点;其中,所述交点为扫描线与对应网格关联的面片的交点;
[0041] 第三确定单元,用于根据所述扫描线各自的多个交点,确定所述三维模型的实物区间。
[0042] 作为一种实现方式,所述第一确定单元具体用于:
[0043] 针对每个所述面片,确定所述面片的顶点坐标;
[0044] 根据所述顶点坐标,将所述面片沿所述投影的方向向所述考察区域进行投影,得到所述面片的投影几何图;
[0045] 将位于所述投影几何图中的目标网格与所述面片进行关联。
[0046] 在本申请的一些实施例中,所述第三确定单元具体用于:
[0047] 针对同一条扫描线的多个交点,确定每个所述交点的坐标值;
[0048] 将所述坐标值按大小进行排序,并根据排序结果对所述坐标值进行两两组合,获得所述多个交点的坐标区间;
[0049] 将所述多个交点的坐标区间,作为所述三维模型的实物区间。
[0050] 在本申请的一些实施例中,所述扫描线经过对应网格的中心点;所述第一确定单元具体用于:
[0051] 据所述投影几何图的顶点坐标和所述考察区域中各网格的坐标,从所述各网格中确定第一网格,所述第一网格为所述投影几何图至少部分覆盖的网格;
[0052] 确定所述第一网格的中心点,并将所述中心点的位置与所述投影几何图进行比对;
[0053] 将所述中心点位于所述投影几何图内的第一网格作为目标网格,并将所述目标网格与所述面片进行关联。
[0054] 在本申请的一些实施例中,所述第一确定模块具体用于:
[0055] 将所述三维模型中各面片沿垂直于所述二维平面方向,向所述二维平面进行投影,得到所述三维模型在所述二维平面的投影图;
[0056] 根据所述投影图,确定所述考察区域。
[0057] 根据本申请的第三方面,提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上允许的计算机程序,所述处理器执行所述计算机程序时,实
现上述第一方面所述的方法
[0058] 根据本申请的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
[0059] 根据本申请的技术方案,通过将三维模型投影到二维平面,并根据目标体素的大小将投影后得到的考察区域进行网格化处理,基于考察区域中各网格对三维模型进行线扫
描,来确定三维模型的实物区间,从而可以通过对得到的实物区间进行离散化,得到三维模
型的体素集合。也就是说,本方案可以通过将三维模型数据转换到二维空间来通过缩减数
据范围,并通过对三维模型的线扫描来确定三维模型的实物空间,可以避免嵌套空腔的几
何体体素化时的误判或漏判的问题的出现,不仅可以降低体素化实现过程的复杂度,也可
以保证体素化的准确性。
[0060] 应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。

附图说明

[0061] 本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0062] 图1为本申请实施例提供的一种三维模型体素化方法的流程图;
[0063] 图2为本申请实施例中确定三维模型在二维平面的考察区域及网格化的示例图;
[0064] 图3为本申请实施例中线扫描过程中扫描线的示例图;
[0065] 图4为本申请实施例中确定实物区间的示例图;
[0066] 图5为本申请实施例中对实物区间离散化的示例图;
[0067] 图6为本申请实施例中对实物区间离散化时生成的体素结构的示例图;
[0068] 图7为本申请实施例提供的另一种三维模型体素化方法的流程图;
[0069] 图8为本申请实施例中生成的关联矩阵的示例图;
[0070] 图9为本申请实施例中确定网格与面片的关联关系的流程图;
[0071] 图10为本申请实施例提供的一种三维模型体素化装置;
[0072] 图11为本申请实施例提供的一种用于实现三维模型体素化的电子设备。

具体实施方式

[0073] 下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附
图描述的实施例是示例性的,旨在用于解释本申请,而不能理解为对本申请的限制。
[0074] 需要说明的是,三维模型体素化是将由大量面片构成的外表光滑的三维模型,转化成由小正方体堆叠而成、外表呈锯齿状的对应几何体。体素化后的三维模型的面片关系
被简化成垂直和平行的关系,同时当体素设定的足够小时模型的几何形状仍具备高保真
度。由于面片关系相对简单,体素化后的模型进行运算(如交叠判定)则简单而高效。因此,
三维模型体素化一直是计算机图形学热门的研究课题。
[0075] 目前相关的技术包括采用切层策略、点灯法和基于GPU的图像处理方法,这些方法都能实现三维模型的体素化,但是这些问题分别存在以下问题:
[0076] (1)基于切层策略:需对模型做大量的切片,每个切面都需要进行体素化,处理过程繁复且耗时;
[0077] (2)基于点灯法:需将原始模型用三角剖分转化成四面体堆叠成的几何体,预处理过程繁琐;为避免遗漏,还需同时结合该方法提出的“桁架构造法”对模型边界再次遍历核
对,繁复且耗时;
[0078] (3)基于GPU:为实现三维体素边界模型内部实体化,需使用“水漫填充”算法得到全体素模型,而当模型内部有多个嵌套的空腔时,“水漫填充”算法会遗漏该部分模型的体
素化。
[0079] 基于上述问题,本申请提出了一种三维模型体素化方法、装置、电子设备及存储介质。
[0080] 图1为本申请实施例提供的一种三维模型体素化方法的流程图。需要说明的是,本申请实施例中的三维模型体素化方法可应用于本申请实施例中的三维模型体素化装置中,
且该装置可配置于电子设备中。如图1所示,该方法可以包括以下步骤:
[0081] 步骤101,获取待处理的三维模型。
[0082] 在本申请的一些实施例中,可以采用终端交互界面的方式,获取用户提交的待处理的三维模型,也可以通过访问本地用户选择的文件来获取待处理的三维模型,也可以根
据实际应用场景采用其他的方式来获取待处理的三维模型,本申请对此不作限定。此外本
申请实施例的三维模型体素化方法可适用于obj等三维模型格式的文件。
[0083] 步骤102,根据三维模型中各面片,确定三维模型投影在二维平面的考察区域,投影的方向垂直于二维平面。
[0084] 需要说明的是,本申请实施例中的二维平面可以是x‑y二维坐标系对应的平面、x‑z二维坐标系对应的平面、y‑z二维坐标系对应的平面,也可以是倾斜于任意二维坐标系的
平面,本申请对此不作限定。此外,在本申请的一些实施例中,三维模型投影在二维平面的
考察区域可以为三角形、矩形、或者其他形状,以使三维模型在二维平面的投影图在该考察
区域内,通常为了降低计算量,该考察区域可以是根据投影图在二维平面的坐标范围来确
定的矩形。
[0085] 可以理解,三维模型是由大量面片构成的,在三维模型文件中包括面片的相关信息,比如该三维模型文件中的面片数量、每个面片的顶点坐标等信息。
[0086] 作为一种示例,根据三维模型中各面片,确定三维模型投影在二维平面的考察区域的实现方式可以为:将三维模型中各面片沿垂直于二维平面方向,向二维平面进行投影,
得到三维模型在二维平面的投影图;根据投影图,确定三维模型投影在二维平面的考察区
域。如图2所示,二维平面为x‑y二维坐标系对应的平面,则图中的茶壶三维模型在二维平面
的投影图在x‑y平面;所以可以根据该三维模型中所有面片的顶点坐标,确定投影图中x坐
标的最大值和最小值、y坐标的最大值和最小值;根据x坐标的最大值和最小值、y坐标的最
大值和最小值,确定四角坐标,且该四角坐标在二维平面对应的矩形为三维模型投影在二
维平面的考察区域。
[0087] 步骤103,根据目标体素的大小,将考察区域进行网格化处理。
[0088] 也就是说,根据目标体素的大小,使用与体素边长相同的正方形,将考察区域进行网格化处理。
[0089] 在本申请的一些实施例中,目标体素的大小可以是用户根据自身的精确度需求预先设定的,也可以是根据三维模型的复杂度情况来确定的,或者也可以是不随用户需求与
三维模型的复杂度而改变的预设固定值,此处可以根据实际应用场景来确定,本申请对此
不作限定。
[0090] 作为一种示例,如图2所示,假如考察区域为根据投影图在二维平面的坐标范围来确定的矩形,则将考察区域进行网格化处理的实现方式可以为:根据目标体素的大小,确定
体素边长;将考察区域的长和宽分别除以体素边长,来确定划分的网格数量;以边长等于体
素边长的网格,根据从左到右,从上到下的顺序将考察区域划分为多个网格。其中,若考察
区域的长或者宽不能与体素边长整除时,可以将计算结果向上取整,比如考察区域是长为
50mm且宽为30mm的矩形,而体素边长为1.5mm,则在长度方向划分的网格数量为500/1.5=34
个。
[0091] 作为另一种示例,将考察区域进行网格化处理的实现方式可以为:根据目标体素的边长,将三维模型投影的二维平面进行网格化处理;基于考察区域的边界坐标,确定能被
考察区域覆盖住的网格,并将被考察区域覆盖的网格作为考察区域网格化处理后得到的网
格。
[0092] 步骤104,基于考察区域中各网格,沿垂直于二维平面方向对三维模型进行线扫描,确定三维模型的实物区间。
[0093] 可以理解,由于三维模型在二维平面的投影图在其考察区域内,所以基于考察区域中各网格,沿垂直于二维平面方向对三维模型进行线扫描,可以得到扫描线与三维模型
的多个交点,从而可以根据这些交点来确定三维模型的实物区间。
[0094] 在申请的一些实施例中,扫描线沿垂直于二维平面方向,其中,考察区域中每个网格对应一条扫描线,且每条扫描线经过对应网格。为了提高确定实物区间的准确性,及体素
化结果的准确性,扫描线可以经过对应网格的中心点。如图3所示,若考察区域所在的二维
平面为x‑y平面,则生成的扫描线穿过对应网格的中心点,且垂直于x‑y平面。
[0095] 基于上述示例,若图3中的经过网格a的扫描线与三维模型中面片有四个交点,如图4所示,且与面片1的交点为交点A、与面片2的交点为交点B、与面片3的交点为交点C、与面
片4的交点为交点D,根据以上4个交点的坐标按该扫描线的方向进行排列后的顺序为交点
A、交点B、交点C和交点D,则交点A的坐标和交点B的坐标对应的区间范围为三维模型的实物
区间,交点C的坐标和交点D的坐标对应的区间范围也为三维模型的实物区间,而交点B的坐
标和交点C的坐标对应的区间范围为三维模型的空腔区间。
[0096] 作为一种示例,确定三维模型的实物区间的实现方式可以为:基于考察区域中各网格,确定一系列沿垂直于二维平面方向的扫描线,其中扫描线与考察区域中的网格是一
一对应的;针对每条扫描线,根据该扫描线的方程表达式,遍历三维模型中各面片的顶点坐
标,来确定该扫描线是否与三维模型中的面片有交点,以及交点坐标;根据同一条扫描线的
多个交点的坐标大小,来确定三维模型的实物区间。
[0097] 作为另一种示例,也可以先根据投影方向和考察区域,来确定各面片与考察区域中各网格间的关联关系,比如网格1与面片A和面片B有关联关系,则说明基于网格1的扫描
线与面片A和面片B均有交点;针对每条扫描线,根据该扫描线对应网格的关联关系,确定该
扫描线与关联面片的交点,并根据同一条扫描线的多个交点的坐标大小,来确定三维模型
的实物区间。
[0098] 步骤105,根据目标体素的大小对实物区间进行离散化,得到三维模型的体素集合。
[0099] 在本申请的一些实施例中,如图5所示,对实物区间进行离散化相当于是根据目标体素的大小,将得到的实物区间转化为体素集合,以得到三维模型体素化结果。
[0100] 作为一种实施方式,根据目标体素的大小对实物区间进行离散化,得到三维模型的体素集合的实现步骤可以包括:基于考察区域的网格,沿着扫描线生成由体素构成的体
素结构,该体素结构如图6所示,其中,每个穿过对应网格中心点的扫描线,也均穿过该网格
所在列的所有体素的中心点;将体素结构中的每个体素中心点的坐标与实物区间进行比
对,并将中心点的坐标不在实体区间内的体素删除,则剩余的体素为三维模型的体素集合。
[0101] 需要说明的是,若得到的实物区间不足一个体素边长大小,则可以认为它属于实物或空腔,因为该区间几何上可以忽略不计,其实质几何上是个极小的尖角或极小的缝隙。
[0102] 根据本申请实施例中的三维模型体素化方法,通过将三维模型投影到二维平面,并根据目标体素的大小将投影后得到的考察区域进行网格化处理,基于考察区域中各网格
对三维模型进行线扫描,来确定三维模型的实物区间,从而可以通过对得到的实物区间进
行离散化,得到三维模型的体素集合。也就是说,本方案可以通过将三维模型数据转换到二
维空间来通过缩减数据范围,并通过对三维模型的线扫描来确定三维模型的实物空间,不
仅可以避免嵌套空腔的几何体体素化时的误判或漏判的问题的出现,也可以降低体素化实
现过程的复杂度,保证体素化的准确性。
[0103] 为了进一步降低三维模型体素化过程的计算量,减少计算时间,本申请提出了另一个实施例。
[0104] 图7是本申请实施例提出的另一种三维模型体素化方法的流程图。如图7所示,基于上述实施例,步骤104的实现方式可以包括以下步骤:
[0105] 步骤701,根据投影的方向和考察区域,确定考察区域中各网格与各面片间的关联关系。
[0106] 也就是说,在进行线扫描之前,可以先根据投影的方向和考察区域,来确定考察区域中各网格与各面片间的关联关系,以确定线扫描时,每个网格对应的扫描线与哪些面片
有交点,从而可以降低线扫描过程的计算量。
[0107] 在本申请的一些实施例中,每个面片可以与至少一个目标网格有关联关系,该关联关系是指基于目标网格的扫描线与关联的面片有交点。比如,网格1与面片A和面片B有关
联关系,则说明基于网格1的扫描线与面片A和面片B均有交点。该关联关系可以通过矩阵的
形式来表达,也可以通过其他形式,本申请对此不作限定。
[0108] 作为一种示例,确定考察区域中各网格与各面片间的关联关系的实现方式可以为:根据投影方向,计算各面片分别沿该投影方向向考察区域投影后对应的投影几何图;计
算位于每个投影几何图中网格的编号;生成如图8所示的关联矩阵,该关联矩阵中记录每个
网格编号与该网格所在的投影几何图对应的面片编号。
[0109] 步骤702,确定每个网格各自的扫描线,扫描线沿垂直于二维平面方向。
[0110] 在本申请实施例中,步骤702确定的扫描线与上述实施例中的扫描线一致,此处不再赘述。
[0111] 步骤703,根据关联关系,对三维模型进行线扫描,得到每条扫描线各自的多个交点;其中,该交点为扫描线与对应网格关联的面片的交点;
[0112] 可以理解,根据关联关系来确定每个网格与哪些面片有关联关系,所以在线扫描过程中无需遍历所有的面片来计算扫描线与面片的交点,可以直接根据对应网格关联的面
片来计算交点,从而可以大大降低线扫描过程的计算量,提高三维模型体素化的效率。
[0113] 作为一种示例,确定扫描线各自的多个交点的实现方式可以包括:针对每条扫描线,确定该扫描线对应的网格编号;根据关联关系,确定该网格编号关联的面片编号;获取
该面片编号对应面片的顶点坐标,并根据该扫描线的方程表达式来计算得到该扫描线与关
联面片的多个交点。
[0114] 作为另一种示例,由于并不是所有扫描线均与面片有交点,所以在确定扫描线各自的多个交点时可以只遍历与面片存在交点的扫描线,其实现方式可以包括:针对每个与
面片存在关联关系的网格编号,确定与该网格编号对应的扫描线;根据关联关系,确定该网
格编号关联的面片编号;获取对应面片的顶点坐标,并根据该扫描线的方程表达式计算该
扫描线与关联面片的多个交点。
[0115] 步骤704,根据扫描线各自的多个交点,确定三维模型的实物区间。
[0116] 在本申请的一些实施例中,确定三维模型的实物区间的步骤可以包括:针对同一条扫描线的多个交点,确定每个交点的坐标值;将坐标值按大小进行排序,并根据排序结果
对坐标值进行两两组合,获得多个交点的坐标区间;将多个交点的坐标区间,作为三维模型
的实物区间。举例而言,假如二维平面的方向为x‑y平面方向,则扫描线的方向沿坐标轴z的
方向;若某条扫描线与三维模型的交点及坐标分别为交点A(a,b,1.2)、交点B(a,b,3.2)、交
点C(a,b,0.8)和交点D(a,b,2.8),则按照坐标值从小到大排列的顺序为交点C(a,b,0.8)、A
(a,b,1.2)、交点D(a,b,2.8)和交点B(a,b,3.2);将交点C与交点A组合,得到在z轴方向的坐
标区间1为(a,b,0.8)~(a,b,1.2),将交点D与交点B组合,得到在z轴方向的坐标区间2为
(a,b,2.8)~(a,b,3.2),则坐标区间1和坐标区间2为三维模型的实物区间。
[0117] 根据本申请实施例中的三维模型体素化方法,将线扫描过程中扫描线与面片交点的计算,简化为根据在二维空间确定的网格与面片的关联关系来确定,从而可以大大降低
线扫描过程的计算量,进而可以进一步降低三维模型体素化的计算量及实现复杂度,提高
体素化的效率。
[0118] 接下来将针对考察区域中各网格与各面片间的关联关系的确定,进行详细介绍。
[0119] 图9为本申请实施例中确定网格与面片的关联关系的流程图。如图9所示,基于上述实施例,该实现方式可以包括以下步骤:
[0120] 步骤910,针对每个面片,确定面片的顶点坐标。
[0121] 由于三维模型文件中包含各面片的顶点坐标,所以可以直接从三维模型文件中获取对应面片的顶点坐标。
[0122] 步骤920,根据顶点坐标,将面片沿投影的方向向考察区域进行投影,得到面片的投影几何图。
[0123] 步骤930,将位于投影几何图中的目标网格与面片进行关联。
[0124] 可以理解,由于扫描线垂直于二维平面方向,也就是说扫描线的方向与投影方式一致,所以可以根据面片沿投影的方向向考察区域进行投影得到的投影几何图,与考察区
域中的网格的关系,来确定后续线扫描过程中该面片与哪些网格的扫描线会有交点。
[0125] 在本申请的一些实施例中,将位于投影几何图中的目标网格与面片进行关联的实现方式可以包括以下步骤:
[0126] 步骤931,根据投影几何图的顶点坐标和考察区域中各网格的坐标,从各网格中确定第一网格,该第一网格为投影几何图至少部分覆盖的网格。
[0127] 也就是说,根据投影几何图的顶点坐标和考察区域中各网格的坐标,可以确定哪些网格至少部分被投影几何图覆盖,并将这些网格作为第一网格。可以理解,第一网格中有
一部分网格被投影几何图全部覆盖,则基于这一部分网格的扫描线肯定与该面片有交点,
而第一网格中的另一部分网格被投影几何图部分覆盖,则基于这一部分网格的扫描线有可
能与该面片有交点。
[0128] 在本申请的另一些实施例中,也可以将投影几何图的外接矩形至少部分覆盖的网格作为第一网格。
[0129] 步骤932,确定第一网格的中心点,并将中心点的位置与投影几何图进行比对。
[0130] 可以理解,由于线扫描时生成的扫描线经过网格的中心点,所以可以根据第一网格中每个网格的中心点,来确定第一网格中的哪些网格为目标网格。
[0131] 作为一种示例,将中心点的位置与投影几何图进行比对的实现方式可以为,根据每个第一网格的中心点坐标和投影几何图的各顶点坐标,计算每个第一网格的中心点是否
落在投影几何图内。
[0132] 步骤933,将中心点位于投影几何图内的第一网格作为目标网格,并将目标网格与面片进行关联。
[0133] 可以理解,由于每条扫描线经过对应网格的中心点,若第一网格的中心点位于投影几何图内,则说明经过该网格扫描线必定与该面片有交点,所以将中心点位于投影几何
图内的第一网格作为目标网格,并将目标网格与该面片进行关联。
[0134] 根据本申请实施例的三维模型体素化方法,通过将面片沿投影方向向考察区域进行投影得到面片的投影几何图,并将位于投影几何图中的目标网格与面片进行关联,从而
可以确定网格与面片的关联关系。另外,根据投影几何图的顶点坐标和考察区域中各网格
的坐标,来确定第一网格,并根据第一网格来进一步确定目标网格,说明可以通过确定第一
网格来缩小确定目标网格的范围,从而可以降低确定目标网格的计算量。此外,通过第一网
格的中心点与投影几何图的位置关系,来确定第一网格中的目标网格,可以提高网格与面
片关联关系的准确性,进而可以在降低确定网格与面片关联关系的计算量的同时,提高三
维模型体素化的准确率。
[0135] 为了实现上述实施例,本申请提出了一种三维模型体素化装置。
[0136] 图10为本申请实施例提供的一种三维模型体素化装置的结构框图。如图10所示,该装置包括:
[0137] 获取模块1010,用于获取待处理的三维模型。
[0138] 第一确定模块1020,用于根据三维模型中各面片,确定三维模型投影在二维平面的考察区域,投影的方向垂直于二维平面;
[0139] 网格处理模块1030,用于根据目标体素的大小,将考察区域进行网格化处理;
[0140] 第二确定模块1040,用于基于考察区域中各网格,沿垂直于二维平面方向对三维模型进行线扫描,确定三维模型的实物区间;
[0141] 离散化模块1050,用于根据目标体素的大小对实物区间进行离散化,得到三维模型的体素集合。
[0142] 在本申请的一些实施例中,第二确定模块1040包括:
[0143] 第一确定单元1041,用于根据投影的方向和考察区域,确定考察区域中各网格与各面片间的关联关系;
[0144] 第二确定单元1042,用于确定每个网格各自的扫描线,扫描线沿垂直于二维平面方向;
[0145] 扫描单元1043,用于根据关联关系,对三维模型进行线扫描,得到扫描线各自的多个交点;其中,交点为扫描线与对应网格关联的面片的交点;
[0146] 第三确定单元1044,用于根据扫描线各自的多个交点,确定三维模型的实物区间。
[0147] 作为一种实现方式,第一确定单元1041具体用于:
[0148] 针对每个面片,确定面片的顶点坐标;
[0149] 根据顶点坐标,将面片沿投影的方向向考察区域进行投影,得到面片的投影几何图;
[0150] 将位于投影几何图中的目标网格与面片进行关联。
[0151] 在本申请的一些实施例中,第三确定单元1044具体用于:
[0152] 针对同一条扫描线的多个交点,确定每个交点的坐标值;
[0153] 将坐标值按大小进行排序,并根据排序结果对坐标值进行两两组合,获得多个交点的坐标区间;
[0154] 将多个交点的坐标区间,作为三维模型的实物区间。
[0155] 在本申请的一些实施例中,扫描线经过对应网格的中心点,第一确定单元1041具体用于:
[0156] 据投影几何图的顶点坐标和考察区域中各网格的坐标,从各网格中确定第一网格,第一网格为投影几何图至少部分覆盖的网格;
[0157] 确定第一网格的中心点,并将中心点的位置与投影几何图进行比对;
[0158] 将中心点位于投影几何图内的第一网格作为目标网格,并将目标网格与面片进行关联。
[0159] 在本申请的一些实施例中,第一确定模块1020具体用于:
[0160] 将三维模型中各面片沿垂直于二维平面方向,向二维平面进行投影,得到三维模型在二维平面的投影图;
[0161] 根据投影图,确定考察区域。
[0162] 根据本申请实施例的三维模型体素化装置,通过将三维模型投影到二维平面,并根据目标体素的大小将投影后得到的考察区域进行网格化处理,基于考察区域中各网格对
三维模型进行线扫描,来确定三维模型的实物区间,从而可以通过对得到的实物区间进行
离散化,得到三维模型的体素集合。也就是说,本方案可以通过将三维模型数据转换到二维
空间来通过缩减数据范围,并通过对三维模型的线扫描来确定三维模型的实物空间,可以
避免嵌套空腔的几何体体素化时的误判或漏判的问题的出现,不仅可以降低体素化实现过
程的复杂度,也可以保证体素化的准确性。
[0163] 图11为根据本申请实施例的用于实现三维模型体素化的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助
理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形
式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装
置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制
本文中描述的和/或者要求的本申请的实现。
[0164] 如图11所示,该电子设备包括:存储器1110、处理器1120及存储在所述存储器上并可在处理器上运行的计算机程序1130。各个部件利用不同的总线互相连接,并且可以被安
装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进
行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的
显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器
和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个
设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系
统)。
[0165] 存储器1110即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的三维模
型体素化方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于
使计算机执行本申请所提供的三维模型体素化方法。
[0166] 存储器1110作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的三维模型体素化方法对应的程序
指令/模块(例如,附图10所示的第一确定模块1010、网格处理模块1020、第二确定模块1030
和离散化模块1040)。处理器1120通过运行存储在存储器1110中的非瞬时软件程序、指令以
及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的三维
模型体素化方法。
[0167] 存储器1110可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据用以实现三维模型体素化方
法的电子设备的使用所创建的数据等。此外,存储器1110可以包括高速随机存取存储器,还
可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器
件。在一些实施例中,存储器1110可选包括相对于处理器1120远程设置的存储器,这些远程
存储器可以通过网络连接至用以实现三维模型体素化方法的电子设备。上述网络的实例包
括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0168] 用以实现三维模型体素化方法的电子设备还可以包括:输入装置1140和输出装置1150。处理器1120、存储器1110、输入装置1140和输出装置1150可以通过总线或者其他方式
连接,图11中以通过总线连接为例。
[0169] 输入装置1140可接收输入的数字或字符信息,以及产生与用以实现三维模型体素化方法的电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠
标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置
1150可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该
显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示
器。在一些实施方式中,显示设备可以是触摸屏。
[0170] 在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、 “示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特
点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不
必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任
一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技
术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结
合和组合。
[0171] 此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者
隐含地包括至少一个该特征。在本申请的描述中,“多个”的含义是至少两个,例如两个,三
个等,除非另有明确具体的限定。
[0172] 流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部
分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺
序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请
的实施例所属技术领域的技术人员所理解。
[0173] 在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供
指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执
行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设
备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传
输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装
置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电
连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器
(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存
储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的
介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其
他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
[0174] 应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件
或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技
术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离
散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编
程门阵列(FPGA)等。
[0175] 本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介
质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
[0176] 此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模
块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如
果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机
可读取存储介质中。
[0177] 上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限
制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变
型。