CN114445564B - 一种模型展开方法、设备、存储介质及计算机程序产品 - Google Patents
一种模型展开方法、设备、存储介质及计算机程序产品 Download PDFInfo
- Publication number
- CN114445564B CN114445564B CN202210367641.5A CN202210367641A CN114445564B CN 114445564 B CN114445564 B CN 114445564B CN 202210367641 A CN202210367641 A CN 202210367641A CN 114445564 B CN114445564 B CN 114445564B
- Authority
- CN
- China
- Prior art keywords
- model
- plane
- scroll
- result
- expansion
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请提供了一种模型展开方法、设备、存储介质及计算机程序产品,应用于游戏、云技术、人工智能、智慧交通和车载等各种场景;该模型展开方法包括:对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,平面集合包括用于构成三维网格模型的各个平面,至少一类表面识别结果至少包括侧面识别结果;基于至少一类表面识别结果,组合出至少一个类柱状体模型,其中,类柱状体模型为至少包括侧面结构的模型;对每个类柱状体模型进行模型展开,得到与至少一个类柱状体模型对应的至少一个模型展开结果;将至少一个模型展开结果确定为三维网格模型的展开结果。通过本申请,能够提升模型展开的效率。
Description
技术领域
本申请涉及计算机应用领域中的模型处理技术,尤其涉及一种模型展开方法、设备、存储介质及计算机程序产品。
背景技术
模型渲染过程中,在获得了三维网格模型之后,通常还会对三维网格模型进行模型展开来获得二维网格数据,并通过对二维网格数据进行纹理绘制并贴合至三维网格模型中,来渲染三维网格模型。
一般来说,为了对三维网格模型进行模型展开,通常是由美工人员进行手动处理实现的,因此,模型展开的智能性较低,导致模型展开的效率较低。
发明内容
本申请实施例提供一种模型展开方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升模型展开的效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种模型展开方法,包括:
对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,所述平面集合包括用于构成所述三维网格模型的各个平面,至少一类所述表面识别结果至少包括侧面识别结果;
基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,其中,所述类柱状体模型为至少包括侧面结构的模型;
对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果;
将至少一个所述模型展开结果确定为所述三维网格模型的展开结果。
本申请实施例提供一种模型展开装置,包括:
表面识别模块,用于对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,所述平面集合包括用于构成所述三维网格模型的各个平面,至少一类所述表面识别结果至少包括侧面识别结果;
结果组合模块,用于基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,其中,所述类柱状体模型为至少包括侧面结构的模型;
模型展开模块,用于对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果;
结果确定模块,用于将至少一个所述模型展开结果确定为所述三维网格模型的展开结果。
在本申请实施例中,所述模型展开装置还包括网格整合模块,用于基于法线方向,对所述三维网格模型中的各个网格面进行整合,得到整合面集合,其中,所述网格面是所述三维网格模型的网格数据单元,所述整合面集合中的每个整合面包括至少一个所述网格面;将所述整合面集合确定为所述平面集合。
在本申请实施例中,所述网格整合模块,还用于从所述三维网格模型的各个所述网格面中,选择未归类的目标网格面;在各个所述网格面对应的未归类的所述网格面中,从所述目标网格面开始迭代遍历与所述目标网格面相邻的网格面;基于遍历到的所述网格面与所述目标网格面之间的所述法线方向的比较结果,对遍历到的所述网格面进行归类;将迭代得到的每类网格面集合整合为平面,直至各个所述网格面均已归类,得到与各类所述网格面集合对应的所述平面集合。
在本申请实施例中,所述网格整合模块,还用于基于遍历到的所述网格面的所述法线方向与所述目标网格面的所述法线方向,确定法线方向差;当所述法线方向的比较结果是指所述法线方向差小于方向差阈值时,将遍历到的所述网格面归类至所述目标网格面所对应的所述网格面集合中。
在本申请实施例中,所述表面识别模块,还用于从所述三维网格模型的所述平面集合中,识别出初始卷面集合,其中,在所述初始卷面集合的每个初始卷面中,每个所述平面的单位法线向量的终点均处于同一法线终点平面,且所述初始卷面包括指定数量个连通的所述平面;从所述初始卷面集合中,筛选所述法线终点平面与每个延展方向均平行的候选卷面集合,其中,所述延展方向是基于所述平面与对应相邻的所述平面之间的重心连线确定的;对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果;基于所述平面集合和所述侧面识别结果,获得至少一类所述表面识别结果。
在本申请实施例中,所述表面识别模块,还用于将与所述候选卷面集合中每个所述候选卷面相邻的所述平面,确定为待延展面;基于所述待延展面对应的延展方向差和拟合误差中的至少一种,迭代延展所述候选卷面,其中,所述延展方向差是指所述待延展面与所述候选卷面之间的方向差,所述拟合误差是指所述待延展面与所述候选卷面对应的法线平面拟合差;当满足延展结束条件时,基于迭代延展的每个所述候选卷面,确定所述侧面识别结果,其中,所述延展结束条件是指无相邻的所述平面,或者,是指相邻的所述平面不满足所述延展方向差和所述拟合误差中至少一种的约束条件。
在本申请实施例中,所述表面识别模块,还用于对所述候选卷面集合中的每个所述候选卷面进行延展,得到初步卷面集合;基于所述初步卷面集合的每个初步卷面所对应的相邻平面数量和卷度中的至少一种,对所述初步卷面集合进行筛选,得到所述侧面识别结果,其中,所述相邻平面数量是指所述初步卷面中的每个所述平面所对应的相邻所述平面的数量,所述卷度是指所述初步卷面中的所述平面对应的法线投影度数的变化量。
在本申请实施例中,所述表面识别模块,还用于基于所述初步卷面集合的每个初步卷面所对应的卷面法线方向和卷面边界,从所述初步卷面集合中,确定待合并卷面,其中,所述卷面法线方向是指所述初步卷面的所述法线终点平面所对应的法线的方向,所述卷面边界是指所述初步卷面的边界;对所述初步卷面集合中的所述待合并卷面进行合并,得到所述侧面识别结果。
在本申请实施例中,所述结果组合模块,还用于从至少一类所述表面识别结果中,确定满足指定拓扑结构的初始组合结果,其中,所述指定拓扑结构是指顶面与侧面连接、侧面与底面连接、以及连接边界是全连接的结构;基于所述初始组合结果,确定至少一个所述类柱状体模型。
在本申请实施例中,所述结果组合模块,还用于当所述初始组合结果中的组合连通体包括多个拼接组合时,基于指定面积比例和表面几何关系中的至少一种,确定至少一个所述类柱状体模型,其中,指定面积比例是指侧面与正面之间的面积比例阈值,所述正面包括底面和顶面中的至少一种,所述表面几何关系是指底面、侧面和顶面之间的几何关系。
在本申请实施例中,所述模型展开模块,还用于针对每个所述类柱状体模型中的每类目标表面,确定最短切割线,其中,所述目标表面是指侧面、底面和顶面中的至少一种;基于所述最短切割线对对应的所述目标表面进行切割,得到与每个所述类柱状体模型对应的所述模型展开结果,并获得与至少一个所述类柱状体模型对应的至少一个所述模型展开结果。
在本申请实施例中,所述模型展开模块,还用于获取每个所述类柱状体模型中的每类所述目标表面所对应的展开面集合;获取所述目标表面在所述类柱状体模型中的各个目标表面边界;基于所述展开面集合中各个展开面的长度和公共边,确定各个所述目标表面边界对应的候选切割线集合;从所述候选切割线集合中,确定所述最短切割线。
本申请实施例提供一种模型展开设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的模型展开方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令用于被处理器执行时,实现本申请实施例提供的模型展开方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时,实现本申请实施例提供的模型展开方法。
本申请实施例至少具有以下有益效果:通过对三维网格模型中的至少一个类柱状体模型进行识别,并通过展开每个类柱状体模型来获得三维网格模型的展开结果的过程中,由于识别出的类柱状体模型是一个完整的几何结构模型,是全局信息,因此实现了一种基于全局信息自动地展开三维网格模型的过程,从而,能够在确保模型展开效果的前提下提升模型展开的智能性,进而能够提升模型展开的效率。
附图说明
图1是一种示例性的展开结果示意图一;
图2是一种示例性的展开结果示意图二;
图3是本申请实施例提供的模型展开系统的架构示意图;
图4是本申请实施例提供的图3中的服务器的组成结构示意图;
图5是本申请实施例提供的模型展开方法的流程示意图一;
图6是本申请实施例提供的模型展开方法的流程示意图二;
图7是本申请实施例提供的一种示例性的UV岛拆解示意图;
图8是本申请实施例提供的一种示例性的平面识别结果;
图9是本申请实施例提供的一种示例性的侧面识别结果示意图;
图10是本申请实施例提供的一种示例性的拼装组合结果的示意图;
图11是本申请实施例提供的示例性的UV展开结果示意图一;
图12是本申请实施例提供的示例性的UV展开结果示意图二;
图13是本申请实施例提供的示例性的UV展开结果示意图三;
图14是本申请实施例提供的示例性的UV展开结果示意图四;
图15是本申请实施例提供的示例性的UV展开结果示意图五;
图16是本申请实施例提供的示例性的UV展开结果示意图六。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)三维网格(3D Mesh),一种通过多边形组合来表示三维模型的形式,对应的数据包括顶点、边和面;通过三维网格表示的模型称为三维网格模型。
2)水平(显示器的水平方向,U)垂直(显示器的垂直方向,V)展开,是指将三维网格模型切开并展平到二维平面的过程;其中,该二维平面对应的空间称为UV空间;本申请实施例中的模型展开即为UV展开。
3)UV岛,是将三维网格模型进行UV展开后获得的结果;将三维网格模型切开后获得的多个块分别展开到UV空间后,得到的为UV空间中一个个独立的二维网格模型;这里,将UV空间中每个独立的二维网格模型称为UV岛。
4)UV纹理(UV Texture),在UV空间中对UV岛进行图片绘制的结果,用于表示模型的颜色、材质和光影等效果;基于UV展开的逆过程,将UV纹理映射在三维网格模型的表面,实现模型的颜色、材质和光影等效果的渲染。
5)1UV展开,用于针对色彩纹理和法线纹理等纹理的绘制所进行的UV展开;本申请实施例的模型展开可以是1UV展开。
6)2UV展开,用于针对光照纹理和阴影纹理等纹理的绘制所进行的UV展开;本申请实施例的模型展开还可以是2UV展开。
7)软硬边(Soft and Hard Edge),是指三维网格模型中边的类别,可以是软边,也可以是硬边;其中,在渲染时,软边是指两侧的光影变化剧烈,形成明显的明暗对比(即明暗差值大于阈值);而软边两侧则光影过度平缓,明暗模糊(即明暗差值小于或等于阈值)。
8)完全多项式复杂度的非确定性问题(Non-deterministic PolynomialComplete Problem,NPC问题):是指不确定多项式时间内能否求解但是可以确定解的正确性的问题;UV展开是NPC问题。
9)网格参数化(Mesh Parameterization),是指实现UV展开的过程。
10)光线投射法(Ray Casting),是指从一点出发,在设定方向上构建视锥,然后在视锥内进行离散采样地投射光线,通过统计所有投射光线的碰撞结果来确定该点在设定方向的可视性。在本申请实施例中,通过光线投射法确定三维网格模型中面的可视性。
需要说明的是,由于UV展开决定着三维网格模型的渲染效果,因此,对UV展开有各种各样的要求;另外,UV展开也对应着不同的作用,比如,1UV展开,2UV展开;此外,UV展开也与三维网格模型的应用场景有关,比如,角色扮演游戏(Role-Playing Game,RPG)、多人在线战术竞技游戏(Multiplayer Online Battle Arena,MOBA)、横版游戏以及放置类游戏分别对应着不同的UV展开需求。并且,UV展开是一个NPC问题,通常是通过启发式的方式(通过在有限的搜索空间内进行解的搜索,以快速解决问题的方式,其中,有限的搜索空间是通过限定条件确定的)来求优化解,无法在多项式时间内完成解的搜索;因此,无法自动地进行UV展开,智能性较差,出错率较高;或者,自动地进行UV展开时,UV展开效果较差。
另外,为了实现UV展开,还可以通过拆解UV岛、UV岛预拼接和UV岛拼接实现。拆解UV岛,是指根据展开特性和生产制作原则(比如,1UV展开要求,2UV展开要求),将三维网格模型拆分为零碎的、有利于UV展开的UV岛。这里,在由1UV展开结果实现2UV展开时,可以通过拆解1UV展开结果中存在交叠的部分来实现UV岛拆解。还可以基于三维网格模型中多边形面的法线方向,获得有利于投影展开的UV岛。又可以基于三维网格模型在应用场景中的可视性(可通过光线投射法确定)和软硬边切割出UV岛。UV岛预拼接,是指对拆解的UV岛依次进行平面预拼接、软边预拼接、以及语义分割区域预拼接的过程;如此,能够与2UV展开的特征要求相适配。UV岛拼接,是指基于启发式的方式对UV岛预拼接结果进行搜索,并检查每个搜索到的拼接组合的展开效果,并基于最优展开效果的拼接组合确定展开结果的过程。由于上述模型展开的过程是在局部搜索空间中基于启发式的方式实现的,因此展开结果是基于局部信息获得的,从而模型展开效果较差,且适用范围较小。
参见图1,图1是一种示例性的展开结果示意图一;如图1所示,拼接结果1-1是三维网格模型1-2的展开结果。参见图2,图2是一种示例性的展开结果示意图二;如图2所示,拼接结果2-1是三维网格模型2-2的展开结果。这里易知,相对于二维坐标系,拼接结果1-1和拼接结果2-1的规整性均较差,会导致渲染时出现锯齿的现象。
基于此,本申请实施例提供一种模型展开方法、装置、设备、计算机可读存储介质及计算机程序产品,能够提升模型展开的智能性、效率和效果。下面说明本申请实施例提供的模型展开设备的示例性应用,本申请实施例提供的模型展开设备可以实施为智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能家电、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、智能语音交互设备、便携式游戏设备和智能音箱等各种类型的终端,也可以实施为服务器。下面,将说明模型展开设备实施为服务器时的示例性应用。
参见图3,图3是本申请实施例提供的模型展开系统的架构示意图;如图3所示,为支撑一个模型展开应用,在模型展开系统100中,终端200(示例性示出了终端200-1和终端200-2)通过网络300连接服务器400(称为模型展开设备),网络300可以是广域网或者局域网,又或者是二者的组合。另外,该模型展开系统100中还包括数据库500,用于向服务器400提供数据支持;并且,图3中示出的为数据库500独立于服务器400的一种情况,此外,数据库500还可以集成在服务器400中,本申请实施例对此不作限定。
终端200,用于通过网络300向服务器400发送携带三维网格模型的模型展开请求;还用于通过网络300接收服务器400发送的展开结果,并显示展开结果(示例性示出了图形界面210-1和图形界面210-2)。
服务器400,用于通过网络300接收终端200发送的携带三维网格模型的模型展开请求,响应于模型展开请求,对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,平面集合包括用于构成三维网格模型的各个平面,至少一类表面识别结果至少包括侧面识别结果;基于至少一类表面识别结果,组合出至少一个类柱状体模型,其中,类柱状体模型为至少包括侧面结构的模型;对每个类柱状体模型进行模型展开,得到与至少一个类柱状体模型对应的至少一个模型展开结果;将至少一个模型展开结果确定为三维网格模型的展开结果;通过网络300向终端200发送展开结果。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN,ContentDelivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、智能手表、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、智能车载设备、便携式音乐播放器、个人数字助理、专用消息设备、便携式游戏设备和智能音箱等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不作限制。
参见图4,图4是本申请实施例提供的图3中的服务器的组成结构示意图,图4所示的服务器400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。服务器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其他计算机设备,示例性的网络接口420包括:蓝牙、无线相容性认证(Wi-Fi)、和通用串行总线(USB,Universal Serial Bus)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的模型展开装置可以采用软件方式实现,图4示出了存储在存储器450中的模型展开装置455,其可以是程序和插件等形式的软件,包括以下软件模块:表面识别模块4551、结果组合模块4552、模型展开模块4553、结果确定模块4554和网格整合模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在一些实施例中,本申请实施例提供的模型展开装置可以采用硬件方式实现,作为示例,本申请实施例提供的模型展开装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的模型展开方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific IntegratedCircuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。
在一些实施例中,终端或服务器可以通过运行计算机程序来实现本申请实施例提供的模型展开方法。举例来说,计算机程序可以是操作系统中的原生程序或软件模块;可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序,如模型展开APP;也可以是小程序,即只需要下载到浏览器环境中就可以运行的程序;还可以是能够嵌入至任意APP中的小程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件。
下面,将结合本申请实施例提供的模型展开设备的示例性应用和实施,说明本申请实施例提供的模型展开方法。另外,本申请实施例提供的模型展开方法应用于游戏、云技术、人工智能、智慧交通和车载等各种场景。
参见图5,图5是本申请实施例提供的模型展开方法的流程示意图一,将结合图5示出的步骤进行说明。
步骤501、对三维网格模型的平面集合进行识别,得到至少一类表面识别结果。
需要说明的是,当模型展开设备进行模型展开处理时,所获得的待展开对象即为三维网格模型,比如,虚拟建筑对应的三维网格模型;其中,三维网格模型对应有平面集合,该平面集合中的各个平面用于构成三维网格模型。
在本申请实施例中,模型展开设备在对三维网格模型进行模型展开时,先对三维网格模型的几何结构进行识别;从而,模型展开设备对三维网格模型的平面集合进行识别,以识别出每类表面所包括的平面,也就获得了至少一类表面识别结果。其中,每类表面可以是侧面,还可以是底面,又可以是顶面,等等,本申请实施例对此不作限定。
还需要说明的是,至少一类表面识别结果至少包括侧面识别结果,侧面识别结果是指每个侧面所包括的平面;也就是说,至少一类表面识别结果可以是侧面识别结果,还可以是侧面识别结果、以及底面和顶面中的至少一种的识别结果。另外,侧面是指用于构成三维网格模型的几何结构的基础面,比如,圆柱体的柱面,正方体的四个立面,虚拟建筑模型的墙面,瓶装体的瓶身等;通常侧面与三维网格模型对应的虚拟对象在虚拟场景中放置平面垂直。底面是指与三维网格模型对应的虚拟对象在虚拟场景中放置平面接触的表面;比如,虚拟建筑的地面。顶面是指与底面相对的表面;比如,虚拟房屋的屋顶;从而,底面和顶面可以互换。此外,平面可以是三维网格模型的基本的网格数据单元,还可以是三维网格模型的多个网格数据单元整合出的平面片,等等,本申请实施例对此不作限定。
步骤502、基于至少一类表面识别结果,组合出至少一个类柱状体模型。
在本申请实施例中,模型展开设备获得了至少一类表面识别结果之后,如果确定至少一类表面识别结果为一类表面识别结果,则可以确定至少一类表面识别结果即为侧面识别结果,则模型展开设备基于侧面识别结果获得至少一个侧面,从而得到至少一个侧面所组合出立面体(比如,建筑立面);这里,将所组合出的立面体确定为至少一个类柱状体。如果至少一类表面识别结果为多类表面识别结果,则至少一类表面识别结果中即包括侧面识别结果,还包括顶面和底面中的至少一种的识别结果;从而,模型展开设备将侧面、以及顶面和底面中的至少一种进行组合,来获得包括侧面的立面体,或者包括侧面和底面的瓶状体,又或者包括侧面、底面和顶面的柱状体;并将获得的立面体、瓶状体和柱状体中的任一种确定为每个类柱状体。
需要说明的是,类柱状体模型为至少包括侧面结构的模型,从而,类柱状体模型是立面体、瓶状体和柱状体中的至少一种所对应的模型;其中,立面体是指包括侧面但不包括底面和顶面的立体结构,比如,不包括虚拟房顶的虚拟建筑;瓶状体是指包括侧面和底面但不包括顶面的立体结构,比如,虚拟对象手持的虚拟花瓶;柱状体是指包括侧面、底面和顶面的立体结构,比如,圆柱体。这里,类柱状体模型表征了三维网格模型的几何结构,是三维网格模型中的一个完整的几何结构模型;并且,三维网格模型是由类柱状体结构组成的,包括至少一个类柱状体模型。
步骤503、对每个类柱状体模型进行模型展开,得到与至少一个类柱状体模型对应的至少一个模型展开结果。
在本申请实施例中,模型展开设备以每个类柱状体模型为单位进行模型展开,当完成模型展开时,也就获得了与每个类柱状体模型对应的模型展开结果,从而也就获得了与至少一个类柱状体模型对应的至少一个模型展开结果。其中,至少一个类柱状体模型与至少一个模型展开结果一一对应。
步骤504、将至少一个模型展开结果确定为三维网格模型的展开结果。
需要说明的是,由于三维网格模型包括至少一个类柱状体模型,当获得了至少一个类柱状体模型对应的至少一个模型展开结果之后,也就获得了三维网格模型的展开结果;也就是说,三维网格模型的展开结果即为至少一个模型展开结果。
可以理解的是,通过对三维网格模型中的至少一个类柱状体模型进行识别,并通过展开每个类柱状体模型来获得三维网格模型的展开结果的过程中,由于识别出的类柱状体模型是一个完整的几何结构模型,是全局信息,因此实现了一种基于全局信息自动地展开三维网格模型的过程,从而,能够在确保模型展开效果的前提下提升模型展开的智能性,进而能够提升模型展开的效率;另外,基于全局信息进行模型展开,能够提升模型展开的效果。
参见图6,图6是本申请实施例提供的模型展开方法的流程示意图二;如图6所示,在本申请实施例中,步骤501之前还包括步骤505和步骤506;也就是说,模型展开设备对三维网格模型的平面集合进行识别,得到至少一类表面识别结果之前,该模型展开方法还包括步骤505和步骤506,下面对各步骤分别进行说明。
步骤505、基于法线方向,对三维网格模型中的各个网格面进行整合,得到整合面集合。
需要说明的是,三维网格模型是由多个网格拼接而成的三维模型,这里,将构成三维网格模型的每个网格称为一个网格面,从而,三维网格模型包括多个网格面;这里,模型展开设备可以对三维网格模型的各个网格面进行识别,来获得至少一类表面识别结果,即各个网格面即为平面集合;模型展开设备还可以先对各个网格面整合后再识别出至少一类表面识别结果;等等,本申请实施例对此不作限定。其中,网格面是三维网格模型的网格数据单元。
在本申请实施例中,模型展开设备为了将各个网格面整合为相比于网格面更大的面,基于法线方向对各个网格面进行整合,以使得整合出的每个整合面所包括的网格面对应的法线方向相似。这里,整合面集合中的每个整合面包括至少一个网格面;也就是说,整合是指合并至少一个网格面的处理。法线方向相似是指法线方向之间的差别小于阈值。
还需要说明的是,三维网格模型中的每个网格面的顶点对应的方向信息包括法线、切线和副法线;其中,法线是指垂直于顶点所在平面并朝向三维网格模型外侧的方向,而切线是指贴合顶点所在平面的方向,也是UV空间中的U方向;副法线垂直于切线和法线。这里,模型展开设备基于网格面的顶点所对应的法线,能够确定网格面的法线方向;比如,可以是任一顶点的法线的方向,还可以是各个顶点的法线的平均方向,等等,本申请实施例对此不作限定。
步骤506、将整合面集合确定为平面集合。
在本申请实施例中,模型展开设备将整合面集合作为平面集合,以针对整合结果进行表面的识别。这里,一个整合面即为一个平面。
可以理解的是,通过对三维网格模型的各个网格面进行整合后再进行表面的识别,由于整合面的数量小于网格面的数量,简化了三维网格模型;且整合面通常是四边形,有利于表面的识别;因此,能够提升识别效率和效果。
在本申请实施例中,步骤505可通过步骤5051至步骤5054(图中未示出)实现;也就是说,模型展开设备基于法线方向,对三维网格模型中的各个网格面进行整合,得到整合面集合,包括步骤5051至步骤5054,下面对各步骤分别进行说明。
步骤5051、从三维网格模型的各个网格面中,选择未归类的目标网格面。
在本申请实施例中,模型展开设备通过对各个网格面进行归类来实现整合;这里,模型展开设备可以随机从各个网格面中选择一个未归类的网格面作为目标网格面,还可以基于各个网格面的大小选择面积最大的且未归类的网格面作为目标网格面,又可以基于各个网格面对应的顺序选择一个未归类的网格面作为目标网格面,等等,本申请实施例对此不作限定。
需要说明的是,是否归类可通过归类标识确定,比如,1表示该网格面已归类,0表示该网格面未归类。另外,虽然目标网格面是从未归类的网格面选择的,但选择后该目标网格面已是一类,从而,目标网格面已归类。
步骤5052、在各个网格面对应的未归类的网格面中,从目标网格面开始迭代遍历与目标网格面相邻的网格面。
在本申请实施例中,模型展开设备确定各个网格面中未归类的网格面,并从未归类的网格面中迭代遍历与目标网格面相邻的网格面。
需要说明的是,这里的迭代遍历可以是深度遍历还可以是广度遍历,等等,本申请实施例对此不作限定。其中,相邻是指包括公共边,且该公共边为相邻的两个平面中每个平面的一个完整的平面边。
步骤5053、基于遍历到的网格面与目标网格面之间的法线方向的比较结果,对遍历到的网格面进行归类。
在本申请实施例中,模型展开设备通过比较遍历到的网格面与目标网格面之间的法线方向,来基于法线方向的比较结果确定遍历到的网格面是否与目标网格面属于同一类。这里,模型展开设备通过确定遍历到的网格面的法线方向与目标网格面的法线方向之间的法线方向差,来确定法线方向的比较结果;从而,当法线方向的比较结果是指法线方向差小于方向差阈值时,将遍历到的网格面归类至目标网格面所对应的网格面集合中,此时,遍历到的网格面已归类;而当法线方向的比较结果是指法线方向差大于或等于方向差阈值时,确定遍历到的网格面不属于目标网格面所对应的网格面集合,此时,遍历到的网格面未归类。其中,方向差阈值用于确定两个法线方向是否一致的最大差值;另外,每类网格面集合中的各个网格面之间的法线方向一致,从而,网格面集合中的各个网格面属于一类。
需要说明的是,模型展开设备可以通过计算遍历到的网格面的法线方向与目标网格面的法线方向之间的点乘值,来获得法线方向差;还可以通过计算遍历到的网格面的法线方向的向量与目标网格面的法线方向的向量之间的差值,来获得法线方向差;又可以通过计算遍历到的网格面的法线方向与目标网格面的法线方向之间的角度差,来获得法线方向差;等等,本申请实施例对此不作限定。
步骤5054、将迭代得到的每类网格面集合整合为平面,直至各个网格面均已归类,得到与各类网格面集合对应的平面集合。
在本申请实施例中,模型展开设备每次选择未归类的目标网格面,并针对选择的目标网格面完成迭代遍历后,均会获得一类网格面集合;从而,当三维网格模型中的每个网格面均已归类时,将会获得多类网格面集合。这里,模型展开设备将每类网格面集合整合为一个平面,当将各类网格面集合整合为了各个平面之后,也就获得了平面集合。
可以理解的是,通过将法线方向相似(即为法线方向差小于方向差阈值)的相邻的网格面整合为一个平面,使得获得的平面仍具有网格面所具有的特性,从而,能够提升平面的泛用性。
在本申请实施例中,步骤501可通过步骤5011至步骤5014(图中未示出)实现;也就是说,模型展开设备对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,包括步骤5011至步骤5014,下面对各步骤分别进行说明。
步骤5011、从三维网格模型的平面集合中,识别出初始卷面集合。
在本申请实施例中,模型展开设备在平面集合中,识别指定数量个(比如,3个)、且单位法线向量的终点均处于同一面的一组连通平面,也就获得了一个初始卷面;从而,当模型展开设备完成对平面集合的识别之后,也就识别出了初始卷面集合。其中,在初始卷面集合的每个初始卷面中,每个平面的单位法线向量的终点均处于同一法线终点平面,且初始卷面包括指定数量个连通的(或称为相邻的)平面。
步骤5012、从初始卷面集合中,筛选法线终点平面与每个延展方向均平行的候选卷面集合。
在本申请实施例中,模型展开设备基于延展方向继续对初始卷面集合进行筛选,以筛选出法线终点平面与每个延展方向均平行的初始卷面,并将法线终点平面与每个延展方向均平行的初始卷面称为候选卷面。当模型展开设备完成对初始卷面集合的筛选,也就获得了由候选卷面构成的候选卷面集合。
需要说明的是,初始卷面中的一个平面的延展方向,是基于该平面与初始卷面中对应相邻的平面的重心连线确定的;比如,初始卷面包括平面A、平面B和平面C,平面B分别与平面A和平面C相邻,平面A的延展方向是指平面A与平面B的重心连线所在的方向,平面B的延展方向是指平面A(或平面C)与平面B的重心连线所在的方向,平面C的延展方向是指平面C与平面B的重心连线所在的方向。
步骤5013、对候选卷面集合中的每个候选卷面进行延展,得到侧面识别结果。
在本申请实施例中,模型展开设备对每个候选卷面进行延展,基于延展后的每个候选卷面也就获得了侧面识别结果。这里,模型展开设备基于侧面的性质(比如,曲率,存在弯曲度,所包括的平面的单位法线向量处于同一面内,所包括的平面是连通的,与放置平面垂直,等等)对每个候选卷面进行延展,以获得至少一个侧面,并将延展出的至少一个侧面确定为侧面识别结果。
需要说明的是,模型展开设备对平面集合进行识别来获得侧面识别结果时,可以基于延展候选卷面实现,还可以通过曲率等信息实现,等等,本申请实施例对此不作限定。
步骤5014、基于平面集合和侧面识别结果,获得至少一类表面识别结果。
在本申请实施例中,当模型展开设备通过识别平面集合确定出侧面识别结果之后,如果平面集合中除了侧面识别结果对应的平面外不再存在剩余平面,则将侧面识别结果确定为至少一类表面识别结果;当模型展开设备从平面集合中确定出侧面识别结果之后,如果平面集合中除了侧面识别结果对应的平面外还存在剩余平面,则该剩余平面即为顶面和底面中的至少一种,从而,将侧面识别结果和剩余平面确定为至少一类表面识别结果。
可以理解的是,通过延展候选卷面获得侧面识别结果,并获得至少一类表面识别结果的过程中,由于延展后的候选卷面是类柱状体模型的基础结构,包括了全局信息,从而,能够提升侧面识别结果的准确度,进而能够提升至少一类表面识别结果的准确度,也就能够提升模型展开的效果。
在本申请实施例中,步骤5013可通过步骤50131至步骤50133(图中未示出)实现;也就是说,模型展开设备对候选卷面集合中的每个候选卷面进行延展,得到侧面识别结果,包括步骤50131至步骤50133,下面对各步骤分别进行说明。
步骤50131、将与候选卷面集合中每个候选卷面相邻的平面,确定为待延展面。
在本申请实施例中,模型展开设备对候选卷面集合中的每个候选卷面进行延展时,先获取与每个候选卷面相邻的所有平面,并将与每个候选卷面相邻的所有平面确定为待延展面;接着判断该待延展面是否为用于延展该候选卷面的平面。
需要说明的是,待延展面可以是另一候选卷面中的平面,还可以是不属于任一候选卷面的平面,又可以是两者的组合,等等,本申请实施例对此不作限定。
步骤50132、基于待延展面对应的延展方向差和拟合误差中的至少一种,迭代延展候选卷面。
在本申请实施例中,模型展开设备基于延展方向差和拟合误差中的至少一种对待延展面进行合理性判定;其中,延展方向差是指待延展面中的平面与候选卷面之间的方向差,拟合误差是指待延展面中的平面与候选卷面对应的法线平面拟合差。
需要说明的是,当基于延展方向差来迭代延展候选卷面时,每次延展过程中,模型展开设备获取待延展面中的每个平面与候选卷面之间的重心连线的方向,并将获取到的该方向与该候选卷面的法线终点平面的法方向比较(比如,计算点乘值),并结合方向判断阈值,确定是否基于该平面延展候选卷面。而当基于拟合误差来迭代延展候选卷面时,每次延展过程中,模型展开设备针对待延展面中的每个面与候选卷面,获取单位法线向量的终点所拟合的面时所获得的拟合误差,并将拟合误差与误差阈值比较,以从待延展面中选择小于误差阈值且拟合误差最小的平面来延展候选卷面。
步骤50133、当满足延展结束条件时,基于迭代延展的每个候选卷面,组合为侧面识别结果。
需要说明的是,延展结束条件是指无相邻的平面,或者,是指相邻的平面不满足延展方向差和拟合误差中至少一种的约束条件(比如,延展方向差和拟合误差中的至少一种大于对应的阈值)。这里,模型展开设备可以直接将迭代延展的每个候选卷面确定为至少一个侧面,来获得侧面识别结果;还可以通过对迭代延展的各个候选卷面进行处理(比如,筛选,合并等)后再确定侧面识别结果。
可以理解的是,由于卷面(迭代延展后的候选卷面)是基于延展方向延展得到的,从而能够提升延展的准确度;另外,通过拟合误差对候选卷面进行延展来获得卷面,使得卷面中各个平面的单位法线向量的终点尽可能的落在了同一面内,符合侧面的法线方向对应的特征,从而,能够提升侧面识别的准确度。
在本申请实施例中,步骤5013可通过步骤50134和步骤50135(图中未示出)实现;也就是说,模型展开设备对候选卷面集合中的每个候选卷面进行延展,得到侧面识别结果,包括步骤50134和步骤50135,下面对各步骤分别进行说明。
步骤50134、对候选卷面集合中的每个候选卷面进行延展,得到初步卷面集合。
在本申请实施例中,模型检测设备将延展后的每个候选卷面称为初步卷面;从而,针对候选卷面集合,所获得的为初步卷面集合。
步骤50135、基于初步卷面集合的每个初步卷面所对应的相邻平面数量和卷度中的至少一种,对初步卷面集合进行筛选,得到侧面识别结果。
在本申请实施例中,模型检测设备获取每个初步卷面中的每个平面所对应的相邻平面的数量,并基于初步卷面中每个平面对应的相邻平面的数量,确定初步卷面的相邻平面数量;其中,该相邻平面数量可以是每个平面的相邻平面的数量,还可以是最大的相邻平面的数量,等等,本申请实施例对此不作限定。当模型检测设备基于相邻平面数量筛选初步卷面集合时,可以筛选掉相邻平面数量大于数量阈值(比如,3)的初步卷面。另外,模型检测设备获取每个初步卷面的卷度,当模型检测设备基于卷度筛选初步卷面集合时,可以筛选掉卷度不在指定卷度范围(比如,2π,π等)的初步卷面。
需要说明的是,相邻平面数量是指初步卷面中的每个平面所对应的相邻平面的数量,卷度是指初步卷面中的平面对应的法线投影度数的变化量。
在本申请实施例中,步骤50134之后还包括步骤50136和步骤50137(图中未示出);也就是说,模型展开设备对候选卷面集合中的每个候选卷面进行延展,得到初步卷面集合之后,该模型展开方法还包括步骤50136和步骤50137,下面对各步骤分别进行说明。
步骤50136、基于初步卷面集合的每个初步卷面所对应的卷面法线方向和卷面边界,从初步卷面集合中,确定待合并卷面。
需要说明的是,卷面法线方向是指初步卷面的法线终点平面所对应的法线的方向,卷面边界是指初步卷面的边界。
在本申请实施例中,模型展开设备基于每个初始卷面的卷面法线方向,获取初步卷面集合中卷面法线方向一致和相反的多个初步卷面,并将卷面法线方向一致和相反的多个初步卷面确定为初始待合并卷面。接着模型展开设备从初始待合并卷面中筛选卷面边界一致的多个初步卷面,并将从初始待合并卷面中筛选出的卷面边界一致的多个初步卷面,确定为待合并卷面。
步骤50137、对初步卷面集合中的待合并卷面进行合并,得到侧面识别结果。
需要说明的是,模型展开设备对待合并卷面进行合并的过程可以是迭代的;也就说,当合并后的初步卷面集合中仍然存在满足卷面法线方向和卷面边界的约束条件的情况时,模型展开设备继续进行待合并卷面的合并。
可以理解的是,通过对初步卷面集合进行合并,实现了卷面法线方向一致和相反、以及卷面边界一致的多个初步卷面的合并,提升了获得的卷面的完整性。
在本申请实施例中,步骤502可通过步骤5021和步骤5022(图中未示出)实现;也就是说,模型展开设备基于至少一类表面识别结果,组合出至少一个类柱状体模型,包括步骤5021和步骤5022,下面对各步骤分别进行说明。
步骤5021、从至少一类表面识别结果中,确定满足指定拓扑结构的初始组合结果。
需要说明的是,指定拓扑结构是指顶面与侧面连接、侧面与底面连接、以及连接边界是全连接的结构。
在本申请实施例中,模型展开设备基于指定拓扑结构对至少一类表面识别结果中的侧面进行组合;如果至少一类表面识别结果中还包括底面,则底面是与侧面连接的;而如果至少一类表面识别结果中还包括底面和顶面,则底面和顶面均是与侧面连接的;从而,模型展开设备将无顶面和底面连接的侧面确定为立面体,将底面、以及与底面连接的侧面确定为瓶状体,将底面和顶面、以及与底面和顶面均连接的侧面共同确定为柱状体;如此,也就完成了对至少一类表面识别结果的组合,获得了初始组合结果。
步骤5022、基于初始组合结果,确定至少一个类柱状体模型。
在本申请实施例中,模型展开设备可以将初始组合结果直接确定为至少一个类柱状体模型;还可以对初始组合结果进行优化后来获得至少一个类柱状体模型;等等,本申请实施例对此不作限定。
需要说明的是,对初始组合结果的优化过程,可以是当模型展开设备确定初始组合结果中的组合连通体包括多个拼接组合时,基于指定面积比例和表面几何关系中的至少一种,确定至少一个类柱状体模型;其中,指定面积比例是指侧面与正面之间的面积比例阈值,正面包括底面和顶面中的至少一种;表面几何关系是指底面、侧面和顶面之间的几何关系,比如,顶面和底面平行,侧面和顶面底面分别垂直;其中,组合连通体是指侧面与底面的组合,或者侧面与底面、以及与顶面的组合;拼接组合可以是侧面与底面的拼接组合,或者是侧面与底面、以及与顶面的拼接组合。
在本申请实施例中,步骤503可通过步骤5031和步骤5032(图中未示出)实现;也就是说,模型展开设备对每个类柱状体模型进行模型展开,得到与至少一个类柱状体模型对应的至少一个模型展开结果,包括步骤5031和步骤5032,下面对各步骤分别进行说明。
步骤5031、针对每个类柱状体模型中的每类目标表面,确定最短切割线。
需要说明的是,目标表面是指侧面、底面和顶面中的至少一种;也就是说,模型展开设备针对每类表面分别进行UV展开。这里,对每类目标表面进行UV展开时,获取最短切割线来切割展开每类目标表面,以降低切割展开的结果平铺到UV空间时的形变量。
步骤5032、基于最短切割线对对应的目标表面进行切割,得到与每个类柱状体模型对应的模型展开结果,并获得与至少一个类柱状体模型对应的至少一个模型展开结果。
需要说明的是,每类表面的切割展开的过程类似;也就是说,侧面、顶面和底面的切割展开的过程类似。这里,当模型展开设备针对每个类柱状体模型中的每类表面均完成了切割展开时,也就获得了与每个类柱状体模型对应的模型展开结果;从而获得与至少一个类柱状体模型对应的至少一个模型展开结果。其中,模型展开结果包括至少一类表面的切割展开结果。
在本申请实施例中,步骤5031中模型展开设备针对每个类柱状体模型中的每类目标表面,确定最短切割线,包括步骤50311至步骤50314,下面对各步骤分别进行说明。
步骤50311、获取每个类柱状体模型中的每类目标表面所对应的展开面集合。
在本申请实施例中,模型展开设备还用于对三维网格模型进行UV岛拆解,并从获得的UV岛拆解结果中确定每个类目标表面所对应的UV岛,这里称为展开面集合;其中,展开面集合中的每个展开面即为一个UV岛。
需要说明的是,模型展开设备可以在对每个类柱状体模型进行补全后再进行模型展开;比如,当一个平面确定为类状体模型的顶面之后,而该平面所属的UV岛还包括另一平面,则将该另一平面也确定为类状体模型的顶面,从而完成基于UV岛对类柱状体模型的补全。
还需要说明的是,模型展开设备可以基于每个类柱状体模型的面积大小依次选择面积最大的类柱状体模型进行模型展开,如此,能够实现UV展开的显著性;另外,当类柱状体模型与其他的类柱状体模型存在重叠时,通过优先选择面积最大的类柱状体模型进行模型展开,也就无需对重叠的类柱状体模型中较小的类柱状体模型进行模型展开,降低了模型展开的资源消耗,且能够提升模型展开的效果。
参见图7,图7是本申请实施例提供的一种示例性的UV岛拆解示意图;如图7所示,示出了三维网格模型7-1通过拆解UV岛,获得的拆解结果7-2。
步骤50312、获取目标表面在类柱状体模型中的各个目标表面边界。
需要说明的是,模型展开设备将目标表面对应在类柱状体模型中,来获取对应的所有边界,也就获得了各个目标表面边界。比如,当类柱状体模型为圆柱体,且目标表面指圆柱侧面时,各个目标表面边界为圆柱体的上侧面边界和下侧面边界;而如果圆柱侧面包括一个洞形结构(比如虚拟窗户的形状结构),则各个目标表面边界为圆柱体的上侧面边界和下侧面边界、以及洞形结构的边界。
步骤50313、基于展开面集合中各个展开面的长度和公共边,确定各个目标表面边界对应的候选切割线集合。
在本申请实施例中,在展开面集合中,模型展开设备将展开面的公共边作为边,并将公共边的点作为顶点,构建带边长权重的无向图;并通过无向图计算各个目标表面边界之间两两目标表面边界的最短路径,并将计算得到的最短路径称为候选切割线;从而,针对各个目标表面边界能够获得由候选切割线构成的候选切割线集合。
步骤50314、从候选切割线集合中,确定最短切割线。
在本申请实施例中,模型展开设备基于指定信息从候选切割线集合中确定最短切割线;其中,指定信息比如为可见割线长度、软边割线长度、硬边缝线长度、不规则形状(比如,环,多洞,细长条等形状)数量、角度形变量、面积形变量、以及切线总长度减去缝线长度中的至少一种;并且,指定信息越小该候选切割线越好。
可以理解的是,通过在类柱状体模型上,寻找尽量短的切割线,将类柱状体模型切割展开,能够降低切割展开的结果平铺到UV空间时的形变量。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。该示例性应用描述了通过全局分析来识别出虚拟建筑模型的类柱状体(称为类柱状体模型),并对这些类柱状体(称为至少一个类柱状体模型)进行UV展开的过程;其中,类柱状体是指立面建筑体(称为立面体)、柱状体和瓶状体;类柱状体的识别包括平面识别、侧面识别和拼装组合。
下面说明平面识别。
需要说明的是,虚拟建筑模型是三维网格模型,包括多个多边形面(称为各个网格面);而虚拟建筑模型的多个多边形面至少用于组成侧面,还可以用于组成顶面和底面中的至少一种,平面识别是指整合虚拟建筑模型的多个多边形面的过程。平面识别时,服务器(称为模型展示设备)基于多边形面的法线方向对虚拟建筑模型的多个多边形面进行聚类。聚类过程中,首先,在虚拟建筑模型M的多个多边形面中随机选择未归类的多边形面F(称为目标网格面)。接着,以多边形面F为起点进行相邻面(即为存在公共边的两个多边形面)的广度优先遍历(即为迭代遍历),遍历的规则是计算遍历到的多边形面的法线向量与多边形面F的法线向量之间的点乘值(称为法线方向比较结果),若点乘的值(称为法线方向差)大于指定点乘阈值(称为方向差阈值),则确定遍历到的多边形面与多边形面F属于同一类。如此聚类,直至虚拟建筑模型M的所有多边形面均已归类,聚类结束。这里,在所有的聚类结果(称为各类网格面集合)中,将每个聚类结果(称为每类网格面集合)合并为一个平面片(称为整合面,又称为平面);此时,也就完成了平面识别;易知,每个平面片可以是侧面的部分,还可以是顶面,又可以是底面。
参见图8,图8是本申请实施例提供的一种示例性的平面识别结果;如图8所示,虚拟建筑模型8-1中的多个多边形面被整合为一个一个的平面片,示例性地示出了平面片8-11至平面片8-13。
可以理解的是,通过平面识别获得的平面片,简化了虚拟建筑模型,能够提升虚拟建筑模型的后续处理效率。另外,通过法线方向对多边形面进行整合来得到平面片,在不改变多边形面的性质的情况下仍能够确保平面片泛用性。
下面说明侧面识别。
需要说明的是,侧面是指类柱状体中的圆柱面、棱柱面、以及不规则(比如,即非圆柱面又非棱柱面)的建筑立面等。这里,通过识别卷面来实现侧面的识别;其中,卷面是指单位法线向量的终点落在同一平面内的一组连通多边形面;卷面中各个面的单位法线向量终点拟合而成的平面称为法线终点平面;卷度是指通过计算卷面中的每个面在法线终点平面上的投影,并沿着卷面中的边界面逆时针遍历整个卷面而获得的投影变化的度数;延展方向是指卷面中的当前面、以及与该当前面相邻的面之间的重心连线所在的方向。
在侧面识别的过程中,可以通过穷尽多边形面实现,还可以以平面识别结果为基础实现。以平面识别结果为基础进行侧面识别时,能够提升侧面识别效率;另外,由于虚拟建筑模型中的平面片往往为四边形,有利于后续的卷面识别,从而能够提升卷面识别的准确度。
首先,在平面识别结果中,服务器识别出由三个相邻的平面片组成的初始卷面。其次,从识别出的各个初始卷面中,筛选出延展方向与法线终点平面近似平行(方向差小于方向差阈值)的候选卷面。
然后,服务器针对每个候选卷面,根据与候选卷面相邻的平面片对该候选卷面进行延展。延展的条件包括延展方向约束和拟合误差约束;其中,延展方向约束是指通过确定与当前候选卷面相邻的平面片,并计算所确定的平面片与当前候选卷面对应的延展方向的向量,若当前候选卷面的法线终点平面的法向量与延展方向的向量的点乘小于指定阈值,则确定该平面片为当前候选卷面的延展面(属于待延展面);拟合误差约束是指通过确定与当前候选卷面相邻的至少一个平面片,并计算所确定的每个平面片的单位法线向量终点与当前候选卷面的法线终点平面之间的拟合误差,得到至少一个拟合误差,将最小的且小于误差阈值的拟合误差所对应的平面片,确定为当前候选卷面的延展面。迭代进行延展,直至无相邻的平面片,或者所确定的相邻的平面片不满足延展方向约束和拟合误差约束时停止延展。这里,当完成了对每个候选卷面的延展,也就获得了初步的卷面识别结果。这里,候选卷面的延展过程中,每个平面片仅属于一个延展后的候选卷面。
可以理解的是,通过延展方向约束和拟合误差约束延展候选卷面,能够使得延展后的候选卷面中各个面的单位法线向量终点尽可能的落在同一平面内;以及延展方向尽可能的与延展后的候选卷面的法线终点平面平行。
接着,服务器对获得的初步识别结果进行筛选,筛选掉包括超过两个相邻的平面片的卷面,使得卷面中每个面至多有两个相邻的平面片,以及筛选掉不满足卷度阈值约束(比如,卷度为2π,卷度为π)的卷面。
最后,服务器对得到的筛选结果进行卷面合并。合并时,将法线终点平面的法线方向一致和相反的、且边界完全一致的两个卷面,合并为一个卷面,合并后的卷面即为侧面。这里,合并可以是迭代进行的,即合并后如果仍然存在法线终点平面的法线方向一致或相反的、且边界完全一致的两个卷面,则继续进行合并。
可以理解的是,通过合并卷面,减少了卷面的数量,能够提升后续拼装组合的效率。
示例性地,参见图9,图9是本申请实施例提供的一种示例性的侧面识别结果示意图;如图9所示,虚拟建筑模型9-1中,示例性地示出了侧面9-11和侧面9-12。
可以理解的是,由于卷面是虚拟建筑模型的全局信息,因此,通过识别卷面来获得侧面,能够提升侧面的准确度。
下面说明拼装组合。
需要说明的是,在平面识别结果中,除了识别出的侧面,所剩下的平面片即为顶面和底面中的至少一种。这里,服务器对侧面和剩下的平面片进行拼装组合,以获得完整结构的类柱状体。
首先,服务器在进行拼装组合时,是基于类柱状体的拓扑结构进行的。
需要说明的是,类柱状体的拓扑结构是指顶面与侧面相连,侧面与底面相连,并且相连的连接关系是全连接的,即相邻两部分的边界一致。
另外,服务器在基于类柱状体的拓扑结构进行拼装组合后,由于针对一个连通体可以识别出多个柱状体或瓶状体(比如,立方体可以是多种不同侧面与顶面、以及底面组合的柱状体),因此再添加显著性约束,即从同一连通体对应的拼装组合出的多个组合中筛选出一种组合;比如,选择侧面分别与顶面、以及底面的面积相差最大的一种组合,或者选择侧面分别与顶面、以及底面的面积比例在指定比例范围内的组合。
此外,服务器在基于类柱状体的拓扑结构进行拼装组合后,针对柱状体还可以增加顶面和底面之间的平行约束。
需要说明的是,通过拼装组合,可以得到三种类型的类柱状体;一种是同时包括侧面、顶面和底面的柱状体;另一种是包括侧面和底面的瓶状体;再一种是包括侧面的建筑立面(称为立面体)。
示例性地,参见图10,图10是本申请实施例提供的一种示例性的拼装组合结果的示意图;如图10所示,柱状体10-1、瓶状体10-2和建筑立面10-3均为拼装组合出的类柱状体。
下面说明UV展开。
需要说明的是,UV展开是指服务器对拼装组合出的类柱状体中的顶面、侧面和底面分别切割展开的过程。这里,以侧面的展开为例进行说明。
首先,服务器对虚拟建筑模型进行UV岛拆解,并根据拆解的UV岛(称为展开面集合)对类柱状体进行补全和筛选。
接着,服务器基于侧面面积,对识别出的类柱状体进行倒序排序。
然后,服务器对倒序排序后的每个类柱状体进行UV展开处理。这里,如果待处理的当前类柱状体与其他类柱状体有重叠,则排序靠后的类柱状体不进行UV展开处理。
需要说明的是,服务器计算当前类柱状体的侧面在虚拟建筑模型中的所有边界(称为各个目标表面边界),并对当前类柱状体的侧面所对应的UV岛,构建带边长权重的无向图G,以及通过无向图G计算所有边界中两两边界之间的最短路径;将计算得到的所有最短路径组合为候选切线;易知,当前类柱状体的侧面所对应的UV岛中,除了候选切线之外的公共边为缝线组合;其中,当服务器构建带边长权重的无向图G时,将当前类柱状体的侧面所对应的UV岛中的公共边作为无向图G的边,以公共边的交点为无向图G的顶点。如此确定最短割线,能够使得类柱状体中的侧面尽量拼接到一起,即至多一条割线就可以实现侧面的UV展开。
再后,服务器可以基于指定信息对候选切线组合(称为候选切割线集合)进行排序,并基于排序出的优先结果将候选切线组合存储在优先队列中。其中,指定信息是指可见割线长度、软边割线长度、硬边缝线长度、不规则形状(比如,环,多洞,细长条等形状)数量、角度形变量、面积形变量、以及切线总长度减去缝线长度中的至少一种;并且,指定信息越小该候选切线越好。
最后,服务器从优先队列中依次获取候选切线进行检测,以检测切割效果(比如,是否有交叠,是否存在翻转,是否规则(包括环,多洞,细长条等形状),是否扭曲(扭曲值是否大于指定扭曲值),等等);从而确定当前类柱状体的侧面的切线(称为最短切割线),进而基于确定的切线对当前类柱状体的侧面进行UV展开。
需要说明的是,顶面和底面的UV展开过程,与侧面的UV展开类似,这里不进行重复描述。
示例性地,参见图11,图11是本申请实施例提供的示例性的UV展开结果示意图一;如图11所示,针对立面体结构的虚拟建筑模型11-1,切割展开后获得的为UV展开结果11-2。
参见图12,图12是本申请实施例提供的示例性的UV展开结果示意图二;如图12所示,针对瓶状体结构的虚拟建筑模型12-1,切割展开后获得的为UV展开结果12-2和UV展开结果12-3。
参见图13,图13是本申请实施例提供的示例性的UV展开结果示意图三;如图13所示,针对虚拟建筑模型13-1,采用拆解UV岛、UV岛预拼接和UV岛拼接时,获得的为UV展开结果13-2;而采用本申请实施例提供的模型展开方法,切割展开后获得的为UV展开结果13-3。易知,UV展开结果13-2中存在侧面与顶面过度拼接的问题,而UV展开结果13-3解决了侧面与顶面过度拼接的问题。
参见图14,图14是本申请实施例提供的示例性的UV展开结果示意图四;如图14所示,针对三维网格模型14-1,采用拆解UV岛、UV岛预拼接和UV岛拼接时,获得的为UV展开结果14-2;而采用本申请实施例提供的模型展开方法,切割展开后获得的为UV展开结果14-3。易知,UV展开结果14-2中存在侧面拼接不全的问题,而UV展开结果14-3解决了侧面拼接不全的问题。
参见图15,图15是本申请实施例提供的示例性的UV展开结果示意图五;如图15所示,针对三维网格模型15-1,切割展开后获得的为UV展开结果15-2。
可以理解的是,UV展开是针对识别出的类柱状体进行的,而类柱状体属于全局信息,从而能够提升UV展开的效果;且简化了UV展开的流程,能够提升UV展开的效率。
在本申请实施例中,为了降低UV岛的数量,还可以将UV展开后的侧面与顶面、以及底面继续进行拼接。
示例性地,参见图16,图16是本申请实施例提供的示例性的UV展开结果示意图六;如图16所示,针对三维网格模型16-1,UV展开结果16-2是对侧面、顶面和底面分别进行UV展开后的结果,包括侧面对应的两部分:UV展开结果16-21和UV展开结果16-22,顶面对应的UV展开结果16-23,以及底面对应的UV展开结果16-24。UV展开结果16-3是对侧面、顶面和底面分别进行UV展开后的结果继续拼接后获得的结果,是一个完整的部分。
下面继续说明本申请实施例提供的模型展开装置455的实施为软件模块的示例性结构,在一些实施例中,如图4所示,存储在存储器450的模型展开装置455中的软件模块可以包括:
表面识别模块4551,用于对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,所述平面集合包括用于构成所述三维网格模型的各个平面,至少一类所述表面识别结果至少包括侧面识别结果;
结果组合模块4552,用于基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,其中,所述类柱状体模型为至少包括侧面结构的模型;
模型展开模块4553,用于对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果;
结果确定模块4554,用于将至少一个所述模型展开结果确定为所述三维网格模型的展开结果。
在本申请实施例中,所述模型展开装置455还包括网格整合模块4555,用于基于法线方向,对所述三维网格模型中的各个网格面进行整合,得到整合面集合,其中,所述网格面是所述三维网格模型的网格数据单元,所述整合面集合中的每个整合面包括至少一个所述网格面;将所述整合面集合确定为所述平面集合。
在本申请实施例中,所述网格整合模块4555,还用于从所述三维网格模型的各个所述网格面中,选择未归类的目标网格面;在各个所述网格面对应的未归类的所述网格面中,从所述目标网格面开始迭代遍历与所述目标网格面相邻的网格面;基于遍历到的所述网格面与所述目标网格面之间的所述法线方向的比较结果,对遍历到的所述网格面进行归类;将迭代得到的每类网格面集合整合为平面,直至各个所述网格面均已归类,得到与各类所述网格面集合对应的所述平面集合。
在本申请实施例中,所述网格整合模块4555,还用于基于遍历到的所述网格面的所述法线方向与所述目标网格面的所述法线方向,确定法线方向差;当所述法线方向的比较结果是指所述法线方向差小于方向差阈值时,将遍历到的所述网格面归类至所述目标网格面所对应的所述网格面集合中。
在本申请实施例中,所述表面识别模块4551,还用于从所述三维网格模型的所述平面集合中,识别出初始卷面集合,其中,在所述初始卷面集合的每个初始卷面中,每个所述平面的单位法线向量的终点均处于同一法线终点平面,且所述初始卷面包括指定数量个连通的所述平面;从所述初始卷面集合中,筛选所述法线终点平面与每个延展方向均平行的候选卷面集合,其中,所述延展方向是基于所述平面与对应相邻的所述平面之间的重心连线确定的;对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果;基于所述平面集合和所述侧面识别结果,获得至少一类所述表面识别结果。
在本申请实施例中,所述表面识别模块4551,还用于将与所述候选卷面集合中每个所述候选卷面相邻的所述平面,确定为待延展面;基于所述待延展面对应的延展方向差和拟合误差中的至少一种,迭代延展所述候选卷面,其中,所述延展方向差是指所述待延展面与所述候选卷面之间的方向差,所述拟合误差是指所述待延展面与所述候选卷面对应的法线平面拟合差;当满足延展结束条件时,基于迭代延展的每个所述候选卷面,确定所述侧面识别结果,其中,所述延展结束条件是指无相邻的所述平面,或者,是指相邻的所述平面不满足所述延展方向差和所述拟合误差中至少一种的约束条件。
在本申请实施例中,所述表面识别模块4551,还用于对所述候选卷面集合中的每个所述候选卷面进行延展,得到初步卷面集合;基于所述初步卷面集合的每个初步卷面所对应的相邻平面数量和卷度中的至少一种,对所述初步卷面集合进行筛选,得到所述侧面识别结果,其中,所述相邻平面数量是指所述初步卷面中的每个所述平面所对应的相邻所述平面的数量,所述卷度是指所述初步卷面中的所述平面对应的法线投影度数的变化量。
在本申请实施例中,所述表面识别模块4551,还用于基于所述初步卷面集合的每个初步卷面所对应的卷面法线方向和卷面边界,从所述初步卷面集合中,确定待合并卷面,其中,所述卷面法线方向是指所述初步卷面的所述法线终点平面所对应的法线的方向,所述卷面边界是指所述初步卷面的边界;对所述初步卷面集合中的所述待合并卷面进行合并,得到所述侧面识别结果。
在本申请实施例中,所述结果组合模块4552,还用于从至少一类所述表面识别结果中,确定满足指定拓扑结构的初始组合结果,其中,所述指定拓扑结构是指顶面与侧面连接、侧面与底面连接、以及连接边界是全连接的结构;基于所述初始组合结果,确定至少一个所述类柱状体模型。
在本申请实施例中,所述结果组合模块4552,还用于当所述初始组合结果中的组合连通体包括多个拼接组合时,基于指定面积比例和表面几何关系中的至少一种,确定至少一个所述类柱状体模型,其中,指定面积比例是指侧面与正面之间的面积比例阈值,所述正面包括底面和顶面中的至少一种,所述表面几何关系是指底面、侧面和顶面之间的几何关系。
在本申请实施例中,所述模型展开模块4553,还用于针对每个所述类柱状体模型中的每类目标表面,确定最短切割线,其中,所述目标表面是指侧面、底面和顶面中的至少一种;基于所述最短切割线对对应的所述目标表面进行切割,得到与每个所述类柱状体模型对应的所述模型展开结果,并获得与至少一个所述类柱状体模型对应的至少一个所述模型展开结果。
在本申请实施例中,所述模型展开模块4553,还用于获取每个所述类柱状体模型中的每类所述目标表面所对应的展开面集合;获取所述目标表面在所述类柱状体模型中的各个目标表面边界;基于所述展开面集合中各个展开面的长度和公共边,确定各个所述目标表面边界对应的候选切割线集合;从所述候选切割线集合中,确定所述最短切割线。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备(称为模型展开设备)的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模型展开方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的模型展开方法,例如,如图5示出的模型展开方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算机设备上执行(此时,这一个计算机设备即模型展开设备),或者在位于一个地点的多个计算机设备上执行(此时,位于一个地点的多个计算机设备即模型展开设备),又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行(此时,分布在多个地点且通过通信网络互连的多个计算机设备即模型展开设备)。
综上所述,本申请实施例通过对三维网格模型中的至少一个类柱状体模型进行识别,并通过展开每个类柱状体模型来获得三维网格模型的展开结果的过程中,由于识别出的类柱状体模型是一个完整的几何结构模型,是全局信息,因此实现了一种基于全局信息自动地展开三维网格模型的过程,从而,能够在确保模型展开效果的前提下提升模型展开的智能性,进而能够提升模型展开的效率和效果。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (14)
1.一种模型展开方法,其特征在于,所述方法包括:
对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,所述平面集合包括用于构成所述三维网格模型的各个平面,至少一类所述表面识别结果至少包括侧面识别结果;
基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,其中,所述类柱状体模型为至少包括侧面结构的模型;
对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果;
将至少一个所述模型展开结果确定为所述三维网格模型的展开结果;
其中,所述对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,包括:从所述三维网格模型的所述平面集合中,识别出初始卷面集合,其中,在所述初始卷面集合的每个初始卷面中,每个所述平面的单位法线向量的终点均处于同一法线终点平面,且所述初始卷面包括指定数量个连通的所述平面;从所述初始卷面集合中,筛选所述法线终点平面与每个延展方向均平行的候选卷面集合,其中,所述延展方向是基于所述平面与对应相邻的所述平面之间的重心连线确定的;对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果;基于所述平面集合和所述侧面识别结果,获得至少一类所述表面识别结果。
2.根据权利要求1所述的方法,其特征在于,所述对三维网格模型的平面集合进行识别,得到至少一类表面识别结果之前,所述方法还包括:
基于法线方向,对所述三维网格模型中的各个网格面进行整合,得到整合面集合,其中,所述网格面是所述三维网格模型的网格数据单元,所述整合面集合中的每个整合面包括至少一个所述网格面;
将所述整合面集合确定为所述平面集合。
3.根据权利要求2所述的方法,其特征在于,所述基于法线方向,对所述三维网格模型中的各个网格面进行整合,得到整合面集合,包括:
从所述三维网格模型的各个所述网格面中,选择未归类的目标网格面;
在各个所述网格面对应的未归类的所述网格面中,从所述目标网格面开始迭代遍历与所述目标网格面相邻的所述网格面;
基于遍历到的所述网格面与所述目标网格面之间的所述法线方向的比较结果,对遍历到的所述网格面进行归类;
将迭代得到的每类网格面集合整合为平面,直至各个所述网格面均已归类,得到与各类所述网格面集合对应的所述平面集合。
4.根据权利要求3所述的方法,其特征在于,所述基于遍历到的所述网格面与所述目标网格面之间的所述法线方向的比较结果,对遍历到的所述网格面进行归类之前,所述方法还包括:
基于遍历到的所述网格面的所述法线方向与所述目标网格面的所述法线方向,确定法线方向差;
所述基于遍历到的所述网格面与所述目标网格面之间的所述法线方向的比较结果,对遍历到的所述网格面进行归类,包括:
当所述法线方向的比较结果是指所述法线方向差小于方向差阈值时,将遍历到的所述网格面归类至所述目标网格面所对应的所述网格面集合中。
5.根据权利要求1所述的方法,其特征在于,所述对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果,包括:
将与所述候选卷面集合中每个所述候选卷面相邻的所述平面,确定为待延展面;
基于所述待延展面对应的延展方向差和拟合误差中的至少一种,迭代延展所述候选卷面,其中,所述延展方向差是指所述待延展面与所述候选卷面之间的方向差,所述拟合误差是指所述待延展面与所述候选卷面对应的法线平面拟合差;
当满足延展结束条件时,基于迭代延展的每个所述候选卷面,确定所述侧面识别结果,其中,所述延展结束条件是指无相邻的所述平面,或者,是指相邻的所述平面不满足所述延展方向差和所述拟合误差中至少一种的约束条件。
6.根据权利要求1所述的方法,其特征在于,所述对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果,包括:
对所述候选卷面集合中的每个所述候选卷面进行延展,得到初步卷面集合;
基于所述初步卷面集合的每个初步卷面所对应的相邻平面数量和卷度中的至少一种,对所述初步卷面集合进行筛选,得到所述侧面识别结果,其中,所述相邻平面数量是指所述初步卷面中的每个所述平面所对应的相邻所述平面的数量,所述卷度是指所述初步卷面中的所述平面对应的法线投影度数的变化量。
7.根据权利要求6所述的方法,其特征在于,所述对所述候选卷面集合中的每个所述候选卷面进行延展,得到初步卷面集合之后,所述方法还包括:
基于所述初步卷面集合的每个初步卷面所对应的卷面法线方向和卷面边界,从所述初步卷面集合中,确定待合并卷面,其中,所述卷面法线方向是指所述初步卷面的所述法线终点平面所对应的法线的方向,所述卷面边界是指所述初步卷面的边界;
对所述初步卷面集合中的所述待合并卷面进行合并,得到所述侧面识别结果。
8.根据权利要求1至4任一项所述的方法,其特征在于,所述基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,包括:
从至少一类所述表面识别结果中,确定满足指定拓扑结构的初始组合结果,其中,所述指定拓扑结构是指顶面与侧面连接、侧面与底面连接、以及连接边界是全连接的结构;
基于所述初始组合结果,确定至少一个所述类柱状体模型。
9.根据权利要求8所述的方法,其特征在于,所述基于所述初始组合结果,确定至少一个所述类柱状体模型,包括:
当所述初始组合结果中的组合连通体包括多个拼接组合时,基于指定面积比例和表面几何关系中的至少一种,确定至少一个所述类柱状体模型,其中,所述指定面积比例是指侧面与正面之间的面积比例阈值,所述正面包括底面和顶面中的至少一种,所述表面几何关系是指底面、侧面和顶面之间的几何关系。
10.根据权利要求1至4任一项所述的方法,其特征在于,所述对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果,包括:
针对每个所述类柱状体模型中的每类目标表面,确定最短切割线,其中,所述目标表面是指侧面、底面和顶面中的至少一种;
基于所述最短切割线对所述目标表面进行切割,得到与每个所述类柱状体模型对应的所述模型展开结果,并获得与至少一个所述类柱状体模型对应的至少一个所述模型展开结果。
11.根据权利要求10所述的方法,其特征在于,所述针对每个所述类柱状体模型中的每类目标表面,确定最短切割线,包括:
获取每个所述类柱状体模型中的每类所述目标表面所对应的展开面集合;
获取所述目标表面在所述类柱状体模型中的各个目标表面边界;
基于所述展开面集合中各个展开面的长度和公共边,确定各个所述目标表面边界对应的候选切割线集合;
从所述候选切割线集合中,确定所述最短切割线。
12.一种模型展开装置,其特征在于,所述模型展开装置包括:
表面识别模块,用于对三维网格模型的平面集合进行识别,得到至少一类表面识别结果,其中,所述平面集合包括用于构成所述三维网格模型的各个平面,至少一类所述表面识别结果至少包括侧面识别结果;
结果组合模块,用于基于至少一类所述表面识别结果,组合出至少一个类柱状体模型,其中,所述类柱状体模型为至少包括侧面结构的模型;
模型展开模块,用于对每个所述类柱状体模型进行模型展开,得到与至少一个所述类柱状体模型对应的至少一个模型展开结果;
结果确定模块,用于将至少一个所述模型展开结果确定为所述三维网格模型的展开结果;
所述表面识别模块,还用于从所述三维网格模型的所述平面集合中,识别出初始卷面集合,其中,在所述初始卷面集合的每个初始卷面中,每个所述平面的单位法线向量的终点均处于同一法线终点平面,且所述初始卷面包括指定数量个连通的所述平面;从所述初始卷面集合中,筛选所述法线终点平面与每个延展方向均平行的候选卷面集合,其中,所述延展方向是基于所述平面与对应相邻的所述平面之间的重心连线确定的;对所述候选卷面集合中的每个候选卷面进行延展,得到所述侧面识别结果;基于所述平面集合和所述侧面识别结果,获得至少一类所述表面识别结果。
13.一种模型展开设备,其特征在于,所述模型展开设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至11任一项所述的模型展开方法。
14.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令用于被处理器执行时,实现权利要求1至11任一项所述的模型展开方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210367641.5A CN114445564B (zh) | 2022-04-08 | 2022-04-08 | 一种模型展开方法、设备、存储介质及计算机程序产品 |
PCT/CN2023/076120 WO2023193523A1 (zh) | 2022-04-08 | 2023-02-15 | 一种模型展开方法、装置、电子设备、计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210367641.5A CN114445564B (zh) | 2022-04-08 | 2022-04-08 | 一种模型展开方法、设备、存储介质及计算机程序产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114445564A CN114445564A (zh) | 2022-05-06 |
CN114445564B true CN114445564B (zh) | 2022-06-17 |
Family
ID=81359263
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210367641.5A Active CN114445564B (zh) | 2022-04-08 | 2022-04-08 | 一种模型展开方法、设备、存储介质及计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114445564B (zh) |
WO (1) | WO2023193523A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114445564B (zh) * | 2022-04-08 | 2022-06-17 | 腾讯科技(深圳)有限公司 | 一种模型展开方法、设备、存储介质及计算机程序产品 |
CN115294258B (zh) * | 2022-09-26 | 2022-12-23 | 腾讯科技(深圳)有限公司 | 三维模型的展开方法、装置、设备及计算机可读存储介质 |
CN116977530B (zh) * | 2023-07-11 | 2024-08-27 | 优酷网络技术(北京)有限公司 | 三维模型的处理方法、装置、电子设备及介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867082A (zh) * | 2012-08-29 | 2013-01-09 | 西北工业大学 | 一种复合材料铺层展开方法 |
CN105354353A (zh) * | 2015-09-28 | 2016-02-24 | 武汉开目信息技术有限责任公司 | 一种基于mbd模型的加工特征识别和建模方法 |
CN107248193A (zh) * | 2017-05-22 | 2017-10-13 | 北京红马传媒文化发展有限公司 | 二维平面与虚拟现实场景进行切换的方法、系统及装置 |
CN108596827A (zh) * | 2018-04-18 | 2018-09-28 | 太平洋未来科技(深圳)有限公司 | 三维人脸模型生成方法、装置及电子设备 |
CN109801299A (zh) * | 2019-01-22 | 2019-05-24 | 中国科学院大学 | 基于二次曲面拟合的模型的交互式分割方法、系统、装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1185833A (ja) * | 1997-09-05 | 1999-03-30 | Toshiba Corp | 3次元板金cad/cam変換装置及び該装置のプログラムを記録した記録媒体 |
JP3224375B2 (ja) * | 1999-11-16 | 2001-10-29 | 株式会社アマダ | 板金モデルの成形形状認識方法及びその装置並びに板金モデルの成形形状認識方法のプログラムを記憶した記憶媒体 |
US8638334B2 (en) * | 2008-08-22 | 2014-01-28 | Adobe Systems Incorporated | Selectively displaying surfaces of an object model |
CN108876921B (zh) * | 2017-05-08 | 2021-09-17 | 腾讯科技(深圳)有限公司 | 三维装扮模型处理方法、装置、计算机设备和存储介质 |
CN113496539B (zh) * | 2021-06-11 | 2023-08-15 | 山东大学 | 一种基于三维网格模型参数设计的纹理贴图方法及系统 |
CN114445564B (zh) * | 2022-04-08 | 2022-06-17 | 腾讯科技(深圳)有限公司 | 一种模型展开方法、设备、存储介质及计算机程序产品 |
-
2022
- 2022-04-08 CN CN202210367641.5A patent/CN114445564B/zh active Active
-
2023
- 2023-02-15 WO PCT/CN2023/076120 patent/WO2023193523A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102867082A (zh) * | 2012-08-29 | 2013-01-09 | 西北工业大学 | 一种复合材料铺层展开方法 |
CN105354353A (zh) * | 2015-09-28 | 2016-02-24 | 武汉开目信息技术有限责任公司 | 一种基于mbd模型的加工特征识别和建模方法 |
CN107248193A (zh) * | 2017-05-22 | 2017-10-13 | 北京红马传媒文化发展有限公司 | 二维平面与虚拟现实场景进行切换的方法、系统及装置 |
CN108596827A (zh) * | 2018-04-18 | 2018-09-28 | 太平洋未来科技(深圳)有限公司 | 三维人脸模型生成方法、装置及电子设备 |
CN109801299A (zh) * | 2019-01-22 | 2019-05-24 | 中国科学院大学 | 基于二次曲面拟合的模型的交互式分割方法、系统、装置 |
Non-Patent Citations (2)
Title |
---|
Simplification and unfolding of 3D mesh models: review and evaluation of existing tools;Zohreh SohrabiGharehTappeh et al.;《Procedia CIRP》;20210602;121-126 * |
一种面向激光刻蚀加工的三维贴图点位生成算法的研究与实现;潘曦;《中国优秀硕士学位论文全文数据库 基础科学辑》;20200215;A005-274 * |
Also Published As
Publication number | Publication date |
---|---|
CN114445564A (zh) | 2022-05-06 |
WO2023193523A1 (zh) | 2023-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114445564B (zh) | 一种模型展开方法、设备、存储介质及计算机程序产品 | |
WO2023197779A1 (zh) | 三维模型的展开方法、装置、设备及存储介质 | |
US20110267347A1 (en) | Systems and methods for primitive intersection in ray tracing | |
WO2022166681A1 (zh) | 一种虚拟场景生成方法、装置、设备和存储介质 | |
CN115294258B (zh) | 三维模型的展开方法、装置、设备及计算机可读存储介质 | |
US20230274480A1 (en) | Method and system for populating a digital environment using a semantic map | |
CN114202622B (zh) | 虚拟建筑生成方法、装置、设备及计算机可读存储介质 | |
CN112090078B (zh) | 游戏角色移动控制方法、装置、设备和介质 | |
CN106557457A (zh) | 一种基于qt的自动生成跨平台复杂流程图的系统 | |
CN110148203A (zh) | 游戏中虚拟建筑模型的生成方法、装置、处理器及终端 | |
CN110070616A (zh) | 存储器、基于gis平台的统计数据呈现方法、装置和设备 | |
WO2023226583A1 (zh) | 对象处理方法、装置、设备、计算机可读存储介质及计算机程序产品 | |
CN109492070A (zh) | 一种城市宏观场景三维可视化平台系统 | |
WO2023169095A1 (zh) | 数据处理方法、装置、设备以及介质 | |
CN103257876A (zh) | C3游戏地图动态加载的方法 | |
CN113448573A (zh) | 一种基于图片像素围栏的点击交互方法和装置 | |
CN112053440A (zh) | 单体化模型的确定方法及通信装置 | |
WO2022161319A1 (zh) | 一种阴影贴图的处理方法、装置、设备及计算机可读存储介质、程序产品 | |
US20240177396A1 (en) | Object processing method and apparatus, device, computer-readable storage medium, and computer program product | |
US10643395B2 (en) | Real-time spatial authoring in augmented reality using additive and subtractive modeling | |
CN118069106B (zh) | 批量添加碰撞体积的方法 | |
CN111858987A (zh) | Cad图像的问题查看方法、电子设备及相关产品 | |
CN113058268B (zh) | 蒙皮数据生成方法、装置、设备及计算机可读存储介质 | |
CN115496876A (zh) | 一种建筑物建模方法、地图渲染方法、装置和设备 | |
CN117235824A (zh) | 共面拟合方法、装置、设备及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40070916 Country of ref document: HK |