三维模型的展开方法、装置、设备及存储介质转让专利

申请号 : CN202210382385.7

文献号 : CN114494668B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 曹哲黄舒怀

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请提供了一种三维模型的展开方法、装置、设备、存储介质及程序产品,涉及虚拟场景技术领域。该方法包括:对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;基于基础拼接单元集构建拼接组合序列;该拼接组合序列中包含基于模型展开要求对各个基础拼接单元进行组合得到的各个拼接组合;该模型展开要求包括基于模型设计需求制定的至少一种优化能量;对拼接组合序列中的各个拼接组合进行验证,获得基础拼接单元的拼接结果;基于基础拼接单元的拼接结果,生成三维模型的展开结果。上述方法实现了三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得三维模型的展开结果更加符合实际需求,提高了对三维模型的展开效果。

权利要求 :

1.一种三维模型的展开方法,其特征在于,所述方法包括:

对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集;所述基础拼接单元集中包含基于所述三维模型的纹理UV岛获得的各个基础拼接单元;

基于所述基础拼接单元集构建拼接组合序列;所述拼接组合序列中包含基于模型展开要求对各个所述基础拼接单元进行组合得到的各个拼接组合;所述模型展开要求包括基于模型设计需求制定的至少一种优化能量;所述优化能量的能量值,与所述拼接组合的几何属性和几何属性需求之间的符合程度成反相关;

基于所述拼接组合序列执行至少一次组合验证过程,直至所述拼接组合序列为空,获得所述基础拼接单元的拼接结果;

基于所述基础拼接单元的拼接结果,生成所述三维模型的展开结果;

其中,所述组合验证过程包括:

对所述拼接组合序列中,处于序列首位的第一拼接组合进行验证;

响应于所述第一拼接组合验证通过,对所述第一拼接组合包含的所述基础拼接单元进行拼接,获得所述第一拼接组合的拼接结果,并删除所述拼接组合序列中的所述第一拼接组合;基于所述第一拼接组合的拼接结果,以及所述第一拼接组合包含的所述基础拼接单元各自对应的其他拼接组合,更新所述拼接组合序列中的拼接组合;

响应于所述第一拼接组合验证不通过,将所述第一拼接组合从所述拼接组合序列中删除。

2.根据权利要求1所述的方法,其特征在于,所述基于所述基础拼接单元集构建拼接组合序列,包括:穷举基于所述各个基础拼接单元构建的基础拼接组合,获得基础拼接组合集;

基于剪枝策略,对所述基础拼接组合集进行剪枝,获得各个优选拼接组合;

基于各个所述优选拼接组合,构建所述拼接组合序列。

3.根据权利要求2所述的方法,其特征在于,所述基于各个所述优选拼接组合,构建所述拼接组合序列,包括:获取各个所述优选拼接组合的优化能量值;所述优化能量值包含至少一种所述优化能量的能量值;

基于各个所述优选拼接组合的所述优化能量值,获取各个所述优选拼接组合的验证顺序;

基于各个所述优选拼接组合的所述验证顺序,构建所述拼接组合序列。

4.根据权利要求3所述的方法,其特征在于,至少一种所述优化能量包含n种所述优化能量,n种所述优化能量具有各自的优先级;n≥2,且n为整数;

所述基于各个所述优选拼接组合的所述优化能量值,获取各个所述优选拼接组合的验证顺序,包括:基于各个所述优选拼接组合的所述优化能量值,以及n种所述优化能量的优先级,获取各个所述优选拼接组合的所述验证顺序。

5.根据权利要求4所述的方法,其特征在于,所述基于各个所述优选拼接组合的所述优化能量值,以及n种所述优化能量的优先级,获取各个所述优选拼接组合的验证顺序,包括:基于n‑1种所述优化能量的能量值,以及n‑1种所述优化能量的优先级,对各个所述优选拼接组合进行二分类,获得2(n‑1)个分组的所述优选拼接组合;n‑1种所述优化能量为n种所述优化能量中,除了目标优化能量之外的其它所述优化能量;所述目标优化能量是n种所述优化能量,优先级最低的所述优化能量;

基于所述目标优化能量,对2(n‑1)个分组的所述拼接组合分别进行排序,获得各个所述优选拼接组合的所述验证顺序。

6.根据权利要求2所述的方法,其特征在于,所述剪枝策略包括:基于拼接长度的策略,以及基于拼接缝线的策略中的至少一种;

所述基于拼接长度的策略包括:响应于所述基础拼接组合对应的长度差与相邻边的长度的比值小于目标阈值时,拒绝所述基础拼接组合;所述长度差是指两个所述基础拼接单元相邻边的长度与两个所述基础拼接单元对应的基础拼接组合中的缝线的长度之间差值;

所述基于拼接缝线的策略包括:响应于所述基础拼接组合中的缝线的段数与所述基础拼接组合中的两个所述基础拼接单元中的连续相邻边的数量之差大于数量阈值,拒绝所述基础拼接组合。

7.根据权利要求1所述的方法,其特征在于,所述对所述拼接组合序列中,处于序列首位的第一拼接组合进行验证,包括:对所述第一拼接组合进行初次验证;所述初次验证用以验证所述第一拼接组合是否可成功展开;其中,成功展开是指拼接组合可展开,并且,展开后的形变小于形变阈值且维持对称性;

响应于所述初次验证通过,对所述第一拼接组合进行二次验证;所述二次验证用以验证所述第一拼接组合展开后形成的UV岛的形状是否符合形状模板。

8.根据权利要求1所述的方法,其特征在于,所述基于所述第一拼接组合的拼接结果,以及所述第一拼接组合包含的所述基础拼接单元各自对应的其他拼接组合,更新所述拼接组合序列中的所述拼接组合,包括:将所述其他拼接组合中的第一基础拼接单元替换为所述第一拼接组合的拼接结果;所述第一基础拼接单元是所述第一拼接组合包含的所述基础拼接单元。

9.根据权利要求1所述的方法,其特征在于,所述对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集,包括:基于切割单元,对所述三维模型进行切割以及展开,获得UV岛集,所述UV岛集中包含所述三维模型的各个碎片化的UV岛;

基于所述UV岛集进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集。

10.根据权利要求9所述的方法,其特征在于,所述基于所述UV岛集进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集,包括:通过至少一种预拼接方式,对各个碎片化的所述UV岛进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集;

其中,至少一种所述预拼接方式包括平面预拼接,软边预拼接以及语义分割预拼接中的至少一种;所述平面预拼接用以指示通过邻域蔓延和平面拼接的方法进行拼接的方式;

所述软边预拼接用以指示通过硬边对所述三维模型进行区域划分后,在各个区域内通过启发式搜索的方法进行拼接的方式;所述语义分割预拼接用以指示利用所述三维模型的几何语义特征对所述三维模型进行分解,获得语义分割区域,以在各个语义分割区域内进行拼接的方式。

11.根据权利要求10所述的方法,其特征在于,响应于所述预拼接方式包含平面预拼接,软边预拼接以及语义分割预拼接中的至少两种,所述通过至少一种预拼接方式,对各个碎片化的所述UV岛进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集,包括:按照各个所述预拼接方式的优先级,对碎片化的所述UV岛进行预拼接以及重新展开,获得所述基础拼接单元。

12.一种三维模型的展开装置,其特征在于,所述装置包括:

单元集获取模块,用于对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集;所述基础拼接单元集中包含基于所述三维模型的纹理UV岛获得的各个基础拼接单元;

序列构建模块,用于基于所述基础拼接单元集构建拼接组合序列;所述拼接组合序列中包含基于模型展开要求对各个所述基础拼接单元进行组合得到的各个拼接组合;所述模型展开要求包括基于模型设计需求制定的至少一种优化能量;所述优化能量的能量值,与所述拼接组合的几何属性和几何属性需求之间的符合程度成反相关;

组合验证模块,用于基于所述拼接组合序列执行至少一次组合验证过程,直至所述拼接组合序列为空,获得所述基础拼接单元的拼接结果;

结果生成模块,用于基于所述基础拼接单元的拼接结果,生成所述三维模型的展开结果;

其中,所述组合验证过程包括:

对所述拼接组合序列中,处于序列首位的第一拼接组合进行验证;

响应于所述第一拼接组合验证通过,对所述第一拼接组合包含的所述基础拼接单元进行拼接,获得所述第一拼接组合的拼接结果,并删除所述拼接组合序列中的所述第一拼接组合;基于所述第一拼接组合的拼接结果,以及所述第一拼接组合包含的所述基础拼接单元各自对应的其他拼接组合,更新所述拼接组合序列中的拼接组合;

响应于所述第一拼接组合验证不通过,将所述第一拼接组合从所述拼接组合序列中删除。

13.一种计算机设备,其特征在于,所述计算机设备包括处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现如权利要求1至11任一所述的三维模型的展开方法。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现如权利要求1至11任一所述的三维模型的展开方法。

说明书 :

三维模型的展开方法、装置、设备及存储介质

技术领域

[0001] 本申请实施例涉及虚拟场景技术领域,特别涉及一种三维模型的展开方法、装置、设备、存储介质及程序产品。

背景技术

[0002] UV展开是美术资源生产中的一个重要环节,主要包括1UV与2UV两种展开方式。
[0003] 在相关技术中,在对三维模型进行UV展开时,需要在三维网格上,寻找尽量短的切割线来将模型切开,并计算从三维坐标点到二维坐标点的映射关系,使得结果存在的扭曲尽量少,并将切开的结果平铺到UV空间中。
[0004] 然而,上述对三维模型进行UV展开的方法,仅将UV展开问题约束在割线长短以及扭曲程度两个条件上,从而使得UV展开的依据较为局限,使得UV展开的效果较差。

发明内容

