三维模型自动折叠的方法与流程

文档序号:13685922阅读:693来源:国知局
三维模型自动折叠的方法与流程

本发明涉及计算机图形学领域,具体提供一种三维模型自动折叠的方法。



背景技术:

近年来随着房屋价格的上涨,小面积户型越来越受到欢迎,在这种环境下,如何更好地利用有限的空间就显得十分重要,物体的折叠能够帮助我们更好地利用有限的空间。例如,客厅中不常用的桌椅往往需要占用较大的空间,若我们在不需要的时候将其折叠储藏,需要使用的时候将其展开放置,则可以节省大量的空间。同时,在物体的运输过程中,若对一些占用空间较大的设备进行拆解运输,不仅可以节省大量的空间,还可以降低物体运输过程中的难度。

因此,如何提供一种解决上述问题的方案是本领域技术人员目前需要解决的问题。



技术实现要素:

为了解决现有技术中的上述问题,即为了解决物体占用空间较多的问题,本发明提供了一种三维模型自动折叠的方法,包括:

建立物体的三维模型,检测所述三维模型中各个部件的对称关系和连接关系,并在连接部件之间建立铰链点;

根据所述铰链点生成所述部件的关系图以及旋转轴,依据所述关系图以及所述旋转轴求解各个所述部件的折叠次序、折叠轴以及折叠角度;

根据所述折叠次序、所述折叠轴以及所述折叠角度对所述三维模型进行折叠。

在上述方法的优选技术方案中,所述“建立物体的三维模型”之后,所述“检测所述三维模型中各个部件的对称关系和连接关系”之前,该方法还包括:

对所述部件使用hacd层次近似凸分解算法进行凸包分解。

在上述方法的优选技术方案中,所述“求解各个所述部件的折叠次序、折叠轴以及折叠角度”之后,所述“实现所述三维模型的自动折叠”之前,该方法还包括:

对所述部件进行可压缩性以及凸包性分析,若所述部件的可压缩性以及凸包性满足折叠要求,则对所述部件进行进一步分割。

在上述方法的优选技术方案中,所述进一步分割的方法为:

从所述部件的凸包的相交点中选取靠近所述部件中心的相交点,沿所述部件变化最大的方向进行分割。

在上述方法的优选技术方案中,所述“检测所述三维模型中各个部件的对称关系”,其方法为:

判断所述部件之间是否存在潜在对称平面,若存在,则继续判断所述部件是否满足对称约束关系,若满足,则确定所述部件存在对称关系。

在上述方法的优选技术方案中,所述“在连接部件之间建立铰链点”,其方法为:

将所述部件中具有相同法向量的多边形组合为第一组合多边形,将与所述部件连接的部件中具有与所述部件相反法向量的多边形组合为第二组合多边形,使用带方向的包围盒表示所述第一组合多边形以及所述第二组合多边形,根据所述第一组合多边形与所述第二组合多边形的相交区域确定所述铰链点。

在上述方法的优选技术方案中,所述“根据所述铰链点生成所述部件的关系图”,其方法为:

根据所述铰链点通过广度优先算法生成所述部件的关系图。

在上述方法的优选技术方案中,所述“根据所述铰链点生成所述部件的关系图”之后,所述“求解各个所述部件的折叠次序、折叠轴以及折叠角度”之前,该方法还包括:

通过子弹碰撞检测算法计算所述三维模型所能承受的最大外力。

在上述方法的优选技术方案中,所述“求解各个所述部件的折叠次序”,其方法为:

通过遗传算法计算各个所述部件的折叠次序。

在上述方法的优选技术方案中,求解各个所述部件的折叠轴以及所述折叠角度,其方法为:

遍历不包含在所述三维模型的循环结构的旋转轴和旋转角度;

根据所述旋转轴和所述旋转角度,求解所述三维模型的折叠能量函数以及功能可行性函数;

若求解得到所述折叠能量函数与所述功能可行性函数的组合能量最大时,则选取该时刻对应的旋转轴与旋转角度作为所述三维模型的折叠轴与折叠角度。

本发明通过三维模型自动折叠的方法,可以实现对物体的折叠次序、折叠轴以及折叠角度实现综合优化,同时,通过对物体的部件进行可压缩性以及凸包性分析,在折叠优化的过程中提前生成部件的不碰撞折叠路径,可以进一步实现对物体的分割,从而进一步减少物体占用的空间。

附图说明

