三维纹理贴图方法及装置、计算机可读存储介质与流程

文档序号:21412621发布日期:2020-07-07 14:49阅读:274来源:国知局
三维纹理贴图方法及装置、计算机可读存储介质与流程

本发明实施例涉及3d打印技术领域,尤其涉及一种三维纹理贴图方法及装置、计算机可读存储介质。



背景技术:

在3d打印模型前,通常需要对待打印模型的图像进行处理。在对待打印模型的图像进行处理的过程中,有大量的三维纹理贴图需要生成,比如浮雕、鞋业的咬花等。

目前,在对三维纹理贴图进行图像处理时,所生成的三维网格数据量很大,从而内存消耗较大,影响图像处理软件的稳定性。



技术实现要素:

本发明解决的技术问题是如何降低三维纹理贴图过程中所占用的存储空间。

为解决上述技术问题,本发明实施例提供一种三维纹理贴图方法,包括:获取待打印三维模型的待贴图区域;展开所述待贴图区域对应的三维网格,建立与所述三维网格对应的二维网格;在所述二维网格上添加预设的纹理图片,得到对应的二维纹理网格,根据所述二维纹理网格,得到与所述二维纹理网格对应的三维纹理网格,对所述三维纹理网格进行切片,得到切片数据,包括:计算所述待贴图区域的切片层数,逐层计算各层切片的轮廓线,得到所述切片数据,其中,在计算当前层切片的轮廓线时,保留与所述当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。

可选地,所述逐层计算各层切片的轮廓线,包括:对当前层切片的三角形进行离散采样,重新三角化,计算每个点的纹理值,根据设定的拉伸方向和距离,计算每个点的拉伸矢量,得到局部拉伸网格数据,移动对应点的坐标,得到拉伸网格,清除与当前层切片拓扑不相关的网格数据,计算所述当前层切片的轮廓线。

可选地,在得到三维纹理网格之后,还包括:对所述三维纹理网格的纹理进行纹理编辑。

可选地,所述对所述三维纹理网格中的纹理进行纹理编辑,包括以下至少一种:将所述三维纹理网格的纹理进行平移;将所述三维纹理网格的纹理进行缩放;将所述三维纹理网格的纹理进行旋转;对所述三维纹理网格的纹理的边界进行处理;对所述三维纹理网格的纹理的边界进行处理;对所述三维纹理网格的纹理进行多值化处理。

可选地,在获取待打印三维模型的待贴图区域之后,还包括:采用以下任意一种方式对所述待贴图区域的目标进行标记:点标记、方框标记、多边形标记。

可选地,在展开所述待贴图区域对应的三维网格之前,还包括:检测所述待贴图区域是否可展开;当所述待贴图区域不可展开时,对所述待贴图区域进行分割、重新标记或者重新贴图处理,使得处理后的待贴图区域可展开。

可选地,在得到所述三维纹理网格之后,还包括:对所述三维纹理网格进行视差贴图处理,得到视差贴图网格。

本发明实施例还提供一种三维纹理贴图装置,包括:获取单元,适于获取待打印三维模型的待贴图区域;展开单元,适于展开所述待贴图区域对应的三维网格,建立与所述三维网格对应的二维网格;贴图单元,适于在所述二维网格上添加预设的纹理图片,得到对应的二维纹理网格,根据所述二维纹理网格,得到与所述二维纹理网格对应的三维纹理网格;切片单元,适于对所述三维纹理网格进行切片,得到切片数据,包括:计算所述待贴图区域的切片层数,逐层计算各层切片的轮廓线,得到各层切片的轮廓线数据,其中,在计算当前层切片的轮廓线时,保留与所述当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。。

可选地,所述切片单元,适于对当前层切片的三角形进行离散采样,重新三角化,计算每个点的纹理值,根据设定的拉伸方向和距离,计算每个点的拉伸矢量,得到局部拉伸网格数据,移动对应点的坐标,得到拉伸网格,清除与当前层切片拓扑不相关的网格数据,计算所述当前层切片的轮廓线。

可选地,所述三维纹理贴图装置还包括:编辑单元,适于在得到三维纹理界面之后,对所述三维纹理网格纹理进行编辑。

