掌桥专利:专业的专利平台
掌桥专利
首页

一种模型简化方法、装置、电子设备及存储介质

文献发布时间:2023-06-19 10:08:35


一种模型简化方法、装置、电子设备及存储介质

技术领域

本发明涉及计算机图像学技术领域,特别是涉及一种模型简化方法、装置、电子设备及存储介质。

背景技术

随着计算机图像学的发展,3D(threedimensional,三维图形)技术在很多领域都有较大的发展。目前,在3D技术中以三角网格形式表示的3D模型比较通用,如图1所示,图1中的模型110是以很多个三角形拼接形成的3D模型。

然而,目前的3D模型中三角形的面数过多,3D模型过于复杂,这导致对3D模型的进行渲染以及动作驱动等操作的计算量都过于巨大。而这种由于3D 模型过于复杂而导致的计算量过大的问题,会导致计算力有限的模型驱动设备难以对目前的3D模型的进行模型渲染以及动作驱动等操作,即目前的3D模型由于复杂度过高难以满足一些有实时性要求的应用场景。

发明内容

本发明实施例的目的在于提供一种模型简化方法、装置、电子设备及存储介质,以简化3D模型的结构,使得计算力有限的模型驱动设备可以对3D模型的进行模型渲染以及动作驱动等操作。

为了达到上述目的,本发明实施例提供了一种模型简化方法,包括:

获得待简化3D模型的模型数据;所述待简化3D模型为由多个三角形拼接形成的模型;所述模型数据包括:所述待简化3D模型的每个三角形的标识及每个三角形各个顶点的坐标数据;

基于每个三角形的标识,计算所述待简化3D模型的每个三角形的各个顶点的度数;其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量;

将度数等于5的顶点确定为待简化顶点;

针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将所述待简化3D模型中该待简化顶点的相邻两个参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;

针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数;

针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;

若满足,则删除所述待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;

在所述待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;

更新各个参考顶点的简化次数,以及,更新待简化3D模型。

进一步的,所述根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点,包括:

针对该待简化顶点的每个参考顶点,将该参考顶点与剩余的任意两个相邻的参考顶点之间构成的三角形作为该参考顶点对应的参考三角形,计算该参考顶点对应的各个参考三角形的面积之和;

从该待简化顶点的所有参考顶点中,选取对应的各个参考三角形的面积之和最小的参考顶点作为目标参考顶点。

进一步的,所述在所述待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形,包括:

根据该待简化顶点的各个参考顶点的坐标数据,在所述待简化3D模型中创建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;并为每个新创建的三角形生成一个新的标识。

进一步的,所述针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件,包括:

判断每个待简化顶点是否小于第一预设简化次数,以及待简化顶点的各个参考顶点的简化次数是否均小于第二预设简化次数;若均小于,则满足预设的简化次数条件;

判断各个目标三角形的面积是否均小于预设面积,若小于,则满足预设的面积条件。

进一步的,在所述更新待简化3D模型之后,还包括:

判断当前迭代次数是否达到预设迭代次数;

如果当前迭代次数达到预设迭代次数,结束简化操作;

如果当前迭代次数未达到预设迭代次数,更新迭代次数;并针对更新后的待简化3D模型,并返回所述基于每个三角形的标识,计算所述待简化3D模型的每个三角形的各个顶点的度数的步骤。

进一步的,在所述更新各个参考顶点的简化次数之后,还包括:

将更新了简化次数后的各个参考顶点加到预设参考顶点集合中;

所述针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点的步骤,包括:

针对每一个待简化顶点,判断该待简化顶点是否在预设参考顶点集合中,如果不在,则表示该待简化顶点未被简化过,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点。

为了达到上述目的,本发明实施例提供了一种模型简化装置,包括:

第一数据获得模块,用于获得待简化3D模型的模型数据;所述待简化3D 模型为由多个三角形拼接形成的模型;所述模型数据包括:所述待简化3D模型的每个三角形的标识及每个三角形各个顶点的坐标数据;

顶点度数计算模块,用于基于每个三角形的标识,计算所述待简化3D模型的每个三角形的各个顶点的度数;其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量;

顶点确定模块,用于将度数等于5的顶点确定为待简化顶点;

第二数据获得模块,用于针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将所述待简化3D 模型中该待简化顶点的相邻两个参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;

第三数据获得模块,用于针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数;

第一判断模块,用于针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;