[0005] 本申请实施例提供了一种三维模型的展开方法、装置、设备、存储介质及程序产品,可以实现三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得获得的三维模型的展开结果更加符合实际需求,提高对三维模型的展开效果。该技术方案包括如下方面。
[0006] 一方面,提供了一种三维模型的展开方法,所述方法包括:
[0007] 对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集;所述基础拼接单元集中包含基于所述三维模型的纹理UV岛获得的各个基础拼接单元;
[0008] 基于所述基础拼接单元集构建拼接组合序列;所述拼接组合序列中包含基于模型展开要求对各个所述基础拼接单元进行组合得到的各个拼接组合;所述模型展开要求包括基于模型设计需求制定的至少一种优化能量;所述优化能量用于指示所述拼接组合的几何属性;
[0009] 对所述拼接组合序列中的各个所述拼接组合进行验证,获得所述基础拼接单元的拼接结果;
[0010] 基于所述基础拼接单元的拼接结果,生成所述三维模型的展开结果。
[0011] 另一方面,提供了一种三维模型的展开装置,所述装置包括:
[0012] 单元集获取模块,用于对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集;所述基础拼接单元集中包含基于所述三维模型的纹理UV岛获得的各个基础拼接单元;
[0013] 序列构建模块,用于基于所述基础拼接单元集构建拼接组合序列;所述拼接组合序列中包含基于模型展开要求对各个所述基础拼接单元进行组合得到的各个拼接组合;所述模型展开要求包括基于模型设计需求制定的至少一种优化能量;所述优化能量用于指示所述拼接组合的几何属性;
[0014] 组合验证模块,用于对所述拼接组合序列中的各个所述拼接组合进行验证,获得所述基础拼接单元的拼接结果;
[0015] 结果生成模块,用于基于所述基础拼接单元的拼接结果,生成所述三维模型的展开结果。
[0016] 在一种可能的实现方式中,所述序列构建模块,包括:
[0017] 穷举子模块,用于穷举基于所述各个基础拼接单元构建的基础拼接组合,获得基础拼接组合集;
[0018] 剪枝子模块,用于基于剪枝策略,对所述基础拼接组合集进行剪枝,获得各个优选拼接组合;
[0019] 序列构建子模块,用于基于各个所述优选拼接组合,构建所述拼接组合序列。
[0020] 在一种可能的实现方式中,所述序列构建子模块,包括:
[0021] 能量值获取单元,用于获取各个所述优选拼接组合的优化能量值;所述优化能量值包含至少一种所述优化能量的能量值;
[0022] 顺序获取单元,用于基于各个所述优选拼接组合的所述优化能量值,获取各个所述优选拼接组合的验证顺序;
[0023] 序列构建单元,用于基于各个所述优选拼接组合的所述验证顺序,构建所述拼接组合序列。
[0024] 在一种可能的实现方式中,至少一种所述优化能量包含n种所述优化能量,n种所述优化能量具有各自的优先级;n≥2,且n为整数;
[0025] 所述顺序获取单元,用于基于各个所述优选拼接组合的所述优化能量值,以及n种所述优化能量的优先级,获取各个所述优选拼接组合的所述验证顺序。
[0026] 在一种可能的实现方式中,所述顺序获取单元,用于基于n‑1种所述优化能量的能量值,以及n‑1种所述优化能量的优先级,对各个所述优选拼接组合进行二分类,获得2(n‑1)个分组的所述优选拼接组合;n‑1种所述优化能量为n种所述优化能量中,除了目标优化能量之外的其它所述优化能量;所述目标优化能量是n种所述优化能量,优先级最低的所述优化能量;
[0027] 基于所述目标优化能量,对2(n‑1)个分组的所述拼接组合分别进行排序,获得各个所述优选拼接组合的所述验证顺序。
[0028] 在一种可能的实现方式中,所述剪枝策略包括:基于拼接长度的策略,以及基于拼接缝线的策略中的至少一种;
[0029] 所述基于拼接长度的策略包括:响应于所述基础拼接组合对应的长度差与相邻边的长度的比值小于目标阈值时,拒绝所述基础拼接组合;所述长度差是指两个所述基础拼接单元相邻边的长度与两个所述基础拼接单元对应的基础拼接组合中的缝线的长度之间差值;
[0030] 所述基于拼接缝线的策略包括:响应于所述基础拼接组合中的缝线的段数大于所述基础拼接组合中的两个所述基础拼接单元中的相邻边的数量,拒绝所述基础拼接组合。
[0031] 在一种可能的实现方式中,所述组合验证模块,用于基于所述拼接组合序列执行至少一次组合验证过程,直至所述拼接组合序列为空,获得所述基础拼接单元的拼接结果;
[0032] 其中,所述组合验证模块,包括:
[0033] 组合验证子模块,用于对所述拼接组合序列中,处于序列首位的第一拼接组合进行验证;
[0034] 单元拼接子模块,用于响应于所述第一拼接组合验证通过,对所述第一拼接组合包含的所述基础拼接单元进行拼接,获得所述第一拼接组合的拼接结果,并删除所述拼接组合序列中的所述第一拼接组合;
[0035] 组合更新子模块,用于基于所述第一拼接组合的拼接结果,以及所述第一拼接组合包含的所述基础拼接单元各自对应的其他拼接组合,更新所述拼接组合序列中的所述拼接组合。
[0036] 在一种可能的实现方式中,组合验证子模块,包括:
[0037] 第一验证单元,用于对所述第一拼接组合进行初次验证;所述初次验证用以验证所述第一拼接组合是否可成功展开;其中,成功展开是指拼接组合可展开,并且,展开后的形变小于形变阈值且维持对称性;
[0038] 第二验证单元,用于响应于所述初次验证通过,对所述第一拼接组合进行二次验证;所述二次验证用以验证所述第一拼接组合展开后形成的UV岛的形状是否符合形状模板。
[0039] 在一种可能的实现方式中,所述组合更新子模块,用于将所述其他拼接组合中的第一基础拼接单元替换为所述第一拼接组合的拼接结果;所述第一基础拼接单元是所述第一拼接组合包含的所述基础拼接单元。
[0040] 在一种可能的实现方式中,所述单元集获取模块,包括:
[0041] UV岛集获取子模块,用于基于切割单元,对所述三维模型进行切割以及展开,获得UV岛集,所述UV岛集中包含所述三维模型的各个碎片化的所述UV岛;
[0042] 单元获取子模块,用于基于所述UV岛集进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集。
[0043] 在一种可能的实现方式中,所述单元获取子模块,用于通过至少一种预拼接方式,对各个碎片化的所述UV岛进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集;
[0044] 其中,至少一种所述预拼接方式包括平面预拼接,软边预拼接以及语义分割预拼接中的至少一种;所述平面预拼接用以指示通过邻域蔓延和平面拼接的方法进行拼接的方式;所述软边预拼接用以指示通过硬边对所述三维模型进行区域划分后,在各个区域内通过启发式搜索的方法进行拼接的方式;所述语义分割预拼接用以指示利用所述三维模型的几何语义特征对所述三维模型进行分解,获得语义分割区域,以在各个语义分割区域内进行拼接的方式。
[0045] 在一种可能的实现方式中,所述单元获取子模块,用于响应于所述预拼接方式包含平面预拼接,软边预拼接以及语义分割预拼接中的至少两种,按照各个所述预拼接方式的优先级,对碎片化的所述UV岛进行预拼接以及重新展开,获得所述基础拼接单元。
[0046] 另一方面,提供了一种计算机设备,所述计算机设备包含处理器和存储器,所述存储器存储有至少一条计算机程序,所述至少一条计算机程序由所述处理器加载并执行以实现上述的三维模型的展开方法。
[0047] 另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述的者三维模型的展开方法。
[0048] 另一方面,提供了一种计算机程序产品,所述计算机程序产品包括至少一条计算机程序,所述计算机程序由处理器加载并执行以实现上述各种可选实现方式中提供的三维模型的展开方法。
[0049] 本申请提供的技术方案可以包括以下有益效果:
[0050] 通过对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;在获取到基于基础拼接单元集中的各个接触拼接单元组合获得的各个拼接组合后,依据模型设计需求制定的至少一种优化能量,基于各个拼接组合构建拼接组合序列;通过对拼接组合序列中的拼接组合进行验证后,获得基础拼接单元的拼接结果,以基于基础拼接单元的拼接结果生成三维模型的展开结果。在上述对三维模型的展开过程中,可以实现三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得获得的三维模型的展开结果更加符合实际需求,提高了对三维模型的展开效果。
[0051] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。

附图说明

[0052] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
[0053] 图1示出了本申请一示例性实施例提供的模型展开系统的架构示意图;
[0054] 图2示出了本申请一示例性实施例提供的一种三维模型的展开方法的流程图;
[0055] 图3示出了本申请一示例性实施例提供的另一种三维模型的展开方法的流程图;
[0056] 图4示出了本申请一示例性实施例示出的获取第二多边形集合的过程示意图;
[0057] 图5示出了本申请一示例性实施例示出的获取第四多边形集合的过程示意图;
[0058] 图6示出了本申请一示例性实施例示出的平面预拼接的示意图;
[0059] 图7示出了本申请一示例性实施例示出的三维模型的预拼接过程的示意图;
[0060] 图8示出了本申请一示例性实施例示出的渗色现象的示意图;
[0061] 图9示出了本申请一示例性实施例示出的基于提案‑审理机制进行拼接组合验证的过程示意图;
[0062] 图10示出了自动2UV最终结果通过烘焙后与人工制作的2UV烘焙结果的对比示意图;
[0063] 图11示出了本申请一示例性实施例示出的三维模型的展开装置的方框图;
[0064] 图12示出了本申请一示例性实施例示出的计算机设备的结构框图;
[0065] 图13示出了本申请一个示例性实施例示出的计算机设备的结构框图。

具体实施方式