可选地,所述编辑单元,适于进行以下至少一种编辑:将所述三维纹理网格的纹理进行平移;将所述三维纹理网格的纹理进行缩放;将所述三维纹理网格的纹理进行旋转;对所述三维纹理网格的纹理的边界进行处理;对所述三维纹理网格的纹理去噪处理;对所述三维纹理网格的纹理进行多值化处理。

可选地,所述三维纹理贴图装置还包括:标记单元,适于在获取待打印三维模型的待贴图区域之后,对待贴图区域的目标进行标记:点标记、方框标记、多边形标记。

可选地,所述的三维纹理贴图装置还包括:检测单元,适于在展开所述待贴图区域对应的三维网格之前,检测所述待贴图区域是否可展开;当所述待贴图区域不可展开时,对所述待贴图区域进行分割、重新标记,使得处理后的待贴图区域可展开。

可选地,所述三维纹理贴图装置还包括:视差贴图单元,适于在得到所述三维纹理网格之后,对所述三维纹理网格进行视差贴图处理,得到视差贴图网格。

本发明实施例还提供一种三维纹理贴图装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行上述任一种三维纹理贴图方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述任一种三维纹理贴图方法的步骤。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

将待打印三维模型的待贴图区域的三维网格展开得到二维网格,在二维网格上添加预设的纹理图片得到对应的二维纹理网格。对二维纹理网格对应的三维纹理网格进切片,得到切片数据,在逐层计算各层切片的轮廓线,得到切片数据过程中,保留与当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据,所需要保留的网格数据减少,因此网格数据所占用的存储空间也较少,从而可以降低三维纹理贴图过程中所占用的存储空间。

进一步,对纹理图片进行视差贴图处理,从而可以不用拉伸网格的情况下,得到三维的视觉效果,且占用的存储空间较小。

附图说明

图1是本发明实施例中一种三维纹理贴图方法的流程图;

图2是本发明实施例中一种三维纹理贴图装置的结构示意图。

具体实施方式

如上所述,目前,在对三维纹理贴图进行图像处理时,所生成的三维网格数据量很大,从而内存消耗较大,影响稳定性。

在本发明实施例中,将待打印三维模型的待贴图区域的三维网格展开得到二维网格,在二维网格上添加预设的纹理图片得到对应的二维纹理网格。对二维纹理网格对应的三维纹理网格进切片,得到切片数据,在逐层计算各层切片的轮廓线,得到切片数据时,保留与当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。因此,网格数据所占用的存储空间也较少,从而可以降低三维纹理贴图过程中所占用的存储空间。

为使本发明实施例的上述目的、特征和有益效果能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

参照图1,给出了本发明实施例中一种三维纹理贴图方法的流程图。所述三维纹理贴图方法可以包括如下步骤。

步骤11,获取待打印三维模型的待贴图区域。

在具体实施中,有些工件上设置有纹理,如雕花、鞋底上的咬花、一些工艺品上的花纹等。在进行三维打印之前,需要将上述花纹贴到三维模型对应的区域上,需要贴花纹的区域即为待贴图区域。

标记待打印三维模型中的待贴图区域,以便于后续对待贴图区域进行三维纹理贴图。

在具体实施中,可以采用多种标记方式对所述待贴图区域标记。例如,采用点标记、方框标记或者多边形标记待贴图区域中的三角面片。

步骤12,展开所述待贴图区域对应的三维网格,建立与所述三维网格对应的二维网格。

在具体实施中,在获取到待贴图区域后,对待贴图区域对应的三维网格进行展开,得到与所述三维网格对应的二维网格。

在对三维网格展开时,将三维网格中的点进行一一映射得到二维网格。

在实际应用中,不是所有的待贴图区域都是可展开的,为了使得所述待贴图区域可展开,在本发明实施例中,在对待贴图区域展开之前,对所述待贴图区域的可展开性进行检测。当检测到所述待贴图区域不可展开时,对所述待贴图区域进行分割,或者重新标记或者重新贴图处理。通过重新标记来优化标记方式,或者通过重新分多次贴图,以使得处理后的待贴图区域可展开。