图1为本发明一种实施例的三维模型自动折叠的方法流程示意图;

图2为本发明一种实施例的三维模型自动折叠的方法信息提取的流程示意图;

图3为本发明一种实施例的三维模型自动折叠的方法铰链点提取的结构示意图;

图4为本发明一种实施例的三维模型自动折叠的方法旋转轴的结构示意图;

图5为本发明一种实施例的三维模型自动折叠的方法折叠次序的结构示意图;

图6为本发明一种实施例的三维模型自动折叠的方法折叠步骤的流程示意图。

具体实施方式

下面参照附图来描述本发明的优选实施方式。本领域技术人员应当理解的是,这些实施方式仅仅用于解释本发明的技术原理,并非旨在限制本发明的保护范围。

如图1所示,为本发明一种实施例的三维模型自动折叠的方法流程示意图,包括:

步骤s1:建立物体的三维模型,检测三维模型中各个部件的对称关系和连接关系,并在连接部件之间建立铰链点;

如图2所示,为本发明一种实施例的三维模型自动折叠的方法信息提取的流程示意图,其中,步骤s21表示输入的三维模型,步骤s22表示铰链点的确定,步骤s23表示关系图的提取,s24表示对称关系的提取。通过建立物体的三维模型,并将三维模型的分割区域与物体的部件进行一一对应,可以将物体分为多个部件进行分析,从而找到各个部件之间的联系,更加有利于对物体进行折叠分析。通过分析并提取模型中各个部件的对称关系和连接关系,并在连接部件之间建立铰链点,能够生成各个部件之间的关系图,决定能够折叠部件的旋转轴,其中,旋转轴被选取为用于折叠三维模型时的折叠轴。

步骤s2:根据铰链点生成部件的关系图以及旋转轴,依据关系图以及旋转轴求解各个部件的折叠次序、折叠轴以及折叠角度;

如图3所示,为本发明一种实施例的三维模型自动折叠的方法铰链点提取的结构示意图,其中,31表示选取的两个部件,32表示第一组合多边形,33表示第二组合多边形。在实际应用中,为了方便后续的分析与计算,通过将部件连接的部分抽象为铰链点,进而根据铰链点生成部件的关系图以及相应的旋转轴,可以将现实中复杂的物体转变为易于分析计算的模型,其中,关系图能够直观的表达物体的组成部件之间的连接关系,旋转轴能够分析出模型能够以何种方式进行旋转、折叠,获得物体部件的关系图与旋转轴之后,结合相应的算法,可以进一步求解出各个部件的折叠次序、折叠轴以及折叠角度。

步骤s3:根据折叠次序、折叠轴以及折叠角度实现三维模型的自动折叠。

获取到各个部件的折叠次序、折叠轴以及折叠角度之后,能够得到对物体的各个部件进行折叠的最优方法,实现对物体进行折叠之后,占用空间最小的效果,同时,本发明的方法能够在获得折叠次序、折叠轴以及折叠角度之后完成对原始三维模型的自动折叠,得到折叠之后占用空间更小的三维模型。

作为一种优选的实施例,“建立物体的三维模型”之后,“检测三维模型中各个部件的对称关系和连接关系”之前,该方法还包括:

将部件使用hacd(hierarchicalapproximateconvexdecomposition,层次近似凸分解)算法进行凸包分解,以避免部件折叠过程中发生碰撞。

在物体进行折叠的过程中,需要保证各个部件进行折叠的过程中不会发生碰撞。其中,hacd算法能够进行凸包分解,将部件分解为一组凸包,凸包是能够将任意一个多边形其边界上或者内部的任意两个点,连接这两个点的线段上的所有点都被包含在该多边形的边界或者内部中。对部件进行凸包分解后,可以更加直观的了解折叠的部件是否会发生碰撞,进而可以减少碰撞的部件占用的空间。

作为一种优选的实施例,“求解各个部件的折叠次序、折叠轴以及折叠角度”之后,“实现三维模型的自动折叠”之前,该方法还包括:

对部件进行可压缩性以及凸包性分析,若部件的可压缩性以及凸包性满足折叠要求,则对部件进行进一步分割。

在实际应用中,存在一些不能进行有效折叠的模型,本发明可以通过对部件的可压缩性和凸包性进行分析,若部件的可压缩性和凸包性满足要求,则对部件进行进一步的分割,实现模型的折叠,从而减少模型占用的空间。