处理模块,用于若满足,则删除所述待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;

三角形创建模块,用于在所述待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;

更新模块,用于更新各个参考顶点的简化次数,以及,更新待简化3D模型。

进一步的,所述处理模块,针对该待简化顶点的每个参考顶点,将该参考顶点与剩余的任意两个相邻的参考顶点之间构成的三角形作为该参考顶点对应的参考三角形,计算该参考顶点对应的各个参考三角形的面积之和;从该待简化顶点的所有参考顶点中,选取对应的各个参考三角形的面积之和最小的参考顶点作为目标参考顶点。

进一步的,所述三角形创建模块,具体用于根据该待简化顶点的各个参考顶点的坐标数据,在所述待简化3D模型中创建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;并为每个新创建的三角形生成一个新的标识。

进一步的,所述第一判断模块,包括:

第一判断子模块,用于判断每个待简化顶点是否小于第一预设简化次数,以及待简化顶点的各个参考顶点的简化次数是否均小于第二预设简化次数;若均小于,则满足预设的简化次数条件;

第二判断子模块,用于判断各个目标三角形的面积是否均小于预设面积,若小于,则满足预设的面积条件。

进一步的,所述装置,还包括:第二判断模块,用于判断当前迭代次数是否达到预设迭代次数;如果当前迭代次数达到预设迭代次数,结束简化操作;如果当前迭代次数未达到预设迭代次数,更新迭代次数;并针对更新后的待简化3D模型,并返回所述基于每个三角形的标识,计算所述待简化3D模型的每个三角形的各个顶点的度数的步骤。

进一步的,所述装置,还包括:

添加模块,用于将更新了简化次数后的各个参考顶点加到预设参考顶点集合中;

所述第二数据获得模块,具体用于针对每一个待简化顶点,判断该待简化顶点是否在预设参考顶点集合中,如果不在,则表示该待简化顶点未被简化过,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点。

为了达到上述目的,本发明实施例提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现上述任一所述模型简化方法步骤。

为了达到上述目的,本发明实施例提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述模型简化方法步骤。

为了达到上述目的,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述模型简化方法步骤。

本发明实施例有益效果:

采用本发明实施例提供的方法,获得待简化3D模型的模型数据;基于每个三角形的标识,计算待简化3D模型的每个三角形的各个顶点的度数;将度数等于4的顶点确定为待简化顶点;对于每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将在待简化3D 模型中该待简化顶点的参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;若满足,则删除待简化3D 模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;在待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;更新各个参考顶点的简化次数,以及,更新待简化3D模型。通过将待简化3D模型中满足预设的简化次数和面积条件的目标三角形从3D模型中删除,并在待简化3D模型中新建由两个目标参考顶点和任意一个剩余的参考顶点之间构成的三角形,即删去多个目标三角形,新建三个三角形,达到简化3D 模型的目的,使得计算力有限的模型驱动设备可以对3D模型进行模型渲染以及动作驱动等操作。即使得3D模型可以满足对模型渲染以及动作驱动等操作有实时性要求的应用场景。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为现有技术中以三角网格形式表示的3D模型;

图2为本发明实施例提供的模型简化方法的一种流程图;

图3为本发明实施例提供的模型简化方法的另一种流程图;

图4为本发明实施例中待简化3D模型的一个γ结构的示意图;

图5a为应用本发明实施例提供的方法在待简化3D模型的新建了三个三角形的一种示意图;

图5b为应用本发明实施例提供的方法在待简化3D模型的新建了三个三角形的另一种示意图;

图5c为应用本发明实施例提供的方法在待简化3D模型的新建了三个三角形的又一种示意图;

图5d为应用本发明实施例提供的方法在待简化3D模型的新建了三个三角形的又一种示意图;

图5e为应用本发明实施例提供的方法在待简化3D模型的新建了三个三角形的又一种示意图;

图6为本发明实施例提供的模型简化装置的一种结构图;

图7为本发明实施例提供的模型简化装置的另一种结构图;

图8为本发明实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

由于现有的3D模型因为过于复杂而导致计算力有限的模型驱动设备难以对现有的3D模型的进行模型渲染以及动作驱动等操作,为了简化3D模型的结构,使得简化后的3D模型可以满足计算力有限的模型驱动设备3D模型的进行模型渲染以及动作驱动等操作,本发明实施例提供了一种模型简化方法、装置、电子设备及存储介质。