步骤13,在所述二维网格上添加预设的纹理图片,得到对应的二维纹理网格,根据所述二维纹理网格,得到与所述二维纹理网格对应的三维纹理网格。

在具体实施中,展开得到待贴图区域对应的二维网格之后,将预设的纹理图片添加到二维网格上,得到对应的二维纹理网格。

二维网格与三维网格相对应,在对二维网格上添加纹理图片,得到二维纹理网格时,三维网格上也同步地自动添加所述纹理图片,得到与所述二维纹理网格对应的三维纹理网格。

在具体实施中,可以对所述二维纹理网格的纹理进行纹理编辑。当对所述二维纹理网格的纹理进行纹理编辑时,三维纹理网格的纹理上也同步地自动响应,进行纹理编辑。

在具体实施中,可以对所述三维纹理网格上的纹理进行以下至少一种编辑:将所述三维纹理网格上的纹理进行平移、将所述三维纹理网格上的纹理进行缩放、将所述三维纹理网格上的纹理进行旋转、对所述三维纹理网格上的纹理的边界进行处理、对所述三维纹理网格上的纹理去噪处理、对所述三维纹理网格上的纹理进行多值化处理等。在对三维纹理网格上的纹理进行处理时,通常依据预设的控制参数,所述控制参数可以预先设定。所述控制参数可以为3d纹理精细程度、网格是否需要简化、切片模式以及生成形式等。网格简化可以在不牺牲精度的同时,减小不必要的网格,以节约所占用的存储空间,也即减小所占用的内存。切片模式指不生成3d网格,采用视差贴图进行渲染。生成形式控制了纹理图片根据颜色信息拉伸制定距离,例如,白色向内拉伸,黑色向外拉伸。边界处理用于去掉添加纹理图片时区域边界上的不完整拉伸。

在本发明一实施例中,对所述的三维纹理网格贴图区域进行视差贴图,得到视差贴图网格。

步骤14,对所述三维纹理网格进行切片,得到切片数据。

在具体实施中,计算所述待贴图区域的切片层数,逐层计算各层切片的轮廓线,得到所述切片数据,其中,在计算当前层切片的轮廓线时,保留与所述当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。

在本发明一实施例中,在计算各层的切片数据时,对当前层切片的三角形进行离散采样,重新三角化,计算每个点的纹理值,根据设定的拉伸方向和距离,计算每个点的拉伸矢量,得到局部拉伸网格数据,移动对应点的坐标,得到拉伸网格,清除与当前层切片拓扑不相关的网格数据。

由上述方案可知,将待打印三维模型的待贴图区域的三维网格展开得到二维网格,在二维网格上添加预设的纹理图片得到对应的二维纹理网格。对二维纹理网格对应的三维纹理网格进切片,得到切片数据,在逐层计算各层切片的轮廓线,得到切片数据时,保留与当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。

在现有技术中,为了体现纹理的细节,生成的网格三角形数量都很大,百万千万级别都是比较常见的,需要消耗大量内存和计算时间,而本发明实施例中提供的三维贴图方法由于无需生成大量的三维网格,并在切片过程中删除部分与下层切片无关的三维网格数据,从而三维纹理贴图处理速度较快且占用存储空间较小,且不易丢失纹理,可以实现对大规模的纹理进行贴图,并切片,进而为打印提供基础。

在对待贴图区域的三维网格展开后,为了加快计算速度或者节约存储空间,可以不通过生成三维网格数据的方式来显示三维效果,为了能够使得用户便于浏览,更直观的看到三维效果,且占用较少的存储空间。在本发明实施例中,在得到三维纹理网格之后,对所述三维纹理网格进行视差贴图处理,得到视差贴图网格。

通过对纹理区域采用视差贴图处理在视觉上实现三维凹凸效果,得到的网格记为视差贴图网格。由于无需生成大量的三维网格,可以节省大量内存和计算时间。此外,在对所述三维纹理网格进行视差贴图处理过程中,对纹理图片平铺时,产生的边界痕迹和错位进行了修正,当平铺时合并纹理图片取代原图片进行贴图,从而可以对改善三维纹理网格所产生的视觉效果,从而通过视差贴图处理既能够近似得到三维效果,又可以减小所占用的存储空间。