具体的,可压缩性是通过各个部件的折叠角来确定,一般的,大多数部件之间存在垂直关系,因此理想的折叠角度为90度,以90度的角度对部件进行折叠能够最大程度上实现空间压缩,但是实际应用中,折叠后的部件,不应该存在相交的部分,而且无法实现90度的折叠角度,因此本发明选择具有最小的折叠角的部件来进一步分割。

具体的,凸包性分析是通过从部件发射射线,选取与部件中的凸包相交的射线的长短之和作为部件凸包性的测度,为保证折叠之后,部件所组成的凸包应该与部件尽可能的接近,则选择射线的长短之和最小的部件来进一步进行分割。

作为一种优选的实施例,进一步分割的方法为:

选取部件变化最大的方向,从部件的凸包的相交点,并且靠近部件中心的位置进行分割。

在具体分割时,每次仅选取一个部件将其一分为二,分割方向为部件变化最大的方向,其中,具体的分割方向可以通过pca(principalcomponentanalysis,主成分分析)算法求解,pca算法通过线性变换将原始数据变换为一组各维线性无关的表示,可用于提取数据的主要特征分量,常用于高维数据的降维。分割位置为部件中不同凸包的相交点,并尽可能靠近部件中心的位置,为保证原始部件中的对称组具有相同的操作,可以使用相似的分割方法对对称部件进行分割。

作为一种优选的实施例,“检测三维模型中各个部件的对称关系”,其方法为:

判断部件之间是否存在潜在对称平面,若存在,则判断部件是否满足对称约束关系,若满足,则判断部件存在对称关系。

在部件的关系图分解、部件折叠以及分割的过程中,需要检测三维模型中各个部件的对称关系,本发明通过对不同的部件之间的镜像对称性的分析来获得相应的对称组,其中,需要先判断部件之间是否存在潜在对称平面,潜在对称平面的判断方法为:选取两个部件的中心点,分别表示为ci和cj,若某一平面以两个部件的中点点连线对应的单位向量并且通过坐标点ci+0.5·(cj-ci),则可以认为潜在的对称平面存在,存在潜在对称平面的前提下,判断对应部件上的点之间是否满足约束关系,进而判断部件之间是否满足对称关系,具体判断方法为:若在任意部件上的点pi均可以在其他部件上找到对应的点pj使其满足约束关系pj=pi+||pj-pi||·n,则可以认为对应的部件满足对称关系。

作为一种优选的实施例,“在连接部件之间建立铰链点”,其方法为:

将部件中具有相同法向量的多边形组合为第一组合多边形,将与部件连接的部件中具有与部件相反法向量的多边形组合为第二组合多边形,使用带方向的包围盒表示第一组合多边形以及第二组合多边形,根据第一组合多边形与第二组合多边形的相交区域确定铰链点。

如图4所示,为本发明一种实施例的三维模型自动折叠的方法旋转轴的结构示意图。连接不同部件的铰链点可以通过分析相邻的部件的网格相交区域来得到,为了便于相交区域的计算,算法将具有相同法向的多边形区域组合为第一组合多边形,并使用带方向的包围盒表示该第一组合多边形,然后分析与该部件连接的部件中具有相反法向量的多边形,将其组合为第二多边形,同样用带方向的包围盒表示第二组合多边形,通过第一组合多边形和第二组合多边形的相交区域来确定铰链点。其中,包围盒是一种求解离散点集最优包围空间的算法,其可以将体积稍大且特性简单的几何体来近似地替代复杂的几何对象,我们将体积稍大、特性简单的几何体称为包围盒。因为每个铰链点是通过多边形相交产生的,因此相交的四边形区域可以表示为四节点,相对的,铰链点对应的旋转轴可以通过由四边形的四个节点确定,每个铰链点可以产生按照9个方向进行旋转的旋转轴。

作为一种优选的实施例,“根据铰链点生成部件的关系图”,其方法为:

根据铰链点通过广度优先算法生成部件的关系图。

广度优先算法是一种图形搜索演算法,广度优先算法可以从根节点开始,沿着树的宽度遍历树的节点,若发现目标,则演算终止。部件之间的关系图可以通过广度优先算法来进行图结构的生成,在本发明中,根节点是不包含在对称组中,且包围盒最大的部件。

作为一种优选的实施例,“根据铰链点生成部件的关系图”之后,“求解各个部件的折叠次序、折叠轴以及折叠角度”之前,该方法还包括:

通过子弹碰撞检测算法计算三维模型所能承受的最大外力。