参见图2,图2为本发明实施例提供的模型简化方法的一种流程,包括:

步骤201,获得待简化3D模型的模型数据。

其中,待简化3D模型为由多个三角形拼接形成的模型;模型数据包括:待简化3D模型的每个三角形的标识及每个三角形各个顶点的坐标数据。

步骤202,基于每个三角形的标识,计算待简化3D模型的每个三角形的各个顶点的度数。

其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量。

步骤203,将度数等于5的顶点确定为待简化顶点。

步骤204,针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将待简化3D模型中该待简化顶点的参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形。

步骤205,针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积。

其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数。

步骤206,针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件。

步骤207,若满足,则删除待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点。

步骤208,在待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和和目标参考顶点之间构成的三角形,得到三个新创建的三角形。

步骤209,更新各个参考顶点的简化次数,以及,更新待简化3D模型。

采用本发明实施例提供的方法,获得待简化3D模型的模型数据;基于每个三角形的标识,计算待简化3D模型的每个三角形的各个顶点的度数;将度数等于4的顶点确定为待简化顶点;对于每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将在待简化3D 模型中该待简化顶点的参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;若满足,则删除待简化3D 模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;在待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;更新各个参考顶点的简化次数,以及,更新待简化3D模型。通过将待简化3D模型中满足预设的简化次数和面积条件的目标三角形从3D模型中删除,并在待简化3D模型中新建由两个目标参考顶点和任意一个剩余的参考顶点之间构成的三角形,即删去多个目标三角形,新建三个三角形,达到简化3D 模型的目的,使得计算力有限的模型驱动设备可以对3D模型进行模型渲染以及动作驱动等操作。即使得3D模型可以满足对模型渲染以及动作驱动等操作有实时性要求的应用场景。

参见图3,图3为本发明实施例提供的模型简化方法的另一种流程,包括:

步骤301,获得待简化3D模型的模型数据。

本发明实施例中,待简化3D模型为由多个三角形拼接形成的模型,且每个三角形对应存在一个标识。待简化3D模型的模型数据包括:待简化3D模型的每个三角形的标识及每个三角形各个顶点的坐标数据。

举例说明,若待简化3D模型包括三角形T1和三角形T2等等多个三角形,其中,三角形T1的三个顶点及其顶点的三维坐标分别为P1(x1,y1,z1)、P2 (x2,y2,z2)和P3(x3,y3,z3);三角形T2对应的标识“SG

则待简化3D模型的模型数据中包括:三角形T1三个顶点的坐标数据P1(x1, y1,z1)、P2(x2,y2,z2)和P3(x3,y3,z3)和三角形T2对应的标识“SG

步骤302,基于每个三角形的标识,计算待简化3D模型的每个三角形的各个顶点的度数。

其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量。

本发明实施例实施例中,在获得待简化3D模型的模型数据之后,可以基于三角形的标识,确定出待简化3D模型中的各个三角形,然后针对每个三角形的每个顶点,计算与该顶点相连的三角形的边数作为该顶点的度数。

举例说明,参见图4,图4为待简化3D模型结构的一部分。图4展示了待简化3D模型中的三角形ABC、三角形ACD、三角形ADE、三角形AEF和三角形 AFB。若其中的三角形ABC的标识为“SG

步骤303,将度数等于5的顶点确定为待简化顶点。

参见图4,图4中顶点A的度数为5,顶点B、顶点C、顶点D、顶点E和顶点 F的度数均为3,可以将顶点A作为待简化顶点。并且,可以将图4所示的由三角形ABC、三角形ACD、三角形ADE、三角形AEF和三角形AFB构成结构作为待简化3D模型中的γ结构。本发明实施例中可以是通过简化待简化3D模型中的γ结构,达到简化待简化3D模型的目的。

本发明实施例中,可以将所确定的待简化顶点放入预设的集合X中。例如,可以将图4中的待简化顶点A放入预设的集合X中。

步骤304,针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点。

并且,可以将待简化3D模型中该待简化顶点的相邻两个参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形。

例如,参见图4,针对待简化顶点A,可以获得与其直接相连的五个顶点:顶点B、顶点C、顶点D、顶点E和顶点F,并将顶点B、顶点C、顶点D、顶点E 和顶点F均作为待简化顶点A的参考顶点。并且,在待简化3D模型中,待简化顶点A与待简化顶点A的相邻参考顶点所构成的三角形包括:三角形ABC、三角形ACD、三角形ADE、三角形AEF和三角形AFB,本步骤中,可以将三角形 ABC、三角形ACD、三角形ADE、三角形AEF和三角形AFB均作为待简化顶点 A对应的目标三角形。