需要对视差贴图网格逐层计算轮郭线,也要单独对网格中有纹理的部分计算轮郭线,合并这些轮郭线即得到切片数据。其中,在计算切片的轮廓线时采用分治思想:每次计算一个指定的厚度时,提前计算相关的三角形并采样,重新划分网格,根据采样得到纹理深度值进行拉伸得到局部拉伸网格数据,清除不再需要的之前的厚度对应网格数据。这样占用存储空间就较小,提高处理软件的稳定性。

在具体实施中,当三维纹理网格的三角形数量较小时,可以采用对贴图区域进行离散,重新三角化,计算每个点的纹理值的方法,根据设定的拉伸方向和距离,计算每个点的拉伸矢量,移动某些点的坐标,实现三维的凹凸效果。

为了便于本领域技术人员更好的理解和实现本发明实施例,本发明实施例还提供一种三维纹理贴图装置。参照图2,所述三维纹理贴图装置30包括:获取单元31、展开单元32、贴图单元33及切片单元34,其中:

所述获取单元31,适于获取待打印三维模型的待贴图区域;

所述展开单元32,适于展开所述待贴图区域对应的三维网格,建立与所述三维网格对应的二维网格;

所述贴图单元33,适于在所述二维网格上添加预设的纹理图片,得到得到对应的二维纹理网格,根据所述二维纹理网格,得到与所述二维纹理网格对应的三维纹理网格;

所述切片单元34,适于对所述三维纹理网格进行切片,得到切片数据,以及计算所述待贴图区域的切片层数,逐层计算各层切片的轮廓线,得到各层切片的轮廓线数据,其中,在计算当前层切片的轮廓线时,保留与所述当前层切片拓扑相关的网格数据,清除与所述当前层切片拓扑不相关的网格数据。

在具体实施中,所述切片单元34,适于对当前层切片的三角形进行离散采样,重新三角化,计算每个点的纹理值,根据设定的拉伸方向和距离,计算每个点的拉伸矢量,得到局部拉伸网格数据,移动对应点的坐标,得到拉伸网格,清除与当前层切片拓扑不相关的网格数据,计算所述当前层切片的轮廓线。

在具体实施中,所述三维纹理贴图装置30还可以包括:编辑单元(图中未示出),可以在在得到三维纹理界面之后,对所述三维纹理网格的进行纹理编辑。

在具体实施中,所述编辑单元,适于进行以下至少一种编辑:将所述三维纹理网格的纹理进行平移;将所述三维纹理网格的纹理进行缩放;将所述三维纹理网格的纹理进行旋转;对所述三维纹理网格的纹理的边界进行处理;对所述三维纹理网格的纹理去噪处理;对所述三维纹理网格的纹理进行多值化处理。

在具体实施中,所述三维纹理贴图装置30还可以包括:标记单元(图中未示出),适于在获取待打印三维模型的待贴图区域之后,采用以下任意一种方式对所述待贴图区域的目标进行标记:点标记、方框标记、多边形标记,以指定打印三维模型的待贴图区域。

在具体实施中,所述三维纹理贴图装置30还可以包括:检测单元(图中未示出),适于在展开所述待贴图区域对应的三维网格之前,检测所述待贴图区域是否可展开;当所述待贴图区域不可展开时,对所述待贴图区域进行分割、重新标记,使得处理后的待贴图区域可展开。

在具体实施中,所述三维纹理贴图装置30还可以包括:视差贴图单元(图中未示出),适于在得到所述三维纹理网格之后,对所述三维纹理网格进行视差贴图处理,得到视差贴图网格。

在具体实施中,所述三维纹理贴图装置30的工作原理及工作流程可以参考本发明上述实施例中对三维纹理贴图方法的描述,此处不做赘述。

本发明实施例还提供一种三维纹理贴图装置,包括存储器和处理器,所述存储器上存储有可在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令时执行本发明上述任一实施例提供的三维纹理贴图方法的步骤。

本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质为非易失性存储介质或非瞬态存储介质,其上存储有计算机指令,所述计算机指令运行时执行本发明上述任一实施例提供的三维纹理贴图方法的步骤。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于任一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1