[0066] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
[0067] 图1示出了本申请一示例性实施例提供的模型展开系统的架构示意图,该模型展开系统可以用于实现本申请提供的三维模型的展开方法。如图1所示,该模型展开系统包括:服务器110以及终端120。
[0068] 上述服务器110可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
[0069] 上述终端120可以是具有显示功能的智能手机、平板电脑、笔记本电脑、台式计算机、智能电视、车载终端等,但并不局限于此。该终端120可以用以显示三维模型以及三维模型在各个阶段的展开结果。
[0070] 其中,上述系统中包含一个或者多个服务器110,以及多个终端120。本申请实施例对于服务器110和终端120的个数不做限制。
[0071] 终端以及服务器通过通信网络相连。可选的,通信网络是有线网络或无线网络。
[0072] 可选的,上述的无线网络或有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(Local Area Network,LAN)、城域网(Metropolitan Area Network,MAN)、广域网(Wide Area Network,WAN)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(Hyper Text Mark‑up Language,HTML)、可扩展标记语言(Extensible Markup Language,XML)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(Secure Socket Layer,SSL)、传输层安全(Transport Layer Security,TLS)、虚拟专用网络(Virtual Private Network,VPN)、网际协议安全(Internet Protocol Security,IPsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。本申请在此不做限制。
[0073] 图2示出了本申请一示例性实施例提供的三维模型的展开方法的流程图,该方法可以由计算机设备执行,该计算机设备可以实现为服务器或终端,该服务器可以是如图1所示的服务器或终端,如图2所示,该三维模型的展开方法可以包括以下步骤。
[0074] 步骤210,对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;该基础拼接单元集中包含基于三维模型的纹理UV岛获得的各个基础拼接单元。
[0075] 该基础拼接单元是基于三维模型的UV岛获得的拼接结果。
[0076] 其中,三维模型是基于三维网格构建的模型;三维网格(3D Mesh)是一种以多边形进行组合来离散表征三维模型的形式,主要数据包含顶点、边与面。
[0077] 本申请实施例中涉及的三维模型展开也可以称为三维模型的UV展开(UV Unwrapping),是指将组成三维模型的三维网格切开,并展平到二维平面的过程;该二维平面空间也可以称为UV空间,其中,U和V分别表示在二维平面水平、垂直方向上的坐标;U,V取值在0 1之间的空间为单位UV空间。
~
[0078] 在本申请实施例中,三维模型的基础拼接单元可以是计算机设备对三维模型进行切割、展开以及拼接之后获得的UV岛的拼接结果。
[0079] 步骤220,基于基础拼接单元集构建拼接组合序列;该拼接组合序列中包含基于模型展开要求对各个基础拼接单元进行组合得到的各个拼接组合;该模型展开要求包括基于模型设计需求制定的至少一种优化能量;该优化能量用于指示拼接组合的几何属性。
[0080] 可选的,该优化能量用以表征拼接组合的几何属性与几何属性需求之间的关系;几何属性越符合该几何属性对应的几何属性需求,该优化能量的能量值越小;几何属性越不符合几何属性需求,该优化能量的能量值越大;示意性的,该拼接组合的几何属性可以包括,可见割线的长度、软边割线长度、狭长硬边缝线长度、形状、对称性、扭曲程度、拼接前切线总长度与拼接缝线长度的长度差中的至少一种;需要说明的是,基于实际需求,计算机设备可以设置拼接组合的其他几何属性以及对应于其他几何属性的优化能量,以在模型展开要求中包含其他几何属性的优化能量时,计算机设备可以基于其他几何属性的优化能量获取拼接组合序列中包含的各个拼接组合,本申请对此不进行限制。
[0081] 其中,该模型展开要求可以是相关人员基于模型设计需求制定的,不同的模型设计需求可以对应有不同的模型展开要求,即不同的模型设计需求制定的至少一种优化能量不同。
[0082] 构建拼接组合序列时,计算机设备可以先获取基于基础拼接单元集中的基础拼接单元构建多个拼接组合;再基于多个拼接组合构建拼接组合序列。
[0083] 步骤230,对拼接组合序列中的各个拼接组合进行验证,获得基础拼接单元的拼接结果。
[0084] 该基础拼接单元的拼接结果可以是对通过验证的拼接组合中的基础拼接单元进行拼接之后获得的拼接结果;示意性的,通过验证的拼接组合为基础拼接单元A+基础拼接单元B,该拼接组合对应的基础拼接单元的拼接结果即为AB。
[0085] 其中,计算机设备可以按照各个拼接组合在上述拼接组合序列中的顺序,对各个拼接组合依次进行验证。
[0086] 在本申请实施例中,上述构建拼接组合序列,对拼接组合序列中的拼接组合进行验证的过程可以被称为提案‑审理机制;其中,该拼接组合序列中的每个拼接组合对应为一个提案,对拼接组合序列中的各个拼接组合的验证过程,即为对拼接组合序列中的各个拼接组合的审理过程。
[0087] 步骤240,基于基础拼接单元的拼接结果,生成三维模型的展开结果。
[0088] 在本申请实施例中,涉及二维空间(UV空间)与三维空间,且二维空间与三维空间之间具有映射关系;当对二维空间内的UV岛进行拼接时,基于二维空间与三维空间之间的映射关系,计算机设备可以同步实现对UV岛对应的三维网格的拼接,之后,再将拼接后的三维网格进行展开,即可获取到三维网格的二维拼接结果。
[0089] 因此,在获取到基础拼接单元的拼接结果后,可以同步获取到基础拼接单元对应在三维空间中的网格拼接结果,将三维空间中对应于基础拼接单元的网格拼接结果展开后,即可生成三维模型的展开结果。
[0090] 综上所述,本申请实施例提供的三维模型的展开方法,通过对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;在获取到基于基础拼接单元集中的各个接触拼接单元组合获得的各个拼接组合后,依据模型设计需求制定的至少一种优化能量,基于各个拼接组合构建拼接组合序列;通过对拼接组合序列中的拼接组合进行验证后,获得基础拼接单元的拼接结果,以基于基础拼接单元的拼接结果生成三维模型的展开结果。在上述对三维模型的展开过程中,可以实现三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得获得的三维模型的展开结果更加符合实际需求,提高了对三维模型的展开效果。
[0091] 本申请实施例提供的三维模型的展开方法,可以应用于需要进行三维模型展开的场景中;示意性的,该三维模型的展开方法可以应用但不限于对游戏模型进行UV展开的场景,对车辆模型进行UV展开的场景,对建筑模型进行UV展开的场景,以及其他模型设计场景中;进一步的,该三维模型的展开方法可以适应于三维模型的UV展开中存在的各种不规则UV岛的情况。
[0092] 以该三维模型的展开方法应用于游戏模型进行UV展开的场景中为例;在游戏场景中,相关人员会在UV空间中,基于游戏模型的UV展开结果进行图片绘制,绘制好的图片被称为UV纹理(UV Texture),根据UV展开的逆过程,计算机设备可以将绘制好的UV纹理映射回三维网格表面,即映射回三维模型上,从而表征三维模型的颜色、材质、光影等效果。其中,在游戏场景中进行UV展开时,通常会涉及两套UV,称为1UV和2UV,1UV用于进行色彩纹理、法线纹理等的绘制,2UV用于进行光照纹理、阴影纹理等的绘制。
[0093] 在进行图片绘制之前,需要先对游戏模型进行展开,获得游戏模型在二维空间中的展开结果;在该过程中,可以利用本申请实施例提供的三维模型的展开方法对游戏模型进行切割以及展开,获得三维模型的基础拼接单元集;基于基础拼接单元集,构建符合模型展开要求的拼接组合序列;该模型展开要求用以指示基于游戏模型的设计需求制定的至少一种优化能量;对拼接组合序列中的各个拼接组合进行验证,获得基础拼接单元的拼接结果;最后基于基础拼接单元的展开结果,生成游戏模型的展开结果,从而实现了对游戏模型展开过程的自动化,提高了对游戏模型的展开效果。
[0094] 示意性的,当本申请提供的方法由服务器执行时,该服务器可以实现为云平台中用以进行三维模型展开的云服务器;该云服务器可以提供有外接接口,用以接收终端发送的待进行三维模型展开的三维模型,并将三维模型的展开结果返回给终端;比如,当云服务器接收到终端发送的游戏模型后,可以通过本申请提供的三维模型的展开方法对该游戏模型进行展开,获得该游戏模型的展开结果,并将该游戏模型的展开结果返回给该终端,以使得该终端基于通过相应的应用程序界面对该游戏模型的展开结果进行显示,并进行进一步处理。
[0095] 对三维模型进行展开的过程是一个NPC问题(Non‑deterministic Polynomial Complete Problem),即完全多项式复杂度的非确定性问题;其中, P类问题指可以在多项式时间内求解的问题,而NP问题指不确定多项式时间内能否求解但是可以确定解的正确性的问题。NPC问题是一种NP问题,所有的NP问题都可以在多项式时间内归约成这个问题。本申请实施例提供的三维模型的展开方法,可以利用分治思想来求解三维模型展开这个NPC问题,以尽量降低三维模型展开过程的复杂程度,其中,基于分治思想确定的三维模型的展开方法可以分为三个环节:拆解UV岛、UV岛预拼接以及提案‑审理机制下的UV岛拼接;其中,拆解UV岛时,可以基于展开特性与生产制作原则定义切割单元,将三维模型拆解为零碎的、方便UV展开的UV岛;UV岛预拼接时,可以基于模型设计需求对零碎的UV岛进行预拼接以及重新UV展开;最后,以UV岛预拼接的结果为基础,通过提案‑审理机制进行整体的UV岛拼接和展开,获得三维模型的展开结果。
[0096] 图3示出了本申请一示例性实施例提供的三维模型的展开方法的流程图,该方法可以由计算机设备执行,该计算机设备可以实现为服务器或终端,该服务器可以是如图1所示的服务器或终端,如图3所示,该三维模型的展开方法可以包括以下步骤。
[0097] 步骤310,基于切割单元,对三维模型进行切割以及展开,获得UV岛集,该UV岛集中包含三维模型的各个碎片化的UV岛。
[0098] 在对三维模型进行初步展开时,即获取三维模型的各个碎片化的UV岛时,计算机设备可以基于切割单元对三维模型进行拆解,获得零碎的,易于进行UV展开的碎片化UV岛。其中,UV岛(UV Island)是指UV空间中的二维网格模型;在将三维网格切开后,会获得数量较多的三维块,将这些三维块分别展开到UV空间,获得各个三维块在UV空间中彼此独立的二维网格模型,这些二维网格模型即为UV岛。
[0099] 在本申请实施例中,在不同的条件下,可以基于不同的方式获取三维模型的碎片化的UV岛;不同情况下,获取碎片化的UV岛时所依据的切割单元不同。
[0100] 可选的,计算机设备在获得三维模型的碎片化UV岛时,可以基于是否存在三维模型的1UV展开结果,对三维模型进行不同的切割;该1UV展开结果可以是基于1UV的展开要求对三维模型进行展开之后获得的展开结果。
[0101] 由于1UV展开时会存在纹理复用,因此,1UV展开结果中通常会存在交叠部分,即二维多边形之间存在部分重合;基于此,在基于1UV展开结果对三维模型进行切割时,需要先去除1UV展开结果中的交叠部分,以保证基于1UV展开结果获得的三维模型的展开结果不存在交叠部分。
[0102] 示意性的,响应于存在三维模型的1UV展开结果,计算机设备获取UV岛集的过程可以实现为。
[0103] S3101,读取三维模型的1UV展开结果,获取第一多边形集合;该1UV展开结果是对三维模型进行1UV切割展开获得的展开结果;该第一多边形集合中包含1UV展开结果对应的二维多边形。
[0104] S3102,对第一多边形集合中的二维多边形进行交叠检测,获取第二多边形集合;该第二多边形集合包括无连通、无交叠的二维多边形。
[0105] 可选的,对第一多边形集合中的二维多边形进行交叠检测,获取第二多边形集合的过程可以实现为:
[0106] 基于第一多边形集合执行至少一次交叠检测过程,直至第一多边形集合为空,获得第二多边形集合;第二多边形集合中包含至少一个第一集合;
[0107] 其中,该交叠检测过程,包括:
[0108] 将第一多边形加入检测序列;该第一多边形是第一多边形集合中的二维多边形中的任意一个;
[0109] 基于检测序列执行至少一次交叠检测子过程,直至检测序列为空,获得第一集合;
[0110] 将第一多边形集合中与第一集合中包含的二维多边形相同的二维多边形删除;
[0111] 该交叠检测子过程,包括:
[0112] 将处于检测序列中,处于序列首位的第二多边形加入第一集合,并将检测序列中的第二多边形删除;
[0113] 获取第二多边形的第一邻域多边形;该第一邻域多边形是与第二多边形具有邻接关系的二维多边形;
[0114] 将第一邻域多边形中与第一集合中包含的二维多边形不存在交叠的二维多边形,加入检测序列。
[0115] 示意性的,图4示出了本申请一示例性实施例示出的获取第二多边形集合的过程示意图,如图4所示,第一多边形集合中包括1UV展开结果对应的二维多边形,该第一多边形集合可以表示为 ,其中,v为正整数,表示第一多边形集合中包含的二维多边形的数量;第二多边形集合包括至少一个第一集合中的二维多边形,该第二多边形集合可以表示为 。其中,l为正整数,表示第二多边形集合中包含的二
维多边形的数量;在对第一多边形集合中的二维多边形进行交叠检测时,计算机设备可以从第一多边形集合随机获取一个多边形pi,即第一多边形pi,将第一多边形pi推入检测序列Q中;将检测序列Q中,处于序列首位的第二多边形q取出,加入到第一集合中,并获取第二多边形的第一邻域多边形;将第一邻域多边形中,与第一集合中包含的二维多边形不存在交叠的二维多边形加入到检测序列Q中,对第一邻域多边形中,与第一集合中包含的二维多边形存在交叠的二维多边形不做处理。其中,当第一邻域多边形中,与第一集合中包含的二维多边形存在交叠的多边形的数量为多个时,计算机设备可以按照邻域多边形的获取顺序或者验证顺序加入检测序列Q中,或者,也可以按照随机顺序加入检测序列Q中,本申请对此不进行限制。此后,按照检测序列Q指示的二维多边形的顺序,依次对处于检测序列Q首位的第二多边形进行上述处理,直至检测序列Q为空。
[0116] 当第一多边形pi对应的检测序列Q为空时,表示基于第一多边形pi进行的交叠检测子过程结束,获得该第一多边形对应的第一集合;若此时第一多边形集合不为空,则从当前第一多边形集合中,随机获取另一个第一多边形,重复上述交叠检测过程,直至第一多边形集合为空;从而获取到包含至少一个第一多边形各自对应的第一集合中的二维多边形的第二多边形集合。
[0117] 其中,第一集合是基于第一多边形集合中任选的第一多边形发起的交叠检测子过程获得的多边形的集合;每个第一多边形都会有与之对应的第一集合;因此若上述交叠检测过程进行了w轮,w为正整数,且w﹤v则会产生w个第一多边形分别对应的第一集合,此时,第二多边形集合P2中包含w个第一集合中的二维多边形。
[0118] 当第一多边形是从第一多边形集合中获取的首个多边形时,在将该第一多边形加入到检测序列后,从检测序列中获取的首个第二多边形也为该第一多边形。
[0119] 在本申请实施例中,为了避免上述检测过程中的重复检测和冗余检测,在检测过程中,计算机设备会将第一多边形集合中与第一集合中包含的二维多边形相同的二维多边形删除;进一步的,计算机设备可以对已进行过两两交叠检测的多边形进行标注,以避免对已检测过的多边形的重复检测,造成计算资源的浪费;示意性的,当第二多边形为多边形1时,其邻域多边形中包含多边形2,在多边形1对应的交叠检测子过程中,确定多边形2多边形1不存在交叠,则可以将多边形2加入到检测序列中,并对多边形1与多边形2进行标注,表示多边形1与多边形2已进行过交叠检测;当进入多边形2的交叠检测过程时,获取到多边形2的邻域多边形中包含多边形1,但由于多边形2已与多边形1进行过交叠检测,因此,可以跳过对多边形1的交叠检测过程,以及跳过将多边形1加入检测序列的过程。
[0120] S3103,基于第一切割单元,对三维模型进行切割以及展开,获得三维模型的碎片化的UV岛,该第一切割单元是基于第二多边形集合确定的切割单元。
[0121] 该第一切割单元可以是基于第二多边形集合中包含的二维多边形确定的切割单元。
[0122] 在另一种可能的实现方式中,计算机设备可以不以1UV展开结果为基础实现对三维模型的切割与展开,也就是说,无论是否存在1UV展开结果,计算机设备均可采用以下方式获取三维模型的碎片化UV岛,该过程可以实现为。
[0123] S3104,获取三维模型的第三多边形集合;该第三多边形集合包含基于三维模型的三维网格切割并展开获得的二维多边形。
[0124] 也就是说,计算机设备可以以三维网格的最小划分单元为切割单位对三维模型的三维网格进行切割,获得第三模型的第三多边形集合。
[0125] S3105,计算第三多边形集合中的二维多边形对应的三维网格的法向量,获得第三多边形集合对应的法向量集合。
[0126] 在本申请实施例中,由于二维空间与三维空间之间存在映射关系,第三多边形集合中的二维多边形在三维空间中均有与之对应的三维网格,计算机设备可以获取各个三维网格的法向量,该法向量用以表征该三维网格的朝向。
[0127] S3106,基于第三多边形集合以及法向量集合,获取第四多边形集合;该第四多边形集合中包含第三多边形集合中,最大可展开的二维多边形;其中,最大可展开的二维多边形是指法向量指示的二维多边形的朝向差异小于差异阈值的二维多边形。
[0128] 可选的,基于第三多边形集合以及法向量集合,获取第四多边形集合的过程可以实现为:
[0129] 基于第三多边形集合以及法向量集合执行至少一次向量验证过程,直至第三多边形集合为空,获得第四多边形集合;该第四多边形集合中包含至少一个第二集合;
[0130] 其中,该向量验证过程,包括:
[0131] 将第三多边形加入验证序列;该第三多边形是第三多边形集合中的二维多边形中的任意一个;
[0132] 基于验证序列执行至少一次向量验证子过程,直至验证序列为空,获得第二集合,该第二集合中包含至少一个第二子集合中的二维多边形;
[0133] 将第三多边形集合中与第二集合中包含的二维多边形相同的二维多边形删除;
[0134] 该向量验证子过程,包括:
[0135] 获取处于验证序列中,处于序列首位的第四多边形的法向量,以及第三多边形的法向量;
[0136] 响应于第四多边形的法向量与第三多边形的法向量指示的两者之间的朝向差异小于差异阈值,将第四多边形加入第二集合,并将验证序列中的第四多边形删除;
[0137] 获取第四多边形的第二邻域多边形;该第二邻域多边形是邻域三维网格对应的二维多边形;该邻域三维网格是与第四多边形对应的三维网格具有邻接关系的三维网格;
[0138] 将第二邻域多边形加入验证序列。
[0139] 示意性的,图5示出了本申请一示例性实施例示出的获取第四多边形集合的过程示意图,如图5所示,第三多边形集合包括基于三维模型的三维网格切割获得的并展开获得的二维多边形,该第三多边形集合可以表示为 ,其中,t为正整数,表示第三多边形集合中包含的二维多边形的数量;第四多边形集合包括至少一个第二集合中的二维多边形,该第四多边形集合可以表示为 。其中,k为正整数,表
示第四多边形集合中包含的二维多边形的数量;在对第三多边形集合中的二维多边形进行向量验证时,计算机设备可以从第三多边形集合随机获取一个多边形pd,即第三多边形pd,将第三多边形pd推入验证序列F中;获取验证序列F中,处于序列首位的第四多边形f的法向量 ,以及第三多边形pd的法向量 ;当第四多边形的法向量与第三多边形的法向量之间的关系指示第三多边形与第四多边形之间的朝向差异小于差异阈值时,将该第四多边形加入到第二集合中,并获取第四多边形的第二邻域多边形;将第二邻域多边形加入到验证序列F中。其中,当第二邻域多边形中的多边形的数量为多个时,计算机设备可以按照邻域多边形的获取顺序或者验证顺序加入检测序列中,或者,也可以按照随机顺序加入检测序列中,本申请对此不进行限制。此后,按照验证序列F指示的多边形的顺序,依次对处于检测序列F首位的第四多边形的法向量,与第三多边形的法向量进行朝向差异判断,直至检测序列为空。
[0140] 当第三多边形pd对应的验证序列F为空时,表示基于第三多边形pd进行的向量验证子过程结束,获得该第三多边形对应的第二集合;若此时第三多边形集合不为空,则从当前第三多边形集合中,随机获取另一个第三多边形,重复上述向量验证过程,直至第三多边形集合为空;从而获取到包含至少一个第三多边形各自对应的第二集合中的二维多边形的第四多边形集合。
[0141] 其中,第二集合是基于第三多边形集合中任选的第三多边形发起的向量验证子过程获取的多边形的集合;每个第三多边形都会有与之对应的第二集合;因此若上述向量组合验证过程进行了s轮,s为正整数,且s﹤t则会产生s个第三多边形分别对应的第二集合,此时,第四多边形集合P4中包含s个第二集合中的二维多边形。
[0142] 当第三多边形是从第三多边形集合中获取的首个多边形时,在将该第三多边形加入到验证序列F后,从验证序列中获取的首个第四多边形也为该第三多边形,此时基于两者的法向量进行朝向差异判断时,即为判断第三多边形与第三多边形自身的朝向差异。
[0143] 可选的,基于第四多边形的法向量与第三多边形的法向量进行朝向差异与差异阈值的判断过程可以表示为:
[0144]
[0145] 其中,表示第三多边形的法向量, 表示第四多边形的法向量,表示差异阈值对应的数值。其中,的取值越接近1,表示第四多边形与第三多边形的朝向差异越小,两者组成的集合越容易投影展开。
[0146] 若第三多边形的法向量与第四多边形的法向量使得上述不等式成立,则将第四多边形加入到第二集合中;若第三多边形的法向量与第四多边形的法向量使得上述不等式不成立,则不将第四边形加入到第二集合中。
[0147] 在本申请实施例中,为了避免上述检测过程中的重复检测和冗余检测,在检测过程中,计算机设备会将第三多边形集合中与第二集合中包含的相同的二维多边形删除;进一步的,计算机设备可以对已进行过两两向量验证的多边形进行标注,以避免对已检测过的多边形的重复检测,造成计算资源的浪费。
[0148] S3107,基于第二切割单元,对三维模型进行切割以及展开,获得三维模型的碎片化的UV岛;该第二切割单元是基于第四多边形集合确定的切割单元。
[0149] 该第二切割单元可以是基于第四多边形集合中包含的二维多边形确定的切割单元。
[0150] 步骤320,基于UV岛集进行预拼接以及重新展开,获得三维模型的基础拼接单元集。
[0151] 该基础拼接单元是基于三维模型的碎片化的UV岛获得的拼接结果。
[0152] 其中,基于UV岛集进行预拼接以及重新展开是指,在二维空间内,对各个碎片化的UV岛之间是否具有公共边或者是否具有邻接关系进行确定,将具有公共边或者具有邻接关系的UV岛进行拼接,同时,基于UV空间与三维空间的映射关系,将具有公共边或者具有邻接关系的UV岛对应在三维空间上的三维块进行拼接;将拼接后的各个三维块重新展开之后,即可获得三维模型的各个基础拼接单元,从而获得三维模型的基础拼接单元集。
[0153] 可选的,三维模型的基础拼接单元可以是至少两个碎片化的UV岛拼接并展开之后获得的结果,也就是说,三维模型的一个基础拼接单元可以对应于至少两个碎片化的UV岛。
[0154] 由于获得的碎片化的UV岛较为零碎,他们之间的拼接方案难以穷举,比如,任取一个UV岛,假设其有n个邻居岛,与邻居i有ci条公共边,则这一个UV岛与所有邻居岛存在种可能的方案,令ci=5,n=4,则存在1048576种可能的方案;因此,本申请实施例中采用分治拆解的方式对拼接问题进行处理。
[0155] 可选的,基于UV岛集进行预拼接以及重新展开,获得三维模型的基础拼接单元集,包括:
[0156] 通过至少一种预拼接方式,对各个碎片化的UV岛进行预拼接以及重新展开,获得三维模型的基础拼接单元集;
[0157] 其中,至少一种预拼接方式包括平面预拼接,软边预拼接以及语义分割预拼接中的至少一种;该平面预拼接用以指示通过邻域蔓延和平面拼接的方法进行拼接的方式;该软边预拼接用以指示通过硬边对三维模型进行区域划分后,在各个区域内通过启发式搜索的方式进行拼接的方式;该语义分割预拼接用以指示利用三维模型的几何语义特征对三维模型进行分解,获得语义分割区域,以在各个语义分割区域内进行拼接的方式。
[0158] 其中,平面预拼接是指利用邻域蔓延的方法获取三维模型中的最大平面集合,该最大平面集合中包含至少两个平面;然后依据可展曲面在离散网格上的定义,若相邻的平面拼接后可以保证可展性,即高斯曲率为0,则将两者拼接起来;反之,若相邻的平面拼接后不能保证可展性,即高斯区域不为0,则不对两者进行拼接。图6示出了本申请一示例性实施例示出的平面预拼接的示意图,如图6所示,平面610和平面620是最大平面集合中的任意两个平面,且平面610与平面620拼接后可以保证可展性,因此,可以将平面610与平面620进行拼接。
[0159] 软边预拼接是指利用硬边将三维模型划分为多个区域,在软边预拼接时,在基于硬边划分的各个区域内进行拼接。由于软边拼接在美工制作过程中的优先级较高,因此,软边预拼接的方式可以保证拼接效果的准确性;在各个区域内进行拼接时,可以采用启发式搜索的方式实现各个区域内的拼接;其中,启发式搜索的方式可以包括:贪心算法、退火算法、遗传算法、蚁群算法等启发式方法,以及本申请实施例提供的提案‑审理机制的拼接方法。该提案审理机制是指,将提案内容加入到提案序列中,并将提案序列中的提案内容依次取出并进行审理,以对提案内容的可行性进行确定的方案;不同应用中,提案‑审理机制对应的提案内容和审理内容不同,比如,在软边预拼接过程中,该提案内容为碎片化的UV岛经过平面预处理后生成的各个拼接平面的平面拼接组合;在语义分割预拼接过程中,该提案内容为软边预拼接后获得的各个拼接结果的拼接组合。
[0160] 在模型相关的领域中,软硬边(Soft and Hard Edge)是在制作三维模型时,利用制作工具对模型网格边的一种定义分类。在渲染时,硬边两侧的光影变化剧烈,形成明显的明暗对比;而软边两侧则光影过渡平缓,明暗模糊。
[0161] 以下简要对通过提案‑审理机制实现软边预拼接的过程进行说明:
[0162] 获取基础拼接平面;该基础拼接平面是指碎片化的UV岛经过平面预处理后生成的各个拼接平面;
[0163] 建立基础拼接平面之间的邻接关系表与对称关系表;
[0164] 基于基础拼接平面之间的邻接关系表与对称关系表,创建拼接平面拼接队列;该平面拼接队列中包含平面拼接组合;该平面拼接组合是由至少两个平面组成的拼接组合;
[0165] 按照平面拼接队列指示的处理顺序,对平面拼接队列中的平面拼接组合依次进行审核。
[0166] 其中,若平面拼接组合通过审核,则基于该平面拼接组合构建该平面拼接组合对应的平面拼接结果,并基于该平面拼接结果更新平面拼接队列中的平面拼接组合,并将该平面拼接组合从平面拼接队列中删除;若该平面拼接组合通过审核,则将该平面拼接组合从拼接组合序列中删除,并获取平面拼接队列指示的处理顺序处于下一位,当前处于平面拼接队列第一位的下一平面拼接组合继续进行验证;重复上述过程,直至平面拼接队列中的平面拼接组合为空,获得软边预拼接的拼接结果。
[0167] 在本申请实施例中,软边预拼接的过程可以是在基于硬边划分的各个区域中同时进行的,也就是说,上述通过提案‑审核机制进行软边预拼接的过程可以同步实现在各个区域中,从而获得各个区域各自对应的软边预拼接的拼接结果,进而获得三维模型的软边预拼接的拼接结果。
[0168] 语义分割预拼接是指利用三维模型的集合语义特征,比如大小、形状等,将原始的三维模型进行分解,在分解获得的各个语义分割区域内进行预拼接的方式。可选的,对原始的三维模型进行分解时采用的语义分割算法可以是SDF(Shape Diameter Function,形状直径函数)分割算法,或者,也可以引入更多的几何特征,通对不同的语义加以不同的几何约束,并定义出语义结构关系,并基于上述几何约束和语义结构关系从而对三维模型进行分解;在各个语义分割区域中进行拼接时,可以采用本申请实施例提供的提案‑审理机制的拼接方法;其中,提案‑审理机制的拼接方法在语义分割预拼接中的实现形式,可以参考软边预拼接过程以及下述实施例中对基础拼接单元进行拼接的过程,此处不再赘述。
[0169] 在一种可能的实现方式中,当计算机设备采用至少两种预拼接方式对碎片化的UV岛进行预拼接以及重新展开时,计算机设备可以按照至少两种预拼接方法分别对应的优先级顺序,依次进行预拼接以及重新展开。示意性的,响应于预拼接方式包含平面预拼接,软边预拼接以及语义分割预拼接中的至少两种,通过至少一种预拼接方式,对碎片化的UV岛进行预拼接以及重新展开,获得基础拼接单元,包括:
[0170] 按照各个预拼接方式的优先级,对碎片化的UV岛进行预拼接以及重新展开,获得基础拼接单元。
[0171] 不同的预拼接方式对应有不同的优先级,在计算机设备获取三维模型的预拼接结果时,计算机设备可以依照各个预拼接方式的优先级顺序,以碎片化的UV岛为拼接基础,依次通过不同的预拼接方式拼接获得拼接结果;优先级低的预拼接方式在基于相邻的,优先级高的上一个预拼接方式拼接完成后的拼接结果的基础上,进一步进行拼接。
[0172] 可选的,平面预拼接的优先级高于软边预拼接的优先级;软边预拼接的优先级高于语义分割预拼接的优先级。也就是说,在计算机设备基于上述三种预拼接方式获取三维模型的预拼接结果时,先通过平面预拼接对碎片化的UV岛进行拼接并展开,获得平面预拼接的拼接结果;再通过软边预拼接对平面预拼接的拼接结果进行拼接并展开,获得软边预拼接的拼接结果;之后,再通过语义分割预拼接对软边预拼接的拼接结果进行拼接并展开,获得语义分割预拼接的拼接结果,即,获得三维模型的预拼接结果。图7示出了本申请一示例性实施例示出的三维模型的预拼接过程的示意图,假设在以碎片化的UV岛进行预拼接的过程中采用了平面预拼接,软边预拼接以及语义分割预拼接三种预拼接方法,在使用上述三种预拼接方法进行拼接时,按照优先级顺序,线性使用三种预拼接方法进行处理(包括拼接以及重新展开),如图7所示,计算机设备按照先进行平面预拼接710,然后再进行软边预拼接720,最后进行语义分割预拼接730的顺序,分别获取三种预拼接方式各自对应的预拼接结果,将语义分割预拼接获得的预拼接结果获取为基础拼接单元集;其中,不同的预拼接方式对应的拼接区域的划分结果不同。
[0173] 上述基于分治思想利用全局特征来划分拼接区域的方法进行对拼接问题进行处理的方式,可以降低问题的复杂度,该方法可以适用于含有复杂结构的模型,能够提高模型拼接的效率。
[0174] 步骤330,基于基础拼接单元集构建拼接组合序列;该拼接组合序列中包含基于模型展开要求对各个基础拼接单元进行组合得到的各个拼接组合;该模型展开要求包括基于模型设计需求制定的至少一种优化能量;该优化能量用于指示拼接组合的几何属性。
[0175] 示意性的,该模型展开要求指示的至少一种优化能量包括:可见割线长度能量(Einv)、软硬边长度能量(Eedge)、形状能量(Eshape)、对称能量(Esymm)、扭曲能量(Ed)以及切线长度能量(Es)等等。
[0176] 在对至少一种优化能量的要求中,可见割线长度能量(Einv)越小越好,以达到尽量隐藏割线的目的。软硬边长度能量(Eedge)越小越好,其中,软硬边长度是指软边割线长度与狭长硬边缝线长度之和;由于造成渗色的原因与软硬边切割关系有关,图8示出了本申请一示例性实施例示出的渗色现象的示意图,如图8所示,图8中的(A)部分示出了由于软边割线造成的渗色现象,即三维模型中的接缝810明显;图8中的(B)部分示出了由于缝合狭长硬边导致的渗色现象,即三维模型中出现黑边820;因此,该能量越小,渗色现象越少,从而达到减少渗色现象的目的。形状能量(Eshape)指示不规则形状的数量,该形状能量越小越好,以使得三维模型的展开结果形状规整,减少不规则形状,其中不规则的形状包括环、多洞以及细长条等等。对称能量(Esymm)用以指示拼接组合丢失对称轴的数量,该对称能量(Esymm)越小越好,以使得三维模型的展开结果保持对称。扭曲能量(Ed)用以指示角度形变量加上面积形变量的总形变量,该扭曲能量(Ed)越小越好,以使得三维模型的展开结果的扭曲较小。切线长度能量(Es)用以指示拼接前切线总长度减去拼接缝线长度所得的长度差,该切线长度能量(Es)越小越好,以使得切线长度尽量短。
[0177] 在一种可能的实现方式中,计算机设备可以穷举基础拼接单元的拼接组合,将所有拼接组合推入拼接组合序列,以构建拼接组合序列;
[0178] 在另一种可能的实现方式中,由于基于基础拼接单元构建的拼接组合的可能性较多,为了减少计算机设备的数据处理量,在构建拼接组合序列时,计算机设备可以通过启发条件来对搜索路径进行剪枝,以降低数据处理量,降低拼接问题的复杂度。
[0179] 可选的,基于基础拼接单元构建的拼接组合,构建拼接组合序列,包括:
[0180] 穷举基于各个基础拼接单元构建的基础拼接组合,获得基础拼接组合集;
[0181] 基于剪枝策略,对基础拼接组合集进行剪枝,获得各个优选拼接组合;
[0182] 基于各个优选拼接组合,构建拼接组合序列。
[0183] 也就是说,在进行构建拼接组合时,可以先对穷举基础拼接单元构建基础拼接组合进行初步筛选,保留其中的部分拼接组合,即优选拼接组合,以减少对对拼接组合序列中的拼接组合进行验证时的数据处理量。
[0184] 其中,该剪枝策略可以是基于模型设计要求设定的策略;可选的,基于上述至少一种优化能量制定的剪枝策略可以包括:基于拼接长度的策略,以及基于拼接缝线的策略中的至少一种;
[0185] 基于拼接长度的策略包括:响应于基础拼接组合对应的长度差与相邻边的长度的比值小于目标阈值时,拒绝基础拼接组合;长度差是指两个基础拼接单元相邻边的长度与两个基础拼接单元对应的基础拼接组合中的缝线的长度之间差值;
[0186] 基于拼接缝线的策略包括:响应于基础拼接组合中的缝线的段数与基础拼接组合中的两个基础拼接单元中的连续相邻边的数量之差大于数量阈值,拒绝基础拼接组合。
[0187] 也就是说,将拼接长度过短的拼接组合筛除:当两个基础拼接单元相邻边很长,但这两个基础拼接单元对应的基础拼接组合中的缝线过短时,产生的拼接结果的造型会不规整,且违背切线长度尽量短的原则,因此,拒绝该拼接组合。将拼接缝线分段的拼接组合筛除:拼接缝线的分段数的约束用以保证缝线的有效性,一般而言,基础拼接组合中的缝线的段数等于基础拼接组合中的两个基础拼接单元中的连续相邻边的数量;在本申请实施例中,可以设定数量阈值,以通过缝线的段数和连续相邻边的数量之差,确定拼接缝线是否存在分段,例如,当两个基础拼接单元只有一条连续的两邻边,但是缝线却分为隔断的两段,导致中间出现一个切口,这与实际操作过程中所产生的拼接效果不同,也就是说这种分割方式是人工制作过程中不可能出现的,因此,拒绝该拼接组合。
[0188] 可选的,基于优选拼接组合,构建拼接组合序列的过程可以实现为:
[0189] 获取各个优选拼接组合的优化能量值;该优化能量值包含至少一种优化能量的能量值;
[0190] 基于各个优选拼接组合的优化能量值,获取各个优选拼接组合的验证顺序;
[0191] 基于各个优选拼接组合的验证顺序,构建拼接组合序列。
[0192] 示意性的,当模型展开要求基于模型设计需求制定了一种优化能量时,也就是说,优化能量值中包含一种优化能量的能量值时,计算机设备可以基于该各个优选拼接组合的该优化能量的能量值对各个优选拼接组合进行排序,将排序结果获取为验证顺序,并基于该验证顺序,构建拼接组合序列。
[0193] 或者,当模型展开要求基于模型设计需求制定了多种优化能量时,也就是说,优化能量值中包含n种优化能量的能量值时,n种优化能量具有各自的优先级;n≥2,且n为整数;
[0194] 基于各个优选拼接组合的优化能量值,获取各个优选拼接组合的验证顺序的过程实现为:
[0195] 基于各个优选拼接组合的优化能量值,以及n种优化能量的优先级,获取各个优选拼接组合的验证顺序。
[0196] 其中,至少一种优化能量的优先级顺序可以是相关人员基于模型设计需求制定的,也就是说,该模型展开要求包括基于模型涉及需求制定的至少一种优化能量,以及至少一种优化能量各自的优先级。
[0197] 示意性的,以上述6种优化能量为例,在一种可能的情况下,上述6种优化能量的按照优先级顺序排序可以依次为:可见割线长度能量(Einv)、软硬边长度能量(Eedge)、形状能量(Eshape)、对称能量(Esymm)、扭曲能量(Ed)以及切线长度能量(Es)。需要说明的是,不同情况下,优化能量的优先级顺序可能不同,上述优先级顺序仅为示意性的,不对本申请中的优先级顺序的设定进行限制。
[0198] 在进行验证顺序确认时,按照优先级顺序,基于优化能量的能量值进行排序,依次进行判断;示意性的,以上述示意性示出的6种能量的优先级顺序为例,先按照可见割线长度能量(Einv)由小到大的顺序对优选拼接组合进行排序,若排序结果中,存在a个优选拼接组合的可见割线长度能量(Einv)相同,则,按照a个优选拼接组合的软硬边长度能量(Eedge)从小到大的顺序进一步对a个优选拼接组合进行排序,若排序结果中,存在b个优选拼接组合的软硬边长度能量(Eedge)也相同,则,按照b个优选拼接组合的形状能量(Eshape)进一步确定b个优选拼接组合的验证顺序,以此类推,直至确定所有优选拼接组合的验证顺序;示意性的,假设存在8个优选拼接组合,基于可见割线长度能量(Einv)由小到大的顺序对这8个优选拼接组合进行排序后,有3个优选拼接组合的可见割线长度能量(Einv)能量值均处于第三位,则按照软硬边长度能量(Eedge)由小到大的顺序对这3个优选拼接组合进行排序,确定第3‑5位上分别对应的优选拼接组合;若仍有2个优选拼接组合的可见割线长度能量(Einv)能量值相同,且都位于第4位,那么再按照形状能量(Eshape)由小到大的顺序对这2个优选拼接组合进行排序,确定第4位和第5位分别对应的优选拼接组合;直至各个验证顺序上均对应一个优选拼接组合位置。
[0199] 在一种可能的实现方式中,当基于优先级顺序,按照目标数量各个优化能量对优选拼接组合进行排序后,仍无法确定若干优选拼接组合的验证顺序,计算机设备可以利用切线长度能量(Es)对若干优选拼接组合直接进行排序,以确定若干优选拼接组合的验证顺序;其中,目标数量可以为4,也就是说,在基于可见割线长度能量(Einv)、软硬边长度能量(Eedge)、形状能量(Eshape)、对称能量(Esymm)对优选拼接组合进行排序后,仍无法确认该优选拼接组合的验证顺序,则通过切线长度能量(Es)的排序结果直接确定该优选拼接组合的验证顺序。
[0200] 可选的,由于优先级顺序的定义并非一成不变,优选能量用作分类更加稳定与鲁棒;因此计算机设备也可以基于优先级较高的目标数量的优化能量,利用阈值对拼接组合进行二分类,确定各个优选拼接组合的验证顺序分组;其中,小于能量阈值的分组中的优选拼接组合优先拼接,大于能量阈值的分组中的优选拼接组合后拼接;之后,对二分类后获取的各个分组中的优选拼接组合,以分类为单位进行排序。也就是说,基于各个优选拼接组合的优化能量值,以及n种优化能量的优先级,获取各个优选拼接组合的验证顺序可以实现为:
[0201] 基于n‑1种优化能量的能量值,以及n‑1种优化能量的优先级,对各个优选拼接组合进行二分类,获得2(n‑1)个分组的优选拼接组合;n‑1种优化能量为n种优化能量中,除了目标优化能量之外的其它优化能量;该目标优化能量是n种优化能量,优先级最低的优化能量;
[0202] 基于目标优化能量,对2(n‑1)个分组的拼接组合分别进行排序,获得各个优选拼接组合的验证顺序。
[0203] 计算机设备基于第一组优化能量进行二分类可以获得2(n‑1)个分组;示意性的,以n=5为例,且5种优化能量及其对应的优先级排序为:可见割线长度能量(Einv)、软硬边长度能量(Eedge)、形状能量(Eshape)、对称能量(Esymm)以及切线长度能量(Es)为例,此时,目标优化能量为切线长度能量(Es),n‑1种优化能量包括优先级排序前4位的优化能量,即可见割线长度能量(Einv)、软硬边长度能量(Eedge)以及形状能量(Eshape);计算机设备先基于可见割线长度能量(Einv)以及其对应的第一能量阈值对优选拼接组合进行二分类,获得可见割线长度能量(Einv)小于第一能量阈值的第一分类的优选拼接组合,以及可见割线长度能量(Einv)小于第一能量阈值的第二分类的优选拼接组合,共分为两个分组,其中,第一分类的验证优先级高于第二分类的验证优先级;再基于软硬边长度能量(Eedge)以及其对应的第二能量阈值对第一分类的优选拼接组合以及第二分类的优选拼接组合分别进行二分类,获得第一分类中的软硬边长度能量(Eedge)小于第二能量阈值的第三分类的优选拼接组合,第一分类中的软硬边长度能量(Eedge)大于第二能量阈值的第四分类的优选拼接组合,第二分类中软硬边长度能量(Eedge)小于第二能量阈值的第五分类的优选拼接组合,以及第二分类中的软硬边长度能量(Eedge)大于第二能量阈值的第六分类的优选拼接组合,共分为四个分组,其中,这四个分组对应的验证优先级顺序由高到低分别为:第三分类>第四分类>第五分类>第六分类;之后,基于形状能量(Eshape)以及其对应的第三能量阈值对第三分类、第四分类、第五分类以及第六分类各自对应的优选拼接组合进行二分类,共分为八个分组;最后,基于对称能量(Esymm)对基于形状能量(Eshape)进行二分类获得的八个分类分别对应的优选拼接组合进行二分类,共分为十六个分组。
[0204] 可选的,目标优化能量可以是除用以分类的优化能量中的任意一个,在获取到2(n‑1)个分组后,计算机设备可以基于各个分组中,各个优选拼接组合的目标优化能量的能量值,在各个分组中,对优选拼接组合进行排序;示意性的,在第一分组中,计算机设备基于第一分组中的各个优选拼接组合的目标优化能量的能量值,对第一分组中的各个优选拼接组合进行排序,获得第一分组对应的各个优选拼接组合的排序结果,该第一分组是2(n‑1)个分组中的任意一个。
[0205] 示意性的,该目标优化能量是切线长度能量(Es),计算机设备将2(n‑1)个分组分别基于切线长度能量(Es)进行排序的排序结果,获取为各个分组中各个优选拼接组合的验证顺序。
[0206] 在获取到2(n‑1)个分组各自包含的优选拼接组合的验证顺序后,计算机设备可以基于各个分组的优先级对2(n‑1)个分组进行整合,获得拼接序列中各个优选拼接组合的验证顺序;其中,同一优化能量划分的分组中,小于该优化能量对应的能量阈值的分组的验证优先级高于大于该优化能量对应的能量阈值的分组的优先级。示意性的,以存在8个优选拼接组合,n=3,且3种优化能量及其对应的优先级排序为:可见割线长度能量(Einv)、软硬边长度能量(Eedge)以及切线长度能量(Es)为例,在基于可见割线长度能量(Einv)对8个优选拼接组合进行二分类后可以获得分组1和分组2,其中,分组1中的优选拼接组合的可见割线长度能量小于第一能量阈值;分组2中的优选拼接组合的可见割线长度能量大于第一能量阈值;假设分组1中包含优选拼接组合1、3、4、8,分组2中包含优选拼接组合2、5、6、7;基于软硬边长度能量(Eedge)对分组1中的优选拼接组合和分组2中的优选拼接组合分别进行二分类,获得分组1‑1,分组1‑2以及分组2‑1,分组2‑2,其中,分组1‑1和分组2‑1中的优选拼接组合的软硬边长度能量(Eedge)小于第二能量阈值,分组1‑2和分组2‑2中的优选拼接组合的软硬边长度能量(Eedge)大于第二能量阈值;假设分组1‑1中包括优选拼接组合1、4,分组1‑2中包含优选拼接组合3、8;分组2‑1中包含优选拼接组合2、5,分组2‑2中包含优选拼接组合6、7;之后,基于切线长度能量(Es)分别对分组1‑1、分组1‑2、分组2‑1、分组2‑2中包含的优选拼接组合进行排序,获得分组1‑1:1、4,分组1‑2:8、3,分组2‑1:5、2,分组2‑2:6、7;计算机设备基于上述分组和排序结果,对各个分组内的优选拼接组合的验证顺序进行整合,获得拼接序列中各个优选拼接组合的验证顺序为1、4、8、3、5、2、6、7。
[0207] 基于上述验证顺序,将各个优选拼接组合推入拼接组合序列,以构建该拼接组合序列。
[0208] 可选的,拼接组合(包括基础拼接组合以及优选拼接组合)中包括基础拼接单元之间的邻接关系表以及对称关系表,用以标准组成拼接组合的基础拼接单元以及相对位置关系。
[0209] 步骤340,对拼接组合序列中的各个拼接组合进行验证,获得基础拼接单元的拼接结果。
[0210] 可选的,对拼接组合序列中的各个拼接组合进行验证,获得基础拼接单元的拼接结果,包括:
[0211] 基于拼接组合序列执行至少一次组合验证过程,直至拼接组合序列为空,获得基础拼接单元的拼接结果;
[0212] 其中,该组合验证过程包括。
[0213] S3401,对拼接组合序列中,处于序列首位的第一拼接组合进行验证。
[0214] 在本申请实施例中,在对拼接组合序列中处于序列首位的第一拼接组合进行验证时,计算机设备可以通过两种不同的验证策略对第一拼接组合进行验证;基于上述验证方式,对第一拼接组合进行验证的过程可以实现为:
[0215] 对第一拼接组合进行初次验证;该初次验证用以验证第一拼接组合是否可成功展开;其中,成功展开是指拼接组合可展开,并且,展开后的形变小于形变阈值且维持对称性;
[0216] 响应于初次验证通过,对第一拼接组合进行二次验证;二次验证用以验证第一拼接组合展开后形成的UV岛的形状是否符合形状模板。
[0217] 也就是说,初次验证用以审查当前拼接组合提案是否可展开、且展开后的形变是否过大以及对称性是否被破坏;可选的,初次验证时,计算机设备可以对当前拼接组合进行无翻转的ARAP(As‑Rigid‑As‑Possible)展开,如果展开失败,则拼接失败,如果展开成功,则校验其展开的扭曲程度与对称性,不满足条件则拒绝,其中,对扭曲程度的校验实现为对展开后的形变与形变阈值之间的比较,对对称性的验证是指在展开后,验证展开后的UV岛是否继续维持原本的对称性,如果破坏则拒绝该拼接组合;二次验证用以审查是否产生不利于后续步骤的UV岛造型,比如,比例与后续步骤的UV岛造型可以包括大圆环,长条以及自对称轴丢失等情况的造型等等;该形状模板是相关人员设定的,符合后续步骤的UV岛造型。
[0218] S3402,响应于第一拼接组合验证通过,对第一拼接组合包含的基础拼接单元进行拼接,获得第一拼接组合的拼接结果,并删除拼接组合序列中的第一拼接组合。
[0219] S3403,基于第一拼接组合的拼接结果,以及第一拼接组合包含的基础拼接单元各自对应的其他拼接组合,更新拼接组合序列中的拼接组合。
[0220] 可选的,基于第一拼接组合的拼接结果,以及第一拼接组合包含的基础拼接单元各自对应的其他拼接组合,更新拼接组合序列中的拼接组合,包括:
[0221] 将其他拼接组合中的第一基础拼接单元替换为第一拼接组合的拼接结果;第一基础拼接单元是第一拼接组合包含的基础拼接单元。也就是说,将包含有组成第一拼接组合的预拼接结果的其他拼接组合中,与第一拼接组合的预拼接结果相同的预拼接结果,替换为第一拼接组合的拼接结果,从而得到新的拼接组合,更新邻接关系表与对称关系表;同时,将原始的拼接组合以及对应的邻接关系表与对称关系表删除。示意性的,假设第一拼接组合中包含基础拼接单元A和基础拼接单元B,且第一拼接组合通过验证,则生成第一拼接组合的拼接结果AB;在原拼接组合序列中还包括包含有基础拼接单元A和基础拼接单元B的其他拼接组合,比如拼接组合A+C,以及拼接组合B+F等等,在获取到第一拼接组合的拼接结果AB后,对原拼接组合序列中的其他拼接组合进行更新,比如,将拼接组合A+C更新为AB+C,将接组合B+F更新为AB+F,更新对应的邻接关系表与对称关系表;将原拼接组合A+C,以及拼接组合B+F以及对应的邻接关系表与对称关系表删除。
[0222] 上述构建拼接组合序列,并将拼接组合序列中的拼接组合依次取出并进行验证以获取基础拼接单元的拼接结果的方式可以称为提案‑审理机制。在通过提案‑审理机制对拼接组合序列执行的至少一次组合验证过程的中,计算机设备可以按照拼接组合序列指示的处理顺序,依次从该拼接组合序列中取出拼接组合;对取出的拼接组合进行验证,若该拼接组合验证通过,则基于该拼接组合构建该拼接组合对应的拼接结果,并基于该拼接结果更新拼接组合序列中的拼接组合,并将该拼接组合从拼接组合序列中删除;若该拼接组合验证不通过,则将该拼接组合从拼接组合序列中删除,并获取原拼接组合序列指示的处理顺序处于下一位,当前处于拼接组合序列第一位的拼接组合继续进行验证;重复上述过程,直至拼接组合序列中的拼接组合为空,获得基础拼接单元的拼接结果。图9示出了本申请一示例性实施例示出的基于提案‑审理机制进行拼接组合验证的过程示意图,如图9所示,该过程包括。
[0223] S901,创建基础拼接单元。
[0224] 在本申请实施例中,该基础拼接单元特指在对三维模型的碎片化UV岛经过预拼接以及重新展开后获得的预拼接结果。
[0225] S902,基于基础拼接单元构建拼接组合。
[0226] 构建拼接组合的过程可以是指建立基础拼接单元之间的邻接关系表以及对称关系表的过程。
[0227] S903,基于拼接组合,构建拼接组合序列。
[0228] S904,判断拼接组合序列是否为空,若是则执行S99,否则,执行S905。
[0229] S905,取拼接组合序列中首位的第一拼接组合,进行验证。
[0230] S906,判断初次验证是否通过,若是,则执行S907,否则,执行S908。
[0231] S907,判断二次验证是否通过,若是,则执行S909,否则,执行S908。
[0232] S908,删除该第一拼接组合。
[0233] S909,按第一拼接组合的拼接方案产生新的拼接单元,并基于新的拼接单元更新拼接组合序列。
[0234] 其中,基于新的拼接单元更新拼接组合序列是指,将该第一拼接组合从拼接组合序列中删除,获取拼接组合序列中包含第一拼接组合中的基础拼接单元的其他拼接组合,将其他拼接组合序列中的基础拼接单元更新为第一拼接组合对应的新的拼接单元,并将原其他拼接组合及其对应的关系表删除。
[0235] S910,根据最后的拼接单元,进行拼接以及展开,生成三维模型的展开。
[0236] 步骤350,基于基础拼接单元的拼接结果,生成三维模型的展开结果。
[0237] 该基础拼接单元的拼接结果包括在二维空间内对UV岛的二维拼接结果以及该二维拼接结果对应在三维空间中的三维拼接结果,计算机设备对该三维拼接结果进行重新展开,获得该三维模型的展开结果。
[0238] 可选的,在三维模型的展开过程中可能会存在不可展开的岛以及退化岛,计算机设备需要对这些岛进行特殊处理以保证展开效果;其中,不可展开的岛包括:展开形变很大的岛、展开存在交叠的岛以及展开方式无法求解的岛等;对于不可展开的岛,可以保留其对应的三维网格的原本UV岛造型,对于退化岛,可以将其退化成一个点,放置于指定坐标位置处。
[0239] 在本申请实施例中,计算机设备引入回退机制对基于基础拼接单元的拼接结果进行处理,以弥补在前面步骤中已经产生的过度拼接,对拼接结果进行补充和修正;可选的,本申请实施例中可以引入不规则UV岛的切割策略作为本申请的回退机制,该切割策略针对模型UV展开过程中可能存在的各种不规则情况,进行归类处理,并且其切割策略可以很灵活的结合美术制作的意图,从而高效的切割不规则的UV岛形状。
[0240] 综上所述,本申请实施例提供的三维模型的展开方法,通过对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;在获取到基于基础拼接单元集中的各个接触拼接单元组合获得的各个拼接组合后,依据模型设计需求制定的至少一种优化能量,基于各个拼接组合构建拼接组合序列;通过对拼接组合序列中的拼接组合进行验证后,获得基础拼接单元的拼接结果,以基于基础拼接单元的拼接结果生成三维模型的展开结果。在上述对三维模型的展开过程中,可以实现三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得获得的三维模型的展开结果更加符合实际需求,提高了对三维模型的展开效果。
[0241] 为验证本申请提供的三维模型的展开方法的效果,在自动2UV项目的切割展开工具中对本申请提供的三维模型的展开方法进行了应用,并测试了其在美术实施例在实际应用中以及其在美术资源2UV生产中的使用效果。下面示意性的提供一些测试统计结果:表1列举了在几个典型美术资源上基于本申请提供的三维模型的展开方法获得的工具展开结果的UV岛数量与人工展开结果的对比数据;表2是在美术资源数据库上测试的结果,数据给出的是基于本申请提供的三维模型的展开方法获得的自动2UV最终结果与人工结果的对比,对比的维度是美工制作2UV时比较关注的四个量化指标,其中,三维模型的展开方法主要影响后两项指标,超九成指该样本超过人工结果在该指标上的九成,超十成则表示该样本在该指标上完全超过人工结果。
[0242] 表1
[0243]
[0244] 表2
[0245]
[0246] 结果表明,通过本申请提供的三维模型的展开方法,展开得到的UV岛数量以及不合理的切割线更少、UV岛形状更为规整、对称性维持得更加完整。通过在游戏美术资源数据上测试统计,通过本申请提供的三维模型的展开方法获得的UV岛数量与美工制作的结果相似,整体效果更优。
[0247] 图10示出了自动2UV最终结果通过烘焙后与人工制作的2UV烘焙结果的对比示意图,如图10所示,基于本申请提供的三维模型的展开方法获得的2UV展开结果烘焙获得的烘焙结果1010与人工制作2UV烘焙结果1020以及与虚拟2UV烘焙结果1030的差异较小,且能够在一定程度上避免接缝渗色的现象,从而表明本申请提供的三维模型的展开方法的展开效果较好。
[0248] 图11示出了本申请一示例性实施例示出的三维模型的展开装置的方框图,如图11所示,该三维模型的展开装置可以包括以下模块。
[0249] 单元集获取模块1110,用于对三维模型进行切割以及展开,获得所述三维模型的基础拼接单元集;所述基础拼接单元集中包含基于所述三维模型的纹理UV岛获得的各个基础拼接单元;
[0250] 序列构建模块1120,用于基于所述基础拼接单元集构建拼接组合序列;所述拼接组合序列中包含基于模型展开要求对各个所述基础拼接单元进行组合得到的各个拼接组合;所述模型展开要求包括基于模型设计需求制定的至少一种优化能量;所述优化能量用于指示所述拼接组合的几何属性;
[0251] 组合验证模块1130,用于对所述拼接组合序列中的各个所述拼接组合进行验证,获得所述基础拼接单元的拼接结果;
[0252] 结果生成模块1140,用于基于所述基础拼接单元的拼接结果,生成所述三维模型的展开结果。
[0253] 在一种可能的实现方式中,所述序列构建模块1120,包括:
[0254] 穷举子模块,用于穷举基于所述各个基础拼接单元构建的基础拼接组合,获得基础拼接组合集;
[0255] 剪枝子模块,用于基于剪枝策略,对所述基础拼接组合集进行剪枝,获得各个优选拼接组合;
[0256] 序列构建子模块,用于基于各个所述优选拼接组合,构建所述拼接组合序列。
[0257] 在一种可能的实现方式中,所述序列构建子模块,包括:
[0258] 能量值获取单元,用于获取各个所述优选拼接组合的优化能量值;所述优化能量值包含至少一种所述优化能量的能量值;
[0259] 顺序获取单元,用于基于各个所述优选拼接组合的所述优化能量值,获取各个所述优选拼接组合的验证顺序;
[0260] 序列构建单元,用于基于各个所述优选拼接组合的所述验证顺序,构建所述拼接组合序列。
[0261] 在一种可能的实现方式中,至少一种所述优化能量包含n种所述优化能量,n种所述优化能量具有各自的优先级;n≥2,且n为整数;
[0262] 所述顺序获取单元,用于基于各个所述优选拼接组合的所述优化能量值,以及n种所述优化能量的优先级,获取各个所述优选拼接组合的所述验证顺序。
[0263] 在一种可能的实现方式中,所述顺序获取单元,用于,
[0264] 基于n‑1种所述优化能量的能量值,以及n‑1种所述优化能量的优先级,对各个所述优选拼接组合进行二分类,获得2(n‑1)个分组的所述优选拼接组合;n‑1种所述优化能量为n种所述优化能量中,除了目标优化能量之外的其它所述优化能量;所述目标优化能量是n种所述优化能量,优先级最低的所述优化能量;
[0265] 基于所述目标优化能量,对2(n‑1)个分组的所述拼接组合分别进行排序,获得各个所述优选拼接组合的所述验证顺序。
[0266] 在一种可能的实现方式中,所述剪枝策略包括:基于拼接长度的策略,以及基于拼接缝线的策略中的至少一种;
[0267] 所述基于拼接长度的策略包括:响应于所述基础拼接组合对应的长度差与相邻边的长度的比值小于目标阈值时,拒绝所述基础拼接组合;所述长度差是指两个所述基础拼接单元相邻边的长度与两个所述基础拼接单元对应的基础拼接组合中的缝线的长度之间差值;
[0268] 所述基于拼接缝线的策略包括:响应于所述基础拼接组合中的缝线的段数大于所述基础拼接组合中的两个所述基础拼接单元中的相邻边的数量,拒绝所述基础拼接组合。
[0269] 在一种可能的实现方式中,所述组合验证模块1130,用于基于所述拼接组合序列执行至少一次组合验证过程,直至所述拼接组合序列为空,获得所述基础拼接单元的拼接结果;
[0270] 其中,所述组合验证模块1130,包括:
[0271] 组合验证子模块,用于对所述拼接组合序列中,处于序列首位的第一拼接组合进行验证;
[0272] 单元拼接子模块,用于响应于所述第一拼接组合验证通过,对所述第一拼接组合包含的所述基础拼接单元进行拼接,获得所述第一拼接组合的拼接结果,并删除所述拼接组合序列中的所述第一拼接组合;
[0273] 组合更新子模块,用于基于所述第一拼接组合的拼接结果,以及所述第一拼接组合包含的所述基础拼接单元各自对应的其他拼接组合,更新所述拼接组合序列中的所述拼接组合。
[0274] 在一种可能的实现方式中,组合验证子模块,包括:
[0275] 第一验证单元,用于对所述第一拼接组合进行初次验证;所述初次验证用以验证所述第一拼接组合是否可成功展开;其中,成功展开是指拼接组合可展开,并且,展开后的形变小于形变阈值且维持对称性;
[0276] 第二验证单元,用于响应于所述初次验证通过,对所述第一拼接组合进行二次验证;所述二次验证用以验证所述第一拼接组合展开后形成的UV岛的形状是否符合形状模板。
[0277] 在一种可能的实现方式中,所述组合更新子模块,用于将所述其他拼接组合中的第一基础拼接单元替换为所述第一拼接组合的拼接结果;所述第一基础拼接单元是所述第一拼接组合包含的所述基础拼接单元。
[0278] 在一种可能的实现方式中,所述单元集获取模块1110,包括:
[0279] UV岛集获取子模块,用于基于切割单元,对所述三维模型进行切割以及展开,获得UV岛集,所述UV岛集中包含所述三维模型的各个碎片化的所述UV岛;
[0280] 单元获取子模块,用于基于所述UV岛集进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集。
[0281] 在一种可能的实现方式中,所述单元获取子模块,用于通过至少一种预拼接方式,对各个碎片化的所述UV岛进行预拼接以及重新展开,获得所述三维模型的基础拼接单元集;
[0282] 其中,至少一种所述预拼接方式包括平面预拼接,软边预拼接以及语义分割预拼接中的至少一种;所述平面预拼接用以指示通过邻域蔓延和平面拼接的方法进行拼接的方式;所述软边预拼接用以指示通过硬边对所述三维模型进行区域划分后,在各个区域内通过启发式搜索的方法进行拼接的方式;所述语义分割预拼接用以指示利用所述三维模型的几何语义特征对所述三维模型进行分解,获得语义分割区域,以在各个语义分割区域内进行拼接的方式。
[0283] 在一种可能的实现方式中,所述单元获取子模块,用于响应于所述预拼接方式包含平面预拼接,软边预拼接以及语义分割预拼接中的至少两种,按照各个所述预拼接方式的优先级,对碎片化的所述UV岛进行预拼接以及重新展开,获得所述基础拼接单元。
[0284] 综上所述,本申请实施例提供的三维模型的展开装置,通过对三维模型进行切割以及展开,获得三维模型的基础拼接单元集;在获取到基于基础拼接单元集中的各个接触拼接单元组合获得的各个拼接组合后,依据模型设计需求制定的至少一种优化能量,基于各个拼接组合构建拼接组合序列;通过对拼接组合序列中的拼接组合进行验证后,获得基础拼接单元的拼接结果,以基于基础拼接单元的拼接结果生成三维模型的展开结果。在上述对三维模型的展开过程中,可以实现三维模型展开过程的自动化,同时充分考虑到模型设计中的实际需求,使得获得的三维模型的展开结果更加符合实际需求,提高了对三维模型的展开效果。
[0285] 图12示出了本申请一示例性实施例示出的计算机设备1200的结构框图。该计算机设备可以实现为本申请上述方案中的服务器。所述计算机设备1200包括处理器(比如中央处理器(Central Processing Unit,CPU))1201、包括随机存取存储器(Random Access Memory,RAM)1202和只读存储器(Read‑Only Memory,ROM)1203的系统存储器1204,以及连接系统存储器1204和中央处理单元1201的系统总线1205。所述计算机设备1200还包括用于存储操作系统1209、应用程序1210和其他程序模块1211的大容量存储设备1206。
[0286] 不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读寄存器(Erasable Programmable Read Only Memory,EPROM)、电子抹除式可复写只读存储器(Electrically‑Erasable Programmable Read‑Only Memory,EEPROM)闪存或其他固态存储其技术,只读光盘(Compact Disc Read‑Only Memory,CD‑ROM)、数字多功能光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1204和大容量存储设备1206可以统称为存储器。
[0287] 根据本公开的各种实施例,所述计算机设备1200还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1200可以通过连接在所述系统总线1205上的网络接口单元1207连接到网络,或者说,也可以使用网络接口单元1207来连接到其他类型的网络或远程计算机系统(未示出)。
[0288] 所述存储器还存储有至少一条计算机程序,处理器1201通过执行该至少一条计算机程序来实现上述各个实施例所示的三维模型的展开方法中的全部或部分步骤。
[0289] 图13示出了本申请一个示例性实施例示出的计算机设备1300的结构框图。该计算机设备1300可以实现为上述的终端。
[0290] 通常,计算机设备1300包括有:处理器1301和存储器1302。
[0291] 处理器1301可以包括一个或多个处理核心,比如4核心处理器、13核心处理器等。处理器1301可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器1301也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器1301可以集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器1301还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
[0292] 存储器1302可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1302还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器1302中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1301所执行以实现本申请中方法实施例示出的三维模型的展开方法中的全部或部分步骤。
[0293] 在一些实施例中,计算机设备1300还可选包括有:外围设备接口1303和至少一个外围设备。处理器1301、存储器1302和外围设备接口1303之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1303相连。具体地,外围设备包括:射频电路1304、显示屏1305、摄像头组件1306、音频电路1307和电源1308中的至少一种。
[0294] 在一些实施例中,计算机设备1300还包括有一个或多个传感器1309。该一个或多个传感器1309包括但不限于:加速度传感器1310、陀螺仪传感器1311、压力传感器1312、光学传感器1313以及接近传感器1314。
[0295] 本领域技术人员可以理解,图13中示出的结构并不构成对计算机设备1300的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
[0296] 在一示例性实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机程序,该计算机程序由处理器加载并执行以实现上述三维模型的展开方法中的全部或部分步骤。例如,该计算机可读存储介质可以是只读存储器、随机存取存储器、只读光盘、磁带、软盘和光数据存储设备等。
[0297] 在一示例性实施例中,还提供了一种计算机程序产品,该计算机程序产品包括至少一条计算机程序,该计算机程序由处理器加载并执行上述图2或图3所示任一实施例所示的三维模型的展开方法的全部或部分步骤。
[0298] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
[0299] 应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。