本发明实施例中,可以针对待简化3D模型中每个三角形的每个顶点设置一个计数器,每个顶点的计数器用于计数该顶点的简化次数。其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数。本步骤中,可以将待简化3D模型中每个三角形的每个顶点的计数器的数值设置为 0,即将每个顶点的简化次数的初始值设置为0。

步骤305,针对每个待简化顶点,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积。

具体的,可以根据目标三角形的三个顶点的坐标数据,计算出目标三角形的面积:

其中,S

步骤306,从集合X中任取出一个待简化顶点,针对该待简化顶点,判断该待简化顶点的简化次数是否小于第一预设简化次数,以及该待简化顶点的各个参考顶点的简化次数是否均小于第二预设简化次数,若判断结果为是,执行步骤307,若判断结果为否,执行步骤312。

其中,第一预设简化次数可以设定为2或3等等,第二预设简化次数也可以设定为2或3等等,不做具体限定。

步骤307,判断该待简化顶点对应的各个目标三角形的面积是否均小于预设面积;若判断结果为是,执行步骤308,若判断结果为否,执行步骤312。

其中,预设面积可以根据待简化3D模型的复杂度进行设定,若待简化3D 模型的复杂度较高,可以将预设面积设定的较大一点。

步骤308,删除待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形。

具体的,可以删去该待简化顶点的坐标,以及删去该待简化顶点对应的三个目标三角形以及三个目标三角形的标识。

举例说明,若第一预设简化次数和第二预设简化次数均设定为2,预设面积设定为15cm

本步骤中,还可以将所删去的待简化顶点的各个参考顶点放入预设参考顶点集合中。例如,参见图4,若将图4中的待简化顶点A删去,则可以将待简化顶点A的参考顶点“参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F”放入预设参考顶点集合中。

步骤309,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点。

具体的确定目标参考顶点的步骤可以包括步骤A1-步骤A2:

步骤A1,针对该待简化顶点的每个参考顶点,将该参考顶点与剩余的任意两个相邻的参考顶点之间构成的三角形作为该参考顶点对应的参考三角形,计算该参考顶点对应的各个参考三角形的面积之和;

步骤A2,从该待简化顶点的所有参考顶点中,选取对应的各个参考三角形的面积之和最小的参考顶点作为目标参考顶点。

举例说明,参见图4,针对待简化顶点A的每个参考顶点,将该参考顶点与剩余的任意两个相邻的参考顶点之间构成的三角形作为该参考顶点对应的参考三角形。例如,参见图5a,针对待简化顶点A的参考顶点B,将参考顶点B与剩余的任意两个相邻的参考顶点之间构成的三角形BCD、三角形BDE和三角形 BEF均作为参考顶点B对应的参考三角形;并且,可以计算参考顶点B对应的三个参考三角形的面积之和:S

参见图5b,针对待简化顶点A的参考顶点C,将参考顶点C与剩余的任意两个相邻的参考顶点之间构成的三角形CDE、三角形CEF和三角形CFB均作为参考顶点C对应的参考三角形;并且,可以计算参考顶点C对应的三个参考三角形的面积之和:S

参见图5c,针对待简化顶点A的参考顶点D,将参考顶点D与剩余的任意两个相邻的参考顶点之间构成的三角形DEF、三角形DFB和三角形DBC均作为参考顶点D对应的参考三角形;并且,可以计算参考顶点D对应的三个参考三角形的面积之和:S

参见图5d,针对待简化顶点A的参考顶点E,将参考顶点E与剩余的任意两个相邻的参考顶点之间构成的三角形EFB、三角形EBC和三角形ECD均作为参考顶点E对应的参考三角形;并且,可以计算参考顶点E对应的三个参考三角形的面积之和:S

参见图5e,针对待简化顶点A的参考顶点F,将参考顶点F与剩余的任意两个相邻的参考顶点之间构成的三角形FBC、三角形FCD和三角形FDE均作为参考顶点F对应的参考三角形,并且,可以计算参考顶点F对应的三个参考三角形的面积之和:S

然后可以从该待简化顶点A的所有参考顶点中,选取对应的各个参考三角形的面积之和最小的参考顶点作为目标参考顶点。例如,若S