在物体折叠过程中,需要对物体的折叠部分进行承重力分析,即整个模型所能承受的最大外力。通过子弹碰撞检测算法,可以对模型不断增加外力的大小,直至模型坍塌,来测试模型所能承受的最大外力。

作为一种优选的实施例,求解各个部件的折叠次序,其方法为:

通过遗传算法计算各个部件的折叠次序。

如图5所示,为本发明一种实施例的三维模型自动折叠的方法折叠次序的结构示意图。对于物体的折叠,不同的折叠次序可能导致不同的折叠效果,从而影响最终折叠后物体的压缩性。本发明通过遗传算法能够实现优化折叠后物体的空间,以及折叠物体承重力变化,即折叠后物体的空间与其包含的凸包的差异应该尽可能小。遗传算法将随机生成的折叠次序作为初始化的种群,将部件子集基数为1或者2的部件子集作为折叠次序的候选,遗传算法通过轮盘赌的方式来选择一组次序进行杂交并通过交换次序子集的位置来实现变异,当新旧种群的相似度连续三次大于一定比例后停止,其中,相似度为两个种群中相同的样本数与总样本数之比,具体的比例由用户自行设定,一般的,比例大于90%。

作为一种优选的实施例,折叠轴以及折叠角度的求解方法为:

遍历不包含在三维模型的循环结构的旋转轴和旋转角度;

根据旋转轴和旋转角度,求解三维模型的折叠能量函数以及功能可行性函数;

若求解得到折叠能量函数与功能可行性函数的能量最大时,则选取该时刻的旋转轴与旋转角度作为三维模型的折叠轴与折叠角度。

具体的,折叠能量函数为折叠后物体的凸包体积、当前折叠部件以及其他部件组成的凸包体积的加权和,凸包的体积越大,则折叠能量越高。功能可行性能量函数要求折叠后物体的承重能力尽可能保持不变,通过在模型的不同位置处进行承重力测试,可以得到模型在位置i处的承重力的功能可行性能量函数e2,i的如公式(1)所示:

其中,||fo,i||2为原始模型的承重力的幅值,||fc,i||2为折叠后模型的承重力的幅值,∈f为承重力允许的变化比率,fo,i为原始模型的承重力向量,fc,i为折叠后模型的承重力向量,当经过折叠后原模型的承重力依旧保持在一定范围内,则e2,i的值为0,否则认为对应的结果不合理,即为无穷大。

具体的,如图6所示,为本发明一种实施例的三维模型自动折叠的方法折叠步骤的流程示意图。其中,步骤s61为建立原始的三维模型,步骤s62至步骤s65为按次序进行折叠的步骤。在折叠过程中,只允许按照铰链点的旋转进行操作,对于旋转操作的实现,需要根据部件在关系图中的位置来确定使用层次化方法或者复杂的运动约束求解器来实现部件变换操作。部件在关系图中的位置由其是否在循环结构中确定。若在关系图中存在任意两个部件a、b,在进行关系图遍历时既可以由a遍历至b,也可由b遍历至a,则部件a、b位于循环结构中。其中,层次化变换方法对不在循环结构中的部件以及其子节点施加相似的约束,而复杂的运动约束求解器则可以有效地处理包含在循环结构的部件的变换。在本发明中,使用层次变换方法遍历不包含在三维模型的循环结构的旋转轴和旋转角度,其中,以5度的间隔来搜索旋转角度,当计算得到的折叠能量函数与功能可行性函数的能量最大时,则选取该时刻的旋转轴与旋转角度作为三维模型的折叠轴与折叠角度。

本发明通过三维模型自动折叠的方法,可以实现对物体的折叠次序、折叠轴以及折叠角度实现综合优化,同时,通过对物体的部件进行可压缩性以及凸包性分析,在折叠优化的过程中提前生成部件的不碰撞折叠路径,可以进一步实现对物体的分割,从而进一步减少物体占用的空间。

本领域技术人员应该能够意识到,结合本文中所公开的实施例描述的各示例的方法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明电子硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以电子硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

至此,已经结合附图所示的优选实施方式描述了本发明的技术方案,但是,本领域技术人员容易理解的是,本发明的保护范围显然不局限于这些具体实施方式。在不偏离本发明的原理的前提下,本领域技术人员可以对相关技术特征作出等同的更改或替换,这些更改或替换之后的技术方案都将落入本发明的保护范围之内。

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