步骤310,根据该待简化顶点的各个参考顶点的坐标数据,在待简化3D模型中创建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;并为每个新创建的三角形生成一个新的标识。

举例说明,参见图4,若从待简化3D模型中删去了待简化顶点A的坐标,并且删去了待简化顶点A对应的五个目标三角形以及五个目标三角形的标识。

若待简化顶点A的参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F分别对应的参考三角形的面积之和S

若待简化顶点A的参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F分别对应的参考三角形的面积之和S

若待简化顶点A的参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F分别对应的参考三角形的面积之和S

若待简化顶点A的参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F分别对应的参考三角形的面积之和S

若待简化顶点A的参考顶点B、参考顶点C、参考顶点D、参考顶点E和参考顶点F分别对应的参考三角形的面积之和S

步骤311,更新各个参考顶点的简化次数,以及,更新待简化3D模型。

本步骤中,可以将删去的待简化顶点的各个参考顶点的计数器中的数值加 1作为新的计数器的数值,即将各个参考顶点的简化次数加1作为新的简化次数。并更新待简化3D模型的结构,得到新的待简化3D模型。

步骤312,当集合X不为空集时,从集合X中再次任取出一个新的待简化顶点。

步骤313,判断该待简化顶点是否在预设参考顶点集合中,若判断结果为否,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点,并针对该待简化顶点返回执行步骤306;若判断结果为是,返回执行步骤312。

其中,该待简化顶点不在预设参考顶点集合中表示该待简化顶点未被简化过。

步骤314,当集合X为空集时,判断当前迭代次数是否达到预设迭代次数,若判断结果为是,执行步骤315;若判断结果为否,更新迭代次数,并针对更新后的待简化3D模型,返回执行步骤302。

其中,预设迭代次数可以设定为50次或100次等等,不做具体限定。

步骤315,结束简化操作。

采用本发明实施例提供的方法,通过将待简化3D模型中满足预设的简化次数和面积条件的目标三角形从3D模型中删除,并在待简化3D模型中新建由两个目标参考顶点和任意一个剩余的参考顶点之间构成的三角形,即删去多个目标三角形,新建三个三角形,达到简化3D模型的目的,使得计算力有限的模型驱动设备可以对3D模型进行模型渲染以及动作驱动等操作。即使得3D模型可以满足对模型渲染以及动作驱动等操作有实时性要求的应用场景。

基于同一发明构思,根据本发明上述实施例提供的模型简化方法,相应地,本发明另一实施例还提供了一种模型简化装置,其结构示意图如图6所示,具体包括:

第一数据获得模块601,用于获得待简化3D模型的模型数据;所述待简化 3D模型为由多个三角形拼接形成的模型;所述模型数据包括:所述待简化3D 模型的每个三角形的标识及每个三角形各个顶点的坐标数据;

顶点度数计算模块602,用于基于每个三角形的标识,计算所述待简化3D 模型的每个三角形的各个顶点的度数;其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量;

顶点确定模块603,用于将度数等于5的顶点确定为待简化顶点;

第二数据获得模块604,用于针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将所述待简化3D模型中该待简化顶点的相邻两个参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;

第三数据获得模块605,用于针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数;

第一判断模块606,用于针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;

处理模块607,用于若满足,则删除所述待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;

三角形创建模块608,用于在所述待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;

更新模块609,用于更新各个参考顶点的简化次数,以及,更新待简化3D 模型。

可见,采用本发明实施例提供的装置,获得待简化3D模型的模型数据;基于每个三角形的标识,计算待简化3D模型的每个三角形的各个顶点的度数;将度数等于4的顶点确定为待简化顶点;对于每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将在待简化3D模型中该待简化顶点的参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;若满足,则删除待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;在待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;更新各个参考顶点的简化次数,以及,更新待简化3D模型。通过将待简化3D模型中满足预设的简化次数和面积条件的目标三角形从3D模型中删除,并在待简化3D模型中新建由两个目标参考顶点和任意一个剩余的参考顶点之间构成的三角形,即删去多个目标三角形,新建三个三角形,达到简化3D模型的目的,使得计算力有限的模型驱动设备可以对3D模型进行模型渲染以及动作驱动等操作。即使得3D模型可以满足对模型渲染以及动作驱动等操作有实时性要求的应用场景。

进一步的,所述处理模块607,针对该待简化顶点的每个参考顶点,将该参考顶点与剩余的任意两个相邻的参考顶点之间构成的三角形作为该参考顶点对应的参考三角形,计算该参考顶点对应的各个参考三角形的面积之和;从该待简化顶点的所有参考顶点中,选取对应的各个参考三角形的面积之和最小的参考顶点作为目标参考顶点。

进一步的,所述三角形创建模块608,具体用于根据该待简化顶点的各个参考顶点的坐标数据,在所述待简化3D模型中创建由该待简化顶点的任意两个相邻参考顶点和目标参考顶点之间构成的三角形,得到三个新创建的三角形;并为每个新创建的三角形生成一个新的标识。

进一步的,参见图7,所述第一判断模606,包括:

第一判断子模块701,用于判断每个待简化顶点是否小于第一预设简化次数,以及待简化顶点的各个参考顶点的简化次数是否均小于第二预设简化次数;若均小于,则满足预设的简化次数条件;

第二判断子模块702,用于判断各个目标三角形的面积是否均小于预设面积,若小于,则满足预设的面积条件。

进一步的,参见图7,所述装置还包括:第二判断模块703,用于判断当前迭代次数是否达到预设迭代次数;如果当前迭代次数达到预设迭代次数,结束简化操作;如果当前迭代次数未达到预设迭代次数,更新迭代次数;并针对更新后的待简化3D模型,并返回所述基于每个三角形的标识,计算所述待简化3D 模型的每个三角形的各个顶点的度数的步骤。

进一步的,参见图7,所述装置还包括:添加模块704,用于将更新了简化次数后的各个参考顶点加到预设参考顶点集合中;

所述第二数据获得模块604,具体用于针对每一个待简化顶点,判断该待简化顶点是否在预设参考顶点集合中,如果不在,则表示该待简化顶点未被简化过,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点。

可见,采用本发明实施例提供的装置,通过将待简化3D模型中满足预设的简化次数和面积条件的目标三角形从3D模型中删除,并在待简化3D模型中新建由两个目标参考顶点和任意一个剩余的参考顶点之间构成的三角形,即删去多个目标三角形,新建三个三角形,达到简化3D模型的目的,使得计算力有限的模型驱动设备可以对3D模型进行模型渲染以及动作驱动等操作。即使得3D 模型可以满足对模型渲染以及动作驱动等操作有实时性要求的应用场景。

本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,

存储器803,用于存放计算机程序;

处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:

获得待简化3D模型的模型数据;所述待简化3D模型为由多个三角形拼接形成的模型;所述模型数据包括:所述待简化3D模型的每个三角形的标识及每个三角形各个顶点的坐标数据;

基于每个三角形的标识,计算所述待简化3D模型的每个三角形的各个顶点的度数;其中,三角形顶点的度数为:与该顶点相连的三角形的边的数量;

将度数等于5的顶点确定为待简化顶点;

针对每一个待简化顶点,获得与该待简化顶点直接相连的其他各个顶点分别作为该待简化顶点的参考顶点;并将所述待简化3D模型中该待简化顶点的相邻两个参考顶点与该待简化顶点之间构成的三角形均作为该待简化顶点对应的目标三角形;

针对每个待简化顶点,获得该待简化顶点与该待简化顶点的各个参考顶点的简化次数;以及,基于该待简化顶点与该待简化顶点的各个参考顶点的坐标数据,计算该待简化顶点对应的各个目标三角形的面积;其中,三角形每个顶点的简化次数为:与该顶点位于同一三角形中的其他顶点被删掉的个数;

针对每个待简化顶点,基于各个参考顶点的简化次数各个目标三角形的面积,判断是否满足预设的简化次数和面积条件;

若满足,则删除所述待简化3D模型中的该待简化顶点和该待简化顶点对应的各个目标三角形;以及,根据该待简化顶点对应的各个目标三角形的面积,从该待简化顶点的各个参考顶点中确定出一个参考顶点作为目标参考顶点;

在所述待简化3D模型中新建由该待简化顶点的任意两个相邻参考顶点和和目标参考顶点之间构成的三角形,得到三个新创建的三角形;

更新各个参考顶点的简化次数,以及,更新待简化3D模型。

上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器 (DigitalSignal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一模型简化方法的步骤。

在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一模型简化方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备及存储介质而言而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种三维模型的简化方法、装置、电子设备及存储介质
  • 一种3D模型简化方法、装置、电子设备及存储介质
技术分类

06120112435168