CN117315375B - 虚拟部件分类方法、装置、电子设备及可读存储介质 - Google Patents

虚拟部件分类方法、装置、电子设备及可读存储介质 Download PDF

Info

Publication number
CN117315375B
CN117315375B CN202311542206.2A CN202311542206A CN117315375B CN 117315375 B CN117315375 B CN 117315375B CN 202311542206 A CN202311542206 A CN 202311542206A CN 117315375 B CN117315375 B CN 117315375B
Authority
CN
China
Prior art keywords
determining
virtual
component
target
triangular
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
Application number
CN202311542206.2A
Other languages
English (en)
Other versions
CN117315375A (zh
Inventor
胡楷模
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202311542206.2A priority Critical patent/CN117315375B/zh
Publication of CN117315375A publication Critical patent/CN117315375A/zh
Application granted granted Critical
Publication of CN117315375B publication Critical patent/CN117315375B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/30Computing systems specially adapted for manufacturing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请提供了一种虚拟部件分类方法、装置、电子设备及可读存储介质;方法包括:获取待分类的虚拟部件,并确定虚拟部件的表面积;确定虚拟部件的虚拟包围盒,以及虚拟包围盒在坐标轴方向上的跨度;当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于第一面积阈值,确定虚拟部件的近似结构,近似结构中包括多个三角面片;从多个三角面片中确定目标三角面片,目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值;基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件。通过本申请,能够提高对虚拟部件的分类效率和准确率。

Description

虚拟部件分类方法、装置、电子设备及可读存储介质
技术领域
本申请涉及数据处理技术,尤其涉及一种虚拟部件分类方法、装置、电子设备及可读存储介质。
背景技术
在生成虚拟模型,得到虚拟模型的拓扑结构之后,为了使得虚拟模型能够具有更好的拓扑结构以及更合理的面分布,需要利用重拓扑技术重新构建和表现一个模型。在自动重拓扑过程中,需要首先对虚拟模型中的虚拟部件分类得到精细结构体和非精细结构,才能够在后续处理流程中针对精细结构体和非精细结构体采取不同策略进行处理。在相关技术中对虚拟部件的分类需要采取人工识别,工作量大,且效率低下。
发明内容
本申请实施例提供一种虚拟部件分类方法、装置、电子设备及可读存储介质,能够提高对虚拟部件的分类效率和准确率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种虚拟部件分类方法,所述方法包括:
获取待分类的虚拟部件,并确定所述虚拟部件的表面积;
确定所述虚拟部件的虚拟包围盒,以及所述虚拟包围盒在坐标轴方向上的跨度;
当所述虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且所述表面积大于第一面积阈值,确定所述虚拟部件的近似结构,所述近似结构中包括多个三角面片;
从所述多个三角面片中确定目标三角面片,所述目标三角面片的最小高度值小于高度阈值,或者所述目标三角面片的面积小于第二面积阈值;
基于所述目标三角面片确定所述虚拟部件的分类结果,所述分类结果为第一类部件或第二类部件,所述第一类部件的表面积小于所述第二类部件的表面积,且所述第一类部件的纹理结构的精细度高于所述第二类部件。
本申请实施例提供一种虚拟部件分类装置,包括:
表面积确定模块,用于获取待分类的虚拟部件,并确定所述虚拟部件的表面积;
包围盒确定模块,用于确定所述虚拟部件的虚拟包围盒,以及所述虚拟包围盒在坐标轴方向上的跨度;
最简近似模块,用于当所述虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且所述表面积大于第一面积阈值,确定所述虚拟部件的近似结构,所述近似结构中包括多个三角面片;
目标三角面片确定模块,用于从所述多个三角面片中确定目标三角面片,所述目标三角面片的最小高度值小于高度阈值,或者所述目标三角面片的面积小于第二面积阈值;
分类模块,用于基于所述目标三角面片确定所述虚拟部件的分类结果,所述分类结果为第一类部件或第二类部件,所述第一类部件的表面积小于所述第二类部件的表面积,且所述第一类部件的纹理结构的精细度高于所述第二类部件。
本申请实施例提供一种电子设备,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现本申请实施例提供的虚拟部件分类方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机程序或计算机可执行指令,用于被处理器执行时实现本申请实施例提供的虚拟部件分类方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或计算机可执行指令,述计算机程序或计算机可执行指令被处理器执行时,实现本申请实施例提供的虚拟部件分类方法。
本申请实施例具有以下有益效果:
第一方面,在获取待分类的虚拟部件后,首先确定虚拟部件的表面积和虚拟包围盒,计算虚拟包围盒在坐标轴方向上的跨度。只有当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于预设的面积阈值时,才确定虚拟部件的近似结构。因为在表面积小于第一面积阈值时,或者虚拟包围盒在坐标轴方向上的跨度小于预设的跨度阈值时,可以直接提前判断该虚拟部件为第一类部件,无需进行后续的最简近似步骤,大大提高了虚拟部件的分类效率。
第二方面,在确定虚拟部件的近似结构后,近似结构中包括多个三角面片,从多个三角面片中确定目标三角面片,基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。由于目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值,所以目标三角面片足够小,通常情况下,虚拟部件的结构越精细,那么对它进行逼近的格子或者三角形就必须越小,所以可以基于虚拟部件的近似结构中目标三角面片的占比,对其进行分类。也就是说,利用本申请实施例提供的虚拟部件分类方法,可以自动地将虚拟部件进行分类,得到第一类部件或第二类部件的分类结果,能够提高对虚拟部件的分类效率和准确率。
附图说明
图1A是游戏角色模型以及游戏角色模型上的部件的示意图;
图1B是游戏角色模型中的部分精细结构体部件的示意图;
图1C是在不同最小误差下降阈值的控制下,对模型进行最简逼近的结果示意图;
图1D是采用VSA方法对连通体部件进行最简逼近的结果示例图;
图2是本申请实施例提供的模型处理系统的网络架构示意图;
图3是本申请实施例提供的服务器400的结构示意图;
图4A是本申请实施例提供的虚拟部件分类方法的流程示意图一;
图4B是本申请实施例提供的虚拟部件分类方法的流程示意图二;
图4C是本申请实施例提供的虚拟部件分类方法的流程示意图三;
图4D是本申请实施例提供的虚拟部件分类方法的流程示意图四;
图4E是本申请实施例提供的虚拟部件分类方法的流程示意图五;
图4F是本申请实施例提供的虚拟部件分类方法的流程示意图六;
图4G是本申请实施例提供的虚拟部件分类方法的流程示意图七;
图5是采用CGAL中的Smooth Shape方法对鞋子部件进行光滑处理的结果示意图;
图6是游戏角色模型集合A上得到的部分精细结构体示例图;
图7是游戏角色模型集合B上得到的部分精细结构体示例图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本申请实施例所使用的所有的技术和科学术语与所属技术领域的技术人员通常理解的含义相同。本申请实施例中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)部件,也称为组件(component),指一个独立的连通体网格,它通常可以表示一个独立的语义(例如鞋带、项链带等),但不与其它部件共享几何元素(例如面、边、顶点等)。
2)模型(model),指由一个或者多个部件构成、可以表达更高层语义的多连通体网格集合。如图1A所示,为一个游戏角色的模型,它可以包含鞋带、项链带、衣服系带、上衣、裤子、裸模等多个部件。
3)精细结构体(Fine Structure),在游戏角色模型上广泛存在诸如项链、手环、耳坠、鞋带等较为精细的部件,这些部件由于体积和表面积较小、并且具有精细的纹理结构,所以需要提前进行预处理,才可以在后续过程中采用给定大小的格子进行重拓扑。将上述这类部件为精细结构体。参见图1B,图1B为部分精细结构体部件的示例图。
4)网格逼近方法(Variational Shape Approximation, VSA),是一种基于k均值聚类算法(k-means)扩展的用于网格逼近的算法。
5)组件最简逼近(Component Simplest Approximation),组件逼近是指采用更少或者更简单的几何元素,在满足给定度量指标的前提下对原始部件进行近似的方法。一般而言,组件逼近所引起的几何或者拓扑变化往往大于组件简化。组件最简逼近为在给定最小误差下降阈值(min error drop)的情况下,采用VSA对原始部件进行逼近的过程。参见图1C,图1C为在不同最小误差下降阈值控制下,采用VSA对一个连通体部件进行组件最简逼近的结果对比,其中6%、4%、2%都为最小误差下降阈值。图1D展示了对于两个典型的虚拟部件,采用VSA方法进行组件最简逼近的过程和最终结果。对于每个虚拟组件,图1D中从左到右依次是:对原始网格的划分、锚点顶点和边、输出的逼近结果。
6)最小误差下降阈值(min error drop),用百分比表示当前步骤的组件最简逼近引起的误差下降相较于初始误差的比例。
7)包围盒(Bounding Box),是一种求解离散点集最优包围空间的算法,基本思想是用体积稍大且特性简单的几何体(称为包围盒)来近似地代替复杂的几何对象。
8)坐标轴对齐包围盒 (Axis-Aligned Bounding Box,AABB)(二维),由几何体中所有元素的坐标范围所确定的矩形。该包围盒是所有和坐标轴平行或者垂直的矩形中,能够恰好包住该集合体的最小矩形。
9)CGAL,全称为“The Computational Geometry Algorithms Library”,是一整套提供了和计算几何有关的基础数据结构和算法的C++库。
为了更好地理解本申请实施例提供的虚拟部件分类方法,首先对相关技术中的部件分类方法及存在的缺点进行说明。
在自动重拓扑过程中,需要首先对游戏角色模型中的精细结构体进行准确识别,才能够在后续处理流程中针对精细结构体和非精细结构体采取不同策略进行处理。目前尚没有公开的技术方案来识别精细结构体。一个比较直观的做法就是基于二维投影逼近,其具体做法是:首先检测连通体部件的类型,例如单层、双层与柱状,然后根据不同的类型分别进行相应的处理:对于单层连通体,首先用一组有界小平面去逼近;然后对于每个有界小平面,在二维上计算其朝内的偏置(offset);接着计算其真边界(即同时为原始精细结构体的边界)附近缩小的面积。将所有小平面缩小后的面积求和,除以原始连通体的面积,如果结果小于给定阈值,则判定该单层连通体为精细结构体。对于双层连通体,可以采用法向聚类的方法,首先将其切开,变成两个单层连通体,然后采用单层连通体的判定方法进行处理。这里需要注意的是,计算面积占比时,两个单层连通体需要放在一起进行统计。对于柱状连通体,则提取其主轴方向,并沿着该方向将柱状物尽量切成两半,然后转为两个单层结构进行处理。在这个处理过程中,同样需要将两个单层连通体的缩小面积放在一起进行计算和阈值过滤。
上述基于二维投影逼近的处理方法存在几个明显的缺点:首先是这种分类未必能够覆盖所有部件类型,例如对于球状部件而言,很难将其划分为双层结构或者柱状连通体。其次,对于单层连通体而言,虽然可以采用组件逼近的方法用多个小平面进行近似,但是计算真边界则比较困难。此外,控制小平面的大小也比较困难,而这对于计算最终的缩小面积占比非常关键;再次,对于双层连通体,如果其表面存在凹凸不平的情况,那么现有的检测方法很容易失败;最后,如何鲁棒地检测柱状物体,以及如何鲁棒地确定其主轴方向,也都是具有挑战的问题。
虽然精细结构体的表现形式多种多样,比如细长物、微小物、多孔物等,但是其本质特点都是具有精细的局部或者全局结构,导致无法用给定边长的格子来逼近。因此,如果一定要在给定的误差范围内逼近精细结构体的原始部件,那么就必须用更小的格子或者三角形才能实现。通常情况下,物体的结构越精细,那么对它进行逼近的格子或者三角形就必须越小。由此可知,首先给定逼近误差,然后计算在该逼近误差范围之内,平均情况下究竟能用多大的三角形对原始部件进行逼近。如果这些三角形都比较小,那么就意味着原始部件具有精细的局部或者全局结构,即属于精细结构体。
基于此,本申请实施例提供一种虚拟部件分类方法、装置、设备、计算机可读存储介质和计算机程序产品,能够提高对虚拟部件的分类效率,下面说明本申请实施例提供的电子设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑、平板电脑,台式计算机、机顶盒、移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能手机、智能音箱、智能手表、智能电视、车载终端等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
参见图2,图2是本申请实施例提供的模型处理系统100的架构示意图,如图2所示,该模型处理系统100包括终端200、网络300和服务器400,其中,终端200通过网络300连接服务器400,网络300可以是广域网或者局域网,又或者是二者的组合。模型处理系统100还可以包括数据库500,用于存储数据,数据库500可以是独立于服务器400的,也可以是与服务器400为一体的,在图2中,以数据库500是独立于的为例进行说明。
终端200用于进行模型设计、模型渲染。终端响应于接收到的模型设计操作,确定设计出的虚拟对象的三维模型,然后终端200将三维模型发送至服务器,服务器400获取模型信息,并确定出三维模型中包括的各个部件,其中可以包括衣服部件、配饰部件、模型主体部件等,服务器400将三维模型中包括的各个部件分别确定为待分类的虚拟部件,然后利用本申请实施例提供的虚拟部件分类方法,确定虚拟部件的表面积;确定虚拟部件的虚拟包围盒,以及虚拟包围盒在坐标轴方向上的跨度;当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于预设的面积阈值,确定虚拟部件的近似结构,近似结构中包括多个三角面片;从多个三角面片中确定目标三角面片,目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值;基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。服务器400将处理后的分类结果发送至终端200,终端200基于分类结果可以进行自动重拓扑或者进行需要对精细结构体(或称为精细部件)进行特殊处理的应用,比如层次细节模型(Level of Details,LOD)生成应用等。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content DeliveryNetwork,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端200可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
参见图3,图3是本申请实施例提供的服务器400的结构示意图,图3所示的服务器400包括:至少一个处理器410、存储器450、至少一个网络接口420和用户接口430。服务器400中的各个组件通过总线系统440耦合在一起。可理解,总线系统440用于实现这些组件之间的连接通信。总线系统440除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统440。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(Digital Signal Processor,DSP),或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口430包括使得能够呈现媒体内容的一个或多个输出装置431,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口430还包括一个或多个输入装置432,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其它输入按钮和控件。
存储器450可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器450可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
存储器450包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(Read Only Memory,ROM),易失性存储器可以是随机存取存储器(Random Access Memory,RAM)。本申请实施例描述的存储器450旨在包括任意适合类型的存储器。
在一些实施例中,存储器450能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统451,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块452,用于经由一个或多个(有线或无线)网络接口420到达其它电子设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(Universal Serial Bus,USB)等;
呈现模块453,用于经由一个或多个与用户接口430相关联的输出装置431(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
输入处理模块454,用于对一个或多个来自一个或多个输入装置432之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器450中的虚拟部件分类装置455,其可以是程序和插件等形式的软件,包括以下软件模块:表面积确定模块4551、包围盒确定模块4552、最简近似模块4553、目标三角面片确定模块4554和分类模块4555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的虚拟部件分类方法方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(Application Specific Integrated Circuit,ASIC)、数字信号处理器(Digital Signal Processor,DSP)、可编程逻辑器件(Programmable LogicDevice,PLD)、复杂可编程逻辑器件(Complex Programmable Logic Device,CPLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或其它电子元件。
将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的虚拟部件分类方法。
下面,说明本申请实施例提供的虚拟部件分类方法,如前,实现本申请实施例的虚拟部件分类方法的电子设备可以是终端、服务器,又或者是二者的结合。因此下文中不再重复说明各个步骤的执行主体。
参见图4A,图4A是本申请实施例提供的虚拟部件分类方法的流程示意图,将结合图4A示出的步骤进行说明,图4A步骤的主体是服务器。
在步骤101中,获取待分类的虚拟部件,并确定虚拟部件的表面积。
在一些实施例中,首先获取待处理的虚拟模型,待处理的虚拟模型可以是虚拟角色模型、虚拟建筑模型、虚拟道具模型等,待处理的虚拟模型是由多个部件构成的,示例性地,对于一个虚拟角色模型来说,包括虚拟服装、虚拟配饰、虚拟人物等部件,将待处理的虚拟模型中的各个部件依次确定为待分类的虚拟部件。虚拟部件为一种连通体部件。在获取待分类的虚拟部件后,可以直接利用CGAL提供的库函数来计算虚拟部件的表面积。
在步骤102中,确定虚拟部件的虚拟包围盒,以及虚拟包围盒在坐标轴方向上的跨度。
在一些实施例中,先获取虚拟部件的坐标轴对齐包围盒,并将坐标轴对齐包围盒确定为该虚拟部件的虚拟包围盒。在实现时,可以利用CGAL提供的库函数计算虚拟部件的坐标轴对齐包围盒,确定虚拟部件的虚拟包围盒后,可以基于虚拟包围盒在坐标轴方向上的最大坐标和最小坐标之差,确定该虚拟包围盒在坐标轴方向上的跨度。
在一些实施例中,在图4A示出的步骤102之后,还可以执行步骤201至步骤202,下面具体说明。
在步骤201中,当第一跨度、第二跨度或第三跨度中的至少之一小于或者等于跨度阈值时,确定虚拟部件为第一类部件。
在一些实施例中,坐标轴可以包括x轴、y轴和z轴。虚拟包围盒在坐标轴方向上的跨度包括虚拟包围盒在x轴方向上的第一跨度、y轴方向上的第二跨度和z轴上的第三跨度。可以将虚拟包围盒在x轴方向上的最大x坐标减去最小x坐标,得到虚拟包围盒在x轴方向上的第一跨度;将虚拟包围盒在y轴方向上的最大y坐标减去最小y坐标,得到虚拟包围盒在y轴方向上的第二跨度;将虚拟包围盒在z轴方向上的最大z坐标减去最小z坐标,得到虚拟包围盒在z轴方向上的第三跨度。只要当任一坐标轴方向上的跨度小于或等于预设的跨度阈值时,确定虚拟部件为第一类部件。第一类部件为精细结构体。也即,第一跨度、第二跨度或第三跨度中的至少之一小于或者等于跨度阈值时,确定虚拟部件为精细结构体。
需要说明的是,本申请实施例对预设的跨度阈值不作具体限定,可以根据实际情况自行设定,例如跨度阈值可以为0.1。
在步骤202中,当虚拟部件的表面积小于或者等于第一面积阈值时,确定虚拟部件为第一类部件。
在一些实施例中,在计算出虚拟部件的表面积后,只要虚拟部件的表面积小于或者等于预设的第一面积阈值时,则确定该虚拟部件为第一类部件。第一类部件为精细结构体。
需要说明的是,本申请实施例对预设的第一面积阈值不作具体限定,可以根据实际情况自行设定,例如面积阈值可以为0.2。
实际上,虚拟模型中存在大量的精细结构体,它们或者在某个维度上跨度特别小,可以直接被判断为精细结构体,或者整个部件特别微小,明显不能用给定大小的格子进行重拓扑。由于采用组件最简逼近方法来判断虚拟部件是否为精细结构体的过程比较耗时,本申请实施例通过对虚拟部件的虚拟包围盒在坐标轴方向上的跨度以及虚拟部件的表面积做提前预判,在虚拟部件的表面积小于第一面积阈值时,或者虚拟包围盒在任一坐标轴方向上的跨度小于预设的跨度阈值时,可以直接提前判断该虚拟部件为精细结构体,无需进行后续的最简近似步骤,大大提高了虚拟部件的分类效率。测试结果表明,加入这两个预判断步骤之后,整个方法的检测效率可以提高上百倍。
下面继续参见图4A,接续步骤102进行说明。
在步骤103中,当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于预设的第一面积阈值,确定虚拟部件的近似结构,近似结构中包括多个三角面片。
在一些实施例中,当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于预设的第一面积阈值时,虚拟部件不能直接判断为第一类部件,此时,可以利用组件最简逼近方法确定虚拟部件的近似结构。其中,近似结构中包括多个三角面片,三角面片为对虚拟部件的表面的面片进行划分得到的三角形的面片。
在一些实施例中,参见图4B,步骤103可以通过下述步骤1031至步骤1035A实现,下面结合图4B进行说明。
在步骤1031中,对虚拟部件进行光滑处理,得到处理后的虚拟部件。
在一些实施例中,对虚拟部件进行光滑处理,消除虚拟部件上平坦区域的精细纹理,以得到处理后的虚拟部件。可以直接利用CGAL提供的Smooth Shape方法对虚拟部件进行光滑处理。参见图5,图5左侧为原始虚拟鞋子组件,其鞋底存在精细三维纹理,会对后续的精细结构体检测产生干扰,采用Smooth Shape方法进行光顺处理之后就可以抹平鞋底的精细三维纹理,使得鞋底的平坦区域可以用较大的三角形进行逼近,得到的处理后的虚拟鞋子组件如图5的右侧图所示。
在步骤1032中,在处理后的虚拟部件上随机确定P个第一初始采样点,并确定每个第一初始采样点对应的初始三角面片集合,P为大于1的整数。
在一些实施例中,可以直接利用CGAL提供的VSA方法对处理后的虚拟部件进行组件最简逼近,得到虚拟部件的近似结构,具体过程说明如下。
首先可以在处理后的虚拟部件表面上,随机确定P个第一初始采样点。基于P个第一初始采样点对处理后的虚拟部件表面的面片进行划分,得到每个第一初始采样点对应的初始三角面片集合。每一初始三角面片集合中可以包括至少一个初始三角面片。针对任一第一初始采样点对应的初始三角面片集合中的任一初始三角面片,该初始三角面片与该第一初始采样点的测地距离,小于该初始三角面片与其他第一初始采样点的测地距离。可以调用CGAL中库函数,将每个第一初始采样点的位置和每一初始三角面片的三个顶点的坐标作为库函数的输入,得到每个第一初始采样点与每一第一初始采样点的测地距离。针对任一初始三角面片,在确定该初始三角面片与每个第一初始采样点之间的测地距离后,从中筛选出测地距离的最小值对应的第一初始采样点,并将该初始三角面片划分进该第一初始采样点对应的初始三角面片集合中。采用上述方法将每一个初始三角面片都划分进对应的初始三角面片集合中,即得到每一初始采样点对应的初始三角面片集合。
需要说明的是,本申请实施例中P的具体取值可以基于虚拟部件的表面积大小自行设定,只要满足P为大于1的整数即可。
在步骤1033中,对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合。
在一些实施例中,每一第一目标面片集合中可以包括至少一个初始三角面片。针对任一第一目标采样点对应的第一目标面片集合中的任一初始三角面片,该初始三角面片与该第一目标采样点的测地距离,小于该初始三角面片与其他第一目标采样点的测地距离。可以利用Lloyd迭代方法对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合(patch)。这里,Lloyd迭代方法是一种聚类算法,具体过程如下:步骤a,选择合适的采样点作为第一目标采样点;步骤b,将每个初始三角面片分配给离它最近的第一目标采样点,得到每个第一初始采样点对应的初始三角面片集合;步骤c,更新聚类中心:根据当前的聚类分配情况(每个初始三角面片集合中所有初始三角面片的重心的加权平均值),重新计算采样点的位置,重新得到P个采样点;重复步骤b和步骤c,直至采样点不再发生变化或者达到预定的迭代次数,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合。
在一些实施例中,步骤1033可以通过以下步骤实现,下面具体说明。
按照下述步骤执行M次迭代,M为大于1的正整数:
确定第i次迭代得到的各个采样点对应的三角面片集合的各个加权重心,i=1,2…,M,其中,将第一初始采样点确定为第1次迭代得到的采样点;确定各个加权重心对应的三角面片集合;将各个加权重心确定为第i+1次迭代得到的各个采样点,将各个加权重心对应的三角面片集合,确定为第i+1次迭代得到的各个采样点对应的三角面片集合;将第M次迭代得到的采样点确定为第一目标采样点,并将第M次迭代得到的采样点对应的三角面片集合确定为第一目标采样点对应的第一目标面片集合。
本申请实施例中,在第1次迭代,针对每个第一初始采样点对应的初始三角面片集合,先确定该初始三角面片集合中每个初始三角面片的重心,再基于各个初始三角面片的重心确定该初始三角面片集合的加权重心。在确定初始三角面片集合的加权重心时,首先确定初始三角面片集合中每个初始三角面片的面积,然后将每个初始三角面片的重心与对应的初始三角面片的面积相乘,并将乘积进行求和,再将求和结果除以初始三角面片集合中各初始三角面片的总面积,得到对应的初始三角面片集合的加权重心。
在确定各个第一初始采样点对应的初始三角面片集合的各个加权重心后,将各个加权重心作为更新后的各个采样点,即第2次迭代得到的各个采样点。重新利用每个初始三角面片与每个采样点之间的测地距离,确定第2次迭代中各个采样点对应的三角面片集合。以此类推进行迭代,直至达到预设的迭代次数M,得到最终的采样点确定为第一目标采样点,并将第M次迭代得到的采样点对应的三角面片集合确定为第一目标采样点对应的第一目标面片集合。需要说明的是,本申请实施例对M的具体取值不加以限定,可以根据实际情况自行设定。
在步骤1034中,基于各个第一目标面片集合确定虚拟部件的第一近似结果,并确定第一近似结果与处理后的虚拟部件的第一误差值。
在一些实施例中,虚拟部件的第一近似结果包括每个第一目标面片集合的拟合结果。针对任一第一目标面片集合,可以对该第一目标面片集合进行平面拟合,第一目标面片集合中所有的初始三角面片拟合为一个平面,将该平面作为该第一目标面片集合的拟合结果。将各个第一目标面片集合的拟合结果进行求交后,得到虚拟部件的第一近似结果(如图1D中最右侧示意图)。示例性的,平面拟合的方法可以是主成分分析拟合(PrincipalComponent Analysis,PCA)等。在确定虚拟部件的第一近似结果后,针对任一第一目标面片集合,确定该第一目标面片集合的平均法向,以及该第一目标面片集合的拟合结果的法向。将该第一目标面片集合的平均法向与拟合结果的法向之间的差值取平方,得到的平方值作为该第一目标面片集合对应的逼近误差。对虚拟部件的各个第一目标面片集合对应的逼近误差求和,得到第一近似结果与虚拟部件的第一误差值。
需要说明的是,本申请实施例对法向的获取方法不作具体限定,可以参考对平面的法向的计算方法。本申请实施例对平均法向的计算方法也不作具体限定。示例性的,第一目标面片集合的平均法向可以为算数平均值,即先获取第一目标面片集合中各个初始三角面片的法向,再将各个初始三角面片的法向加和后,除以初始三角面片的总数量,得到对应的第一目标面片集合的平均法向。示例性的,第一目标面片集合的平均法向还可以为面积加权平均法向,即将每个初始三角面片的法向与对应的初始三角面片的面积相乘后,将得到的乘积加和,再除以第一目标面片集合中各初始三角面片的总面积,得到对应的第一目标面片集合的平均法向。
在步骤1035A中,当第一误差值小于预设的误差阈值,将第一近似结果确定为虚拟部件的近似结构。
在一些实施例中,若第一误差值小于预设的误差阈值,则已经完成采用更少或者更简单的集合元素,在给定的误差阈值的前提下实现对虚拟部件的近似,因此,将第一近似结果确定为虚拟部件的近似结构。
需要说明的是,本申请实施例对预设的误差阈值不作具体限定。
本申请实施例通过对虚拟部件上的采样点和采样点对应的三角面片结合进行优化处理,进而基于优化后的第一目标面片集合确定虚拟部件的第一近似结果,以及第一近似结果与处理后的虚拟部件的第一误差值,当第一误差值小于预设的误差阈值,将第一近似结果确定为虚拟部件的近似结构,实现了对不同尺度的虚拟部件的最佳近似,提高了对虚拟部件的分类精度和效率。
在一些实施例中,参见图4C,在步骤103中,步骤1034后还可以执行下述步骤1035B至步骤10391B,下面结合图4C进行说明。
在步骤1035B中,当第一误差值大于误差阈值,在处理后的虚拟部件上随机确定Q个第二初始采样点,并确定每个第二初始采样点对应的第二初始三角面片集合,其中Q为大于P的整数。
在一些实施例中,若第一误差值大于预设的误差阈值,则还未完成采用更少或者更简单的集合元素,在给定的误差阈值的前提下对虚拟部件的近似,因此,需要继续对光滑处理后的虚拟部件表面的面片进行随机采样,确定数量更多的采样点。在处理后的虚拟部件上随机确定Q个第二初始采样点,并确定每个第二初始采样点对应的第二初始三角面片集合,Q为大于P的整数。其中,确定第二初始采样点对应的第二初始三角面片集合的过程,与上述确定第一初始采样点对应的初始三角面片集合的过程基本一致,在实现时可参考确定第一初始采样点对应的初始三角面片集合的过程。
在步骤1036B中,对第二初始采样点和第二初始采样点对应的第二初始三角面片集合进行优化处理,得到Q个第二目标采样点和各个第二目标采样点对应的第二目标面片集合。
在一些实施例中,可以利用Lloyd迭代方法对第二初始采样点和第二初始采样点对应的第二初始三角面片集合进行优化处理,得到Q个第二目标采样点和各个第二目标采样点对应的第二目标面片集合(patch)。此优化处理过程与上述对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合的过程基本一致,在实现时可参考对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理的实现过程。
在步骤1037B中,基于各个第二目标面片集合确定虚拟部件的第二近似结果,并确定第二近似结果与处理后的虚拟部件的第二误差值。
在一些实施例中,可以对每个第二目标面片集合进行平面拟合,得到多个拟合结果。将多个拟合结果求交后,得到虚拟部件的第二近似结果。确定第二近似结果与进行光滑处理后的虚拟部件之间的第二误差值。上述过程与步骤1034的处理过程基本一致,在实现时可参考步骤1034的处理过程。
在步骤1038B中,确定第一误差值和第二误差值之间的误差下降值。
在一些实施例中,确定第一误差值和第二误差值之间的差值,将该差值与第一误差值的比值作为第一误差值和第二误差值之间的误差下降值。
示例性的,第一误差值为5,第二误差值为4,则第一误差值和第二误差值之间的误差下降值为(5-4)/5=20%。
在步骤1039B中,基于虚拟部件的表面积确定最小误差下降阈值,最小误差下降阈值与虚拟部件的表面积正相关。
在一些实施例中,本申请实施例对最小误差下降阈值不作具体限定,但要满足最小误差下降阈值与虚拟部件的表面积呈正相关,即虚拟部件的表面积越大,要求其对应的最小误差下降阈值越大,这样有利于较大的虚拟部件忽略掉无关紧要的细节;虚拟部件的表面积越小,要求最小误差下降阈值越小,这样有利于保持微小精细结构体的几何细节。采用上述动态参数调整的方法,可以实现不同尺度的虚拟部件都能够得到最佳近似效果。表1给出了一种示例性的虚拟部件的表面积与最小误差下降阈值之间的对应关系。
表1 虚拟部件的表面积A与最小误差下降阈值之间的对应关系
在步骤10391B中,当误差下降值小于最小误差下降阈值时,将第二近似结果确定为虚拟部件的近似结构。
在一些实施例中,若第一误差值和第二误差值之间的误差下降值小于最小误差下降阈值,则表征在采样点增加情况下的虚拟部件的第二近似结果,与采样点未增加时虚拟部件的第一近似结果变化较小,趋向于收敛。此时,虚拟部件的第二近似结果已经完成采用更少或者更简单的集合元素,在给定的最小误差下降阈值的前提下实现对虚拟部件的近似,因此,将第二近似结果确定为虚拟部件的近似结构。
在一些实施例中,若第一误差值和第二误差值之间的误差下降值大于或等于最小误差下降阈值,则表征在采样点增加情况下的虚拟部件的第二近似结果,与采样点未增加时虚拟部件的第一近似结果变化仍然较大。此时,重复上述步骤,在处理后的虚拟部件上随机确定R个(比Q大的整数)第二初始采样点,并确定每个第二初始采样点对应的第二初始三角面片集合,直至计算得到的误差下降值小于最小误差下降阈值时,将对应的第二近似结果确定为虚拟部件的近似结构。
示例性的,在P个第一目标采样点下得到的虚拟部件的第一近似结果,与处理后的虚拟部件的第一误差值大于误差阈值时,可以重新在处理后的虚拟部件上随机确定P+1个第二初始采样点。重复前述组件最简逼近过程,确定在P+1个第二目标采样点下得到的虚拟部件的第二近似结果,确定虚拟部件的第二近似结果与处理后的虚拟部件的第二误差值,当第二误差值与第一误差值之间的误差下降值大于或等于最小误差下降阈值时,重新在处理后的虚拟部件上随机确定P+2个第二初始采样点。重复上述迭代过程,直至计算得到的误差下降值小于最小误差下降阈值时,将此次迭代中对应的第二近似结果确定为虚拟部件的近似结构。
本申请实施例通过在虚拟部件表面上随机产生更多数量的第二目标采样点和各个第二目标采样点对应的第二目标面片集合,基于各个第二目标面片集合确定虚拟部件的第二近似结果,并确定第二近似结果与处理后的虚拟部件的第二误差值与第一误差值之间的误差下降值,当误差下降值大于最小误差下降阈值时,将第二近似结果确定为虚拟部件的近似结构,实现了对不同尺度的虚拟部件的最佳近似,提高了对虚拟部件的分类精度和效率。
下面继续参见图4A,接续步骤103进行说明。
在步骤104中,从多个三角面片中确定目标三角面片,目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值。
在一些实施例中,在确定虚拟组件的近似结构后,可以统计近似结构中三角面片的几何性质,例如三角面片的高度和面积等。首先,获取每个三角面片的最小高度值和面积。基于高度阈值、第二面积阈值以及每个三角面片的最小高度值和面积,从多个三角面片中确定目标三角面片。其中,三角面片的最小高度值可以基于面积和边长确定。
在一些实施例中,参见图4D,步骤104可以通过下述步骤1041A至步骤1043A实现,下面结合图4D进行说明。
在步骤1041A中,确定近似结构中各个三角面片的面积,基于各个三角面片的面积和边长,确定各个三角面片的最小高度值。
在一些实施例中,可以先确定近似结构中各个三角面片的面积。基于各个三角面片的面积和边长确定各个三角面片的最小高度值。其中,最小高度值与面积呈正相关。三角面片的面积可以根据三角形面积的计算方法计算得到。针对每个三角面片,首先确定该三角面片的三个边长中的最大值,作为最长边的长度。基于该三角面片的面积和最长边的长度计算得到最小高度值。示例性的,若一个三角面片的面积为A,最长边的长度为1,该三角面片的最小高度值即为
在步骤1042A中,获取预设的高度阈值。
需要说明的是,本申请实施例对高度阈值的取值不作具体限定,高度阈值可以基于实际情况由用户直接预设给定。
在一些实施例中,高度阈值可以为精细因子d与调节因子r的乘积。d越大,越大的虚拟部件会被识别为精细结构体,d越小,越小的虚拟部件会被识别为精细结构体。在自动重拓扑的应用场景下,目标网格的边长d为虚拟模型进行重拓扑时设定的参数值,是重拓扑过程中规定的目标网格的边长,可以为用户给定。调节因子也可以由用户基于实际情况设定,例如r默认为0.2。
在步骤1043A中,将多个三角面片中最小高度值小于高度阈值的三角面片确定为目标三角面片。
在一些实施例中,在确定每个三角面片的最小高度值后,可以基于高度阈值,从多个三角面片中筛选出最小高度值小于高度阈值的三角面片确定为目标三角面片。
由于精细结构体需要较多的小三角形(或者细长三角形)才能够实现组件最简逼近,因此本申请实施例通过筛选出最小高度值小于高度阈值的目标三角面片,来确定虚拟部件中的小三角形,进而可以通过目标三角面片的占比等来对虚拟部件进行分类,提高虚拟部件的分类效率。
在一些实施例中,参见图4E,步骤104可以通过下述步骤1041B至步骤1043B实现,下面结合图4D进行说明。
在1041B中,确定近似结构中各个三角面片的第一面积。
在一些实施例中,可以利用可直接调用的库函数计算近似结构中各个三角面片的第一面积。
在1042B中,获取预设的第二面积阈值。
在一些实施例中,预设的第二面积阈值可以由精细因子d确定得到。预设的第二面积阈值与精细因子d呈正相关。示例性的,第二面积阈值为d2/2。
在1043B中,将多个三角面片中第一面积小于第二面积阈值的三角面片确定为目标三角面片。
在一些实施例中,在确定每个三角面片的第一面积后,可以基于高度阈值,从多个三角面片中筛选出第一面积小于第二面积阈值的三角面片确定为目标三角面片。
由于精细结构体需要较多的小三角形(或者细长三角形)才能够实现组件最简逼近,因此本申请实施例通过筛选出第一面积小于第二面积阈值的目标三角面片,来确定虚拟部件中的小三角形,进而可以通过目标三角面片的占比等来对虚拟部件进行分类,提高虚拟部件的分类效率。
下面继续参见图4A,接续步骤104进行说明。
在步骤105中,基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。
在一些实施例中,第一类部件为精细结构体,第二类部件为非精细结构体,因此,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。可以基于目标三角面片在虚拟部件中全部三角面片的面积占比或个数占比,来确定虚拟部件的分类结果。
本申请实施例在获取待分类的虚拟部件后,首先确定虚拟部件的表面积和虚拟包围盒,计算虚拟包围盒在坐标轴方向上的跨度,当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于预设的面积阈值时,才确定虚拟部件的近似结构,在确定虚拟部件的近似结构后,近似结构中包括多个三角面片,从多个三角面片中确定目标三角面片,基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。由于目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值,所以目标三角面片足够小,通常情况下,虚拟部件的结构越精细,那么对它进行逼近的格子或者三角形就必须越小,所以可以基于虚拟部件的近似结构中目标三角面片的占比,对其进行分类。也就是说,利用本申请实施例提供的虚拟部件分类方法,可以自动地将虚拟部件进行分类,得到第一类部件或第二类部件的分裂结果,能够提高对虚拟部件的分类效率。
在一些实施例中,参见图4F,步骤105可以通过下述步骤1051A至步骤1055A实现,下面结合图4D进行说明。
在步骤1051A中,基于近似结构中包括的多个三角面片,确定多个参考面片。
在一些实施例中,可以将近似结构中包括的各个三角面片确定为参考面片,也可以将近似结构中包括的一部分三角面片确定为参考面片。
在步骤1052A中,确定目标三角面片的第一面片个数,并确定参考面片的第二面片个数。
在一些实施例中,在确定目标三角面片后,可以统计得到目标三角面片的第一面片个数,以及参考面片的第二面片个数。若将近似结构中包括的各个三角面片确定为参考面片,参考面片的第二面片个数即为虚拟部件的近似结构中三角面片的个数。
在步骤1053A中,将第一面片个数与第二面片个数的比值确定为第一占比。
在一些实施例中,若目标三角面片为最小高度值小于高度阈值的三角面片,则第一占比为在近似结构中最小高度值小于高度阈值的三角面片的个数占比。若目标三角面片为第一面积小于第二面积阈值的三角面片,则第一占比为在近似结构中第一面积小于第二面积阈值的三角面片的个数占比。
在步骤1054A中,当第一占比大于或者等于预设的第一占比阈值时,确定虚拟部件的分类结果为第一类部件。
需要说明的是,本申请实施例对预设的第一占比阈值不加以限定,例如可以为40%。当第一占比大于或者等于预设的第一占比阈值时,说明虚拟部件中目标三角面片数量较多,存在精细结构,使得需要较多的小三角形(或者细长三角形)才能够对其进行逼近,因此可以判断该虚拟部件属于第一类部件。
在步骤1055A中,当第一占比小于第一占比阈值时,确定虚拟部件的分类结果为第二类部件。
在一些实施例中,当第一占比小于预设的第一占比阈值时,说明虚拟部件中目标三角面片数量较少,不存在精细结构,只需要大三角形就能够对其进行逼近,因此可以判断该虚拟部件属于第二类部件。
本申请实施例通过判断虚拟部件的最近似结构中目标三角面片的个数占比,来进行分类,提高了对虚拟部件的分类速度和精度。
在一些实施例中,参见图4G,步骤105可以通过下述步骤1051B至步骤1055B实现,下面结合图4D进行说明。
在步骤1051B中,基于近似结构中包括的多个三角面片,确定多个参考面片。
在一些实施例中,可以将近似结构中包括的各个三角面片确定为参考面片,也可以将近似结构中包括的一部分三角面片确定为参考面片。
在步骤1052B中,将各个目标三角面片的第一面积的总和,确定为第一总面积,将多个参考面片的第一面积的总和,确定为第二总面积。
在一些实施例中,可以将各个目标三角面片的第一面积进行求和处理,得到第一总面积。将多个参考面片的第一面积进行求和处理,得到第二总面积。
在步骤1053B中,将第一总面积与第二总面积的比值确定为第二占比。
在一些实施例中,若目标三角面片为最小高度值小于高度阈值的三角面片,则第二占比为在近似结构中最小高度值小于高度阈值的三角面片的面积占比。若目标三角面片为第一面积小于第二面积阈值的三角面片,则第二占比为在近似结构中第一面积小于第二面积阈值的三角面片的面积占比。
在步骤1054B中,当第二占比大于或者等于预设的第二占比阈值时,确定虚拟部件的分类结果为第一类部件。
需要说明的是,本申请实施例对预设的第二占比阈值不加以限定。当第二占比大于或者等于预设的第二占比阈值时,说明虚拟部件中目标三角面片所占面积较大,存在精细结构,使得需要较多的小三角形(或者细长三角形)才能够对其进行逼近,因此可以判断该虚拟部件属于第一类部件。
在步骤1055B中,当第二占比小于第二占比阈值时,确定虚拟部件的分类结果为第二类部件。
需要说明的是,当第二占比小于预设的第二占比阈值时,说明虚拟部件中目标三角面片所占面积较小,不存在精细结构,只需要大三角形就能够对其进行逼近,因此可以判断该虚拟部件属于第二类部件。
在一些实施例中,步骤1051A或1051B皆可以通过下述步骤10511至步骤10514实现,下面结进行说明。
在步骤10511中,将近似结构中包括的各个三面面片确定为参考面片。
在步骤10512中,或者,获取近似结构中包括的各个三角面片的第一面积。
在一些实施例中,可以通过可直接调用的库函数来计算近似结构中包括的各个三角面片的第一面积。
在步骤10513中,将各个三角面片按照第一面积进行升序排序,得到排序后的各个三角面片。
在一些实施例中,将各个三角面片按照第一面积从小到大进行排序,得到排序后的各个三角面片。
在步骤10514中,将排序后的各个三角面片中除去前N个和后N个三角面片之外的其它三角面片,确定为参考面片,N是基于三角面片总个数确定出的整数值。
在一些实施例中,N可以基于三角面片总个数以及每个三角面片的第一面积决定。示例性的,可以通过将排序后的各个三角面片中除去前N个和后N个三角面片之外的其它三角面片,实现则去除面积最小的10%的三角面片,以及面积最大的10%的三角面片。
本申请实施例通过考虑在统计参考片面时,去除面积最小的10%的三角面片,以及面积最大的10%的三角面片,以消除这些特殊情况双层结构边界处的小三角形以及平坦区域的超大三角形对统计结果的影响,提高对虚拟部件的分类准确性。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供的虚拟部件分类方法,可以应用到任意需要对精细结构体(或称为精细部件)进行特殊处理的应用。示例性地,可以应用于自动重拓扑应用、层次细节模型(Level of Details,LOD)生成应用等。例如在LOD生成应用中,可以利用本申请实施例提供的虚拟部件分类方法率先识别出第一类部件,也即识别出精细结构体,那么在低层次细节就可以直接将这些精细结构体进行删除,这样可以达到更好地简化模型或者场景的目标,也符合美术人工的通常做法。
再例如在自动重拓扑应用中,需要首先对游戏角色模型中的精细结构体进行准确识别,才能够在后续处理流程中针对精细结构体和非精细结构体采取不同策略进行处理。可以首先利用本申请实施例提供的虚拟部件分类方法,将虚拟模型中包括的多个部件分解为精细结构体集合(也即第一类部件集合)和非精细结构体集合(也即第二类部件集合),其中非精细结构体集合可以直接采用已有的重拓扑方法进行处理。但是对于精细结构体项目,需要提前做简化等预处理。通常人工的预处理方式主要分为如下四类:1)共面简化,即用曲面去拟合原来的精细结构体或者精细结构体组合;2)删除,对于某些比较小的精细结构体或者和非精细结构体距离很近的精细结构体,人工会在低模中将其直接删除;3)一般简化,即将原始精细结构体采用网格简化的方式直接进行简化,但是保留其独立连通体的特点;4)一般简化及合并,将原始精细结构体采用网格简化的方式进行简化之后,和邻近结构体进行合并。为了模拟上述各种人工预处理方式,一个关键环节就是对精细结构体进行识别。在该项目的开发过程中,本申请实施例提供的虚拟部件分类方法可以将分类结果作为后续共面拟合、共轴拟合和一般合并简化工具的输入。测试结果表明,本申请实施例提供的虚拟部件分类方法得到的分类结果十分接近于人工识别的结果,因此可以实现在这一环节的自动化,达到降低人工成本、实现美术自动化的目标。
下面对本申请实施例提供的虚拟部件分类方法的实现步骤进行说明。
步骤一,给定一个连通体部件(虚拟部件)后,计算该连通体部件的坐标轴对齐包围盒,然后计算该包围盒分别在x,y,z方向上的跨度,如果任意一个坐标轴方向上的跨度小于给定跨度阈值(默认值为0.1),那么直接返回true值,得到该连通体部件为精细结构体的分类结果。
步骤二,计算该连通体部件的表面积,如果其表面积小于给定面积阈值(默认值为0.2),那么直接返回true值,得到该连通体部件为精细结构体的分类结果。
通过步骤一和步骤二可以提前预判连通体部件是否为精细结构体,是因为整体而言,采用组件最简逼近方法来判断该连通体组件是否为精细结构体的过程比较耗时。实际上,游戏角色模型中存在大量的精细结构体,它们或者在某个维度上跨度特别小,可以直接被判断为精细结构体;或者整个部件特别微小,明显不能用给定大小的格子进行重拓扑。测试结果表明,加入步骤一和步骤二这两个预判断步骤之后,本申请实施例提供的虚拟部件分类方法的检测效率可以提高上百倍。
步骤三,在上述步骤一和步骤二均无法判断连通体部件为精细结构体的情况下,采用组件最简逼近方法来判断该连通体部件是否为精细结构体,并返回相应的分类结果。
在给定重拓扑目标各自的边长d时,组件最简逼近方法可以通过以下步骤实现:
步骤31),采用CGAL中提出的Smooth Shape方法对输入的连通体部件进行光滑处理,其主要目的是消除平坦区域的精细纹理。
步骤32),采用CGAL中实现的VSA方法对光滑处理后的连通体部件进行最简逼近,得到最简逼近结果(近似结构)。其实现过程如下:
步骤a,在连通体部件表面随机产生P个第一初始采样点,并据此对连通体部件表面的面片进行划分,使得初始三角面片归属于距它最近的第一初始采样点。
步骤b,采用Lloyd迭代方法对步骤a中的划分进行优化,形成多个第一目标面片集合(patch)。
步骤c,对于每个第一目标面片集合采用平面代理(平面拟合)进行逼近,并用这些代理来构造对原始网格的逼近,得到第一最简逼近结果(第一近似结果)。
步骤d,确定第一最简逼近结果与光滑处理后的连通体部件之间的第一误差值。
步骤e,在连通体部件表面随机产生Q第二初始采样点,并确定每个第二初始采样点对应的第二初始三角面片集合。
步骤f,采用Lloyd迭代方法对步骤e中的第二初始三角面片集合进行优化,形成多个第二目标面片集合。
步骤g,对于每个第二目标面片集合采用平面代理(平面拟合)进行逼近,并用这些代理来构造对原始网格的逼近,得到第二近似结果。
步骤h,确定第二近似结果与光滑处理后的连通体部件之间的第二误差值。
步骤i,确定第一误差值和第二误差值之间的误差下降值,当误差下降值小于最小误差下降阈值,将第二近似结果确定为连通体部件的最简逼近结果。
步骤33),在得到连通体部件的最简逼近结果之后,统计最简逼近结果中三角形的几何性质,并基于三角形的几何性质确定连通体部件的分类结果。
在一个实施例中,对于最简逼近结果中的三角形集合(多个三角面片),统计其最小高度值小于高度阈值的三角形所占的个数比例,其中r为调节因子(默认值为0.2)。当最小高度值小于高度阈值的三角形个数占比大于第一占比阈值(默认为40%)时,说明该连通体部件存在精细结构,使得需要较多的小三角形(或者细长三角形)才能够对其进行逼近,因此可以判断该连通体部件属于精细结构体;否则就说明该连通体部件不属于精细结构体。
在一个实施例中,对于最简逼近结果中的三角形集合(多个三角面片),统计其最小高度值小于高度阈值的三角形所占的面积比例,当最小高度值小于高度阈值的三角形面积占比大于第二占比阈值时,说明该连通体部件属于精细结构体,否则就说明该连通体部件不属于精细结构体。本申请实施例使得面积较小的短粗裁片也能够被识别为精细结构体。
在一个实施例中,对于最简逼近结果中的三角形集合(多个三角面片),统计其第一面积小于第二面积阈值的三角形所占的个数比例,当第一面积小于第二面积阈值的三角形个数占比大于第一占比阈值时,说明该连通体部件属于精细结构体,否则就说明该连通体部件不属于精细结构体。本申请实施例适合判断逼近结果为各向同性的连通体部件是否为精细结构体。
在一个实施例中,对于最简逼近结果中的三角形集合(多个三角面片),统计其第一面积小于第二面积阈值的三角形所占的面积比例,当第一面积小于第二面积阈值的三角形面积占比大于第二占比阈值时,说明该连通体部件属于精细结构体,否则就说明该连通体部件不属于精细结构体。本申请实施例适合判断逼近结果为各向同性的连通体部件是否为精细结构体。
在一个实施例中,存在去除特殊三角形的统计方式:为了消除薄双层结构边界处的小三角形以及平坦区域的超大三角形对统计结果的影响,可以考虑在统计三角形的面积或者最小高度值的时候,去除面积最小的10%的三角形,以及面积最大的10%的三角形,以消除这些特殊情况对统计结果的影响。
本申请实施例可以在自动重拓扑项目的精细结构体识别和检测模块中实现,并在部分游戏角色模型上面验了该方法的有效性。参见图6(每个子图中,左侧为原始模型,中间为采用本申请实施例提供的虚拟部件分类方法识别得到的精细结构体部件,右侧为人工处理得到的低模结果),图6展示了在游戏角色模型集合A上得到的部分典型部件的分类结果。在左上侧的模型上,项链、衣服飘带、牛仔裤毛边、鞋带等部件都被正确识别成了精细结构体;在右上侧的女性模型上,衣服上存在的大量饰物也都被正确识别;左下侧模型上的耳坠、手环等在后续需要进行共面和共轴拟合的部件也都被正确识别;右下侧是天使模型,其帽子和肩部存在不少羽毛饰物,这些在人工预处理方法中都会被进行共面拟合,采用本申请实施例提出的虚拟部件分类方法,这些也都被正确识别为了精细结构体,这给后续的自动重拓扑工具中的所有跨连通体简化工具提供了良好的输入。参见图7(每个子图中,左侧为原始模型,中间为采用本申请实施例提供的虚拟部件分类方法识别得到的精细结构体部件,右侧为人工处理得到的低模结果),图7展示了在游戏角色模型集合B上得到的部分精细结构体示例。在左侧的模型中,其裤腿上的布条可以被正确识别;在右侧的模型上,裤子上的精细锁扣也被正确识别。通过观察人工预处理方法,可以发现这些被识别出来的结构体或者被直接删除,或者被进行共面拟合,或者进行了一般简化。这说明,通过本申请实施例的虚拟部件分类方法识别出来的精细结构体也往往是人工需要重点预处理的结构体。
上述实验结果表明,本申请实施例提供的虚拟部件分类方法能够精准识别出后续需要进行特殊预处理的精细结构体,与人工生成低模的精细结构输入高度一致。因此十分适合作为后续跨连通体简化工具(包含共面拟合工具、共轴拟合工具以及一般聚合工具等)的输入,从而可以采用自动化算法来较好地模拟人工重拓扑的过程,实现降低人工成本、提高美术自动化率的目标。
本申请实施例提出的虚拟部件分类方法,首先在给定误差度量的情况下对原始模型的各个部件进行最简逼近,然后统计逼近结果中三角形的几何性质,最后确定当前部件是否属于精细结构体。该方法无需识别原始部件的拓扑类型(如单层结构、双层结构、柱状结构)等,具有较好的通用性和识别效果。
下面继续说明本申请实施例提供的虚拟部件分类装置455的实施为软件模块的示例性结构,在一些实施例中,如图3示,存储在存储器450的虚拟部件分类装置455中的软件模块可以包括:
表面积确定模块4554,用于获取待分类的虚拟部件,并确定虚拟部件的表面积;
包围盒确定模块4552,用于确定虚拟部件的虚拟包围盒,以及虚拟包围盒在坐标轴方向上的跨度;
最简近似模块4553,用于当虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且表面积大于第一面积阈值,确定虚拟部件的近似结构,近似结构中包括多个三角面片;
目标三角面片确定模块4554,用于从多个三角面片中确定目标三角面片,目标三角面片的最小高度值小于高度阈值,或者目标三角面片的面积小于第二面积阈值;
分类模块4555,用于基于目标三角面片确定虚拟部件的分类结果,分类结果为第一类部件或第二类部件,第一类部件的表面积小于第二类部件的表面积,且第一类部件的纹理结构的精细度高于第二类部件。
在一些实施例中,虚拟包围盒在坐标轴方向上的跨度包括虚拟包围盒在x轴方向上的第一跨度、y轴方向上的第二跨度和z轴上的第三跨度。虚拟部件分类装置455还包括预判模块,用于当第一跨度、第二跨度或第三跨度中的至少之一小于或者等于跨度阈值时,确定虚拟部件为第一类部件;当虚拟部件的表面积小于或者等于第一面积阈值时,确定虚拟部件为第一类部件。
在一些实施例中,最简近似模块4553,还用于对虚拟部件进行光滑处理,得到处理后的虚拟部件;在处理后的虚拟部件上随机确定P个第一初始采样点,并确定每个第一初始采样点对应的初始三角面片集合,P为大于1的整数;对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合;基于各个第一目标面片集合确定虚拟部件的第一近似结果,并确定第一近似结果与处理后的虚拟部件的第一误差值;当第一误差值小于预设的误差阈值,将第一近似结果确定为虚拟部件的近似结构。
在一些实施例中,最简近似模块4553,还用于当第一误差值大于误差阈值,在处理后的虚拟部件上随机确定Q个第二初始采样点,并确定每个第二初始采样点对应的第二初始三角面片集合,其中Q为大于P的整数;对第二初始采样点和第二初始采样点对应的第二初始三角面片集合进行优化处理,得到Q个第二目标采样点和各个第二目标采样点对应的第二目标面片集合;基于各个第二目标面片集合确定虚拟部件的第二近似结果,并确定第二近似结果与处理后的虚拟部件的第二误差值;确定第一误差值和第二误差值之间的误差下降值;基于虚拟部件的表面积确定最小误差下降阈值,最小误差下降阈值与虚拟部件的表面积正相关;当误差下降值小于最小误差下降阈值时,将第二近似结果确定为虚拟部件的近似结构。
在一些实施例中,最简近似模块4553,还用于按照下述步骤执行M次迭代,M为大于1的正整数:确定第i次迭代得到的各个采样点对应的三角面片集合的各个加权重心,i=1,2…,M,其中,将第一初始采样点确定为第1次迭代得到的采样点;确定各个加权重心对应的三角面片集合;将各个加权重心确定为第i+1次迭代得到的各个采样点,将各个加权重心对应的三角面片集合,确定为第i+1次迭代得到的各个采样点对应的三角面片集合;将第M次迭代得到的采样点确定为第一目标采样点,并将第M次迭代得到的采样点对应的三角面片集合确定为第一目标采样点对应的第一目标面片集合。
在一些实施例中,目标三角面片确定模块4554,还用于确定近似结构中各个三角面片的面积,基于各个三角面片的面积和边长,确定各个三角面片的最小高度值;获取预设的高度阈值;将多个三角面片中最小高度值小于高度阈值的三角面片确定为目标三角面片。
在一些实施例中,目标三角面片确定模块4554,还用于确定近似结构中各个三角面片的第一面积;获取预设的第二面积阈值;将多个三角面片中第一面积小于第二面积阈值的三角面片确定为目标三角面片。
在一些实施例中,分类模块4555,还用于基于近似结构中包括的多个三角面片,确定多个参考面片;确定目标三角面片的第一面片个数,并确定参考面片的第二面片个数;将第一面片个数与第二面片个数的比值确定为第一占比;当第一占比大于或者等于预设的第一占比阈值时,确定虚拟部件的分类结果为第一类部件;当第一占比小于第一占比阈值时,确定虚拟部件的分类结果为第二类部件。
在一些实施例中,分类模块4555,还用于基于近似结构中包括的多个三角面片,确定多个参考面片;将各个目标三角面片的第一面积的总和,确定为第一总面积,将多个参考面片的第一面积的总和,确定为第二总面积;将第一总面积与第二总面积的比值确定为第二占比;当第二占比大于或者等于预设的第二占比阈值时,确定虚拟部件的分类结果为第一类部件;当第二占比小于第二占比阈值时,确定虚拟部件的分类结果为第二类部件。
在一些实施例中,分类模块4555,还用于将近似结构中包括的各个三角面片确定为参考面片;或者,获取近似结构中包括的各个三角面片的第一面积;将各个三角面片按照第一面积进行升序排序,得到排序后的各个三角面片;将排序后的各个三角面片中除去前N个和后N个三角面片之外的其它三角面片,确定为参考面片,N是基于三角面片总个数确定出的整数值。
本申请实施例提供了一种计算机程序产品,该计算机程序产品包括计算机程序或计算机可执行指令,该计算机程序或计算机可执行指令存储在计算机可读存储介质中。电子设备的处理器从计算机可读存储介质读取该计算机可执行指令,处理器执行该计算机可执行指令,使得该电子设备执行本申请实施例上述的虚拟部件分类方法。
本申请实施例提供一种存储有计算机可执行指令的计算机可读存储介质,其中存储有计算机可执行指令或者计算机程序,当计算机可执行指令或者计算机程序被处理器执行时,将引起处理器执行本申请实施例提供的虚拟部件分类方法,例如,如图4A示出的虚拟部件分类方法。
在一些实施例中,计算机可读存储介质可以是RAM、ROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,计算机可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,计算机可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(Hyper TextMarkup Language,HTML)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,计算机可执行指令可被部署为在一个电子设备上执行,或者在位于一个地点的多个电子设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个电子设备上执行。
综上所述,本申请实施例提出的虚拟部件分类方法无需对原始部件进行分类,而是可以统一对所有类型的部件进行处理。此外,由于该方法是基于组件最简逼近的,所以对输入的拓扑以及网格密度要求并不高,无论部件是稀疏还是稠密网格模型,只要经过最简逼近,均可以转化为一系列满足逼近误差的最大三角形。最后,由于本申请实施例最终采用统计量来识别精细结构体,所以抗噪性也比较好,有利于提高通用性。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。

Claims (13)

1.一种虚拟部件分类方法,其特征在于,所述方法包括:
获取待分类的虚拟部件,并确定所述虚拟部件的表面积;
确定所述虚拟部件的虚拟包围盒,以及所述虚拟包围盒在坐标轴方向上的跨度;所述跨度基于所述虚拟包围盒在坐标轴方向上的最大坐标和最小坐标之差确定得到;
当所述虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且所述虚拟部件的表面积大于第一面积阈值,确定所述虚拟部件的近似结构,所述近似结构中包括多个三角面片;
从所述多个三角面片中确定目标三角面片,所述目标三角面片的最小高度值小于高度阈值,或者所述目标三角面片的面积小于第二面积阈值;
基于所述目标三角面片确定所述虚拟部件的分类结果,所述分类结果为第一类部件或第二类部件,所述第一类部件的表面积小于所述第二类部件的表面积,且所述第一类部件的纹理结构的精细度高于所述第二类部件;
所述确定所述虚拟部件的近似结构,包括:对所述虚拟部件进行光滑处理,得到处理后的虚拟部件;在所述处理后的虚拟部件上随机确定P个第一初始采样点,并确定每个所述第一初始采样点对应的初始三角面片集合,P为大于1的整数;对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合;基于各个第一目标面片集合确定所述虚拟部件的第一近似结果,并确定所述第一近似结果与所述处理后的虚拟部件的第一误差值;当所述第一误差值小于预设的误差阈值,将所述第一近似结果确定为所述虚拟部件的近似结构。
2.根据权利要求1中所述的方法,其特征在于,所述虚拟包围盒在坐标轴方向上的跨度包括虚拟包围盒在x轴方向上的第一跨度、y轴方向上的第二跨度和z轴上的第三跨度,所述方法还包括:
当所述第一跨度、所述第二跨度或第三跨度中的至少之一小于或者等于所述跨度阈值时,确定所述虚拟部件为第一类部件;
当所述虚拟部件的表面积小于或者等于所述第一面积阈值时,确定所述虚拟部件为第一类部件。
3.根据权利要求1中所述的方法,其特征在于,所述确定所述虚拟部件的近似结构,包括:
当所述第一误差值大于误差阈值,在所述处理后的虚拟部件上随机确定Q个第二初始采样点,并确定每个所述第二初始采样点对应的第二初始三角面片集合,其中Q为大于P的整数;
对第二初始采样点和第二初始采样点对应的第二初始三角面片集合进行优化处理,得到Q个第二目标采样点和各个第二目标采样点对应的第二目标面片集合;
基于各个第二目标面片集合确定所述虚拟部件的第二近似结果,并确定所述第二近似结果与所述处理后的虚拟部件的第二误差值;
确定所述第一误差值和第二误差值之间的误差下降值;
基于所述虚拟部件的表面积确定最小误差下降阈值,所述最小误差下降阈值与所述虚拟部件的表面积正相关;
当所述误差下降值小于所述最小误差下降阈值时,将所述第二近似结果确定为所述虚拟部件的近似结构。
4.根据权利要求1中所述的方法,其特征在于,所述对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合,包括:
按照下述步骤执行M次迭代,M为大于1的正整数:
确定第i次迭代得到的各个采样点对应的三角面片集合的各个加权重心,i=1,2…,M,其中,将第一初始采样点确定为第1次迭代得到的采样点;
将所述各个加权重心确定为第i+1次迭代得到的各个采样点,将所述各个加权重心对应的三角面片集合,确定为第i+1次迭代得到的各个采样点对应的三角面片集合;
将第M次迭代得到的采样点确定为第一目标采样点,并将第M次迭代得到的采样点对应的三角面片集合确定为第一目标采样点对应的第一目标面片集合。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述多个三角面片中确定目标三角面片,包括:
确定所述近似结构中各个三角面片的面积,基于所述各个三角面片的面积和边长,确定所述各个三角面片的最小高度值;
获取预设的高度阈值;
将所述多个三角面片中最小高度值小于所述高度阈值的三角面片确定为目标三角面片。
6.根据权利要求1至4任一项所述的方法,其特征在于,所述从所述多个三角面片中确定目标三角面片,包括:
确定所述近似结构中各个三角面片的第一面积;
获取预设的第二面积阈值;
将所述多个三角面片中第一面积小于所述第二面积阈值的三角面片确定为目标三角面片。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标三角面片确定所述虚拟部件的分类结果,包括:
基于所述近似结构中包括的多个三角面片,确定多个参考面片;
确定所述目标三角面片的第一面片个数,并确定参考面片的第二面片个数;
将所述第一面片个数与所述第二面片个数的比值确定为第一占比;
当所述第一占比大于或者等于预设的第一占比阈值时,确定所述虚拟部件的分类结果为第一类部件;
当所述第一占比小于所述第一占比阈值时,确定所述虚拟部件的分类结果为第二类部件。
8.根据权利要求1所述的方法,其特征在于,所述基于所述目标三角面片确定所述虚拟部件的分类结果,包括:
基于所述近似结构中包括的多个三角面片,确定多个参考面片;
将各个目标三角面片的第一面积的总和,确定为第一总面积,将所述多个参考面片的第一面积的总和,确定为第二总面积;
将所述第一总面积与所述第二总面积的比值确定为第二占比;
当所述第二占比大于或者等于预设的第二占比阈值时,确定所述虚拟部件的分类结果为第一类部件;
当所述第二占比小于所述第二占比阈值时,确定所述虚拟部件的分类结果为第二类部件。
9.根据权利要求7或8中所述的方法,其特征在于,所述基于所述近似结构中包括的多个三角面片,确定多个参考面片,包括:
将所述近似结构中包括的各个三角面片确定为参考面片;或者,
获取所述近似结构中包括的各个三角面片的第一面积;
将所述各个三角面片按照第一面积进行升序排序,得到排序后的各个三角面片;
将所述排序后的各个三角面片中除去前N个和后N个三角面片之外的其它三角面片,确定为参考面片,N是基于三角面片总个数确定出的整数值。
10.一种虚拟部件分类装置,其特征在于,所述装置包括:
表面积确定模块,用于获取待分类的虚拟部件,并确定所述虚拟部件的表面积;
包围盒确定模块,用于确定所述虚拟部件的虚拟包围盒,以及所述虚拟包围盒在坐标轴方向上的跨度;所述跨度基于所述虚拟包围盒在坐标轴方向上的最大坐标和最小坐标之差确定得到;
最简近似模块,用于当所述虚拟包围盒在坐标轴方向上的跨度均大于预设的跨度阈值,且所述表面积大于预设的第一面积阈值,确定所述虚拟部件的近似结构,所述近似结构中包括多个三角面片;所述最简近似模块还用于对所述虚拟部件进行光滑处理,得到处理后的虚拟部件;在所述处理后的虚拟部件上随机确定P个第一初始采样点,并确定每个所述第一初始采样点对应的初始三角面片集合,P为大于1的整数;对第一初始采样点和第一初始采样点对应的初始三角面片集合进行优化处理,得到P个第一目标采样点和各个第一目标采样点对应的第一目标面片集合;基于各个第一目标面片集合确定所述虚拟部件的第一近似结果,并确定所述第一近似结果与所述处理后的虚拟部件的第一误差值;当所述第一误差值小于预设的误差阈值,将所述第一近似结果确定为所述虚拟部件的近似结构;
目标三角面片确定模块,用于从所述多个三角面片中确定目标三角面片,所述目标三角面片的最小高度值小于高度阈值,或者所述目标三角面片的面积小于第二面积阈值;
分类模块,用于基于所述目标三角面片确定所述虚拟部件的分类结果,所述分类结果为第一类部件或第二类部件,所述第一类部件的表面积小于所述第二类部件的表面积,且所述第一类部件的纹理结构的精细度高于所述第二类部件。
11.一种电子设备,其特征在于,所述电子设备包括:
存储器,用于存储计算机可执行指令;
处理器,用于执行所述存储器中存储的计算机可执行指令时,实现权利要求1至9任一项所述的虚拟部件分类方法。
12.一种计算机可读存储介质,存储有计算机可执行指令或者计算机程序,其特征在于,所述计算机可执行指令或者计算机程序被处理器执行时实现权利要求1至9任一项所述的虚拟部件分类方法。
13.一种计算机程序产品,包括计算机可执行指令或计算机程序,其特征在于,所述计算机可执行指令或计算机程序被处理器执行时实现权利要求1至9任一项所述的虚拟部件分类方法。
CN202311542206.2A 2023-11-20 2023-11-20 虚拟部件分类方法、装置、电子设备及可读存储介质 Active CN117315375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311542206.2A CN117315375B (zh) 2023-11-20 2023-11-20 虚拟部件分类方法、装置、电子设备及可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311542206.2A CN117315375B (zh) 2023-11-20 2023-11-20 虚拟部件分类方法、装置、电子设备及可读存储介质

Publications (2)

Publication Number Publication Date
CN117315375A CN117315375A (zh) 2023-12-29
CN117315375B true CN117315375B (zh) 2024-03-01

Family

ID=89286831

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311542206.2A Active CN117315375B (zh) 2023-11-20 2023-11-20 虚拟部件分类方法、装置、电子设备及可读存储介质

Country Status (1)

Country Link
CN (1) CN117315375B (zh)

Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102509104A (zh) * 2011-09-30 2012-06-20 北京航空航天大学 基于置信度图的增强现实场景虚拟对象判别和检测方法
CN102663197A (zh) * 2012-04-18 2012-09-12 天津大学 一种基于运动捕获的虚拟手抓取的仿真方法
CN108389203A (zh) * 2018-03-16 2018-08-10 青岛海信医疗设备股份有限公司 三维虚拟器官的体积计算方法、装置、存储介质及设备
CN109544697A (zh) * 2018-12-27 2019-03-29 重庆上丞科技有限公司 一种虚拟空间中家居模型自动贴合定位放置方法
CN114100119A (zh) * 2021-12-01 2022-03-01 网易(杭州)网络有限公司 虚拟对象修复方法、装置、电子设备及存储介质
CN115294258A (zh) * 2022-09-26 2022-11-04 腾讯科技(深圳)有限公司 三维模型的展开方法、装置、设备及计算机可读存储介质
WO2023273339A1 (zh) * 2021-06-30 2023-01-05 广东三维家信息科技有限公司 一种三维模型简化方法、装置及存储介质
CN116152576A (zh) * 2023-04-19 2023-05-23 北京邮电大学 图像处理方法、装置、设备及存储介质
CN116188683A (zh) * 2022-12-29 2023-05-30 深圳市凌云视迅科技有限责任公司 三维对象包围盒确定方法、装置、计算机设备及存储介质
CN116228432A (zh) * 2021-12-01 2023-06-06 腾讯科技(深圳)有限公司 一种虚拟资源组合的分类方法、装置、设备以及存储介质
WO2023160054A1 (zh) * 2022-02-25 2023-08-31 腾讯科技(深圳)有限公司 一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN116993955A (zh) * 2023-06-30 2023-11-03 网易(杭州)网络有限公司 三维模型的重拓扑方法、装置、设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111228797B (zh) * 2020-01-13 2021-05-28 腾讯科技(深圳)有限公司 数据处理方法、装置、计算机以及可读存储介质

Patent Citations (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102509104A (zh) * 2011-09-30 2012-06-20 北京航空航天大学 基于置信度图的增强现实场景虚拟对象判别和检测方法
CN102663197A (zh) * 2012-04-18 2012-09-12 天津大学 一种基于运动捕获的虚拟手抓取的仿真方法
CN108389203A (zh) * 2018-03-16 2018-08-10 青岛海信医疗设备股份有限公司 三维虚拟器官的体积计算方法、装置、存储介质及设备
CN109544697A (zh) * 2018-12-27 2019-03-29 重庆上丞科技有限公司 一种虚拟空间中家居模型自动贴合定位放置方法
WO2023273339A1 (zh) * 2021-06-30 2023-01-05 广东三维家信息科技有限公司 一种三维模型简化方法、装置及存储介质
CN114100119A (zh) * 2021-12-01 2022-03-01 网易(杭州)网络有限公司 虚拟对象修复方法、装置、电子设备及存储介质
CN116228432A (zh) * 2021-12-01 2023-06-06 腾讯科技(深圳)有限公司 一种虚拟资源组合的分类方法、装置、设备以及存储介质
WO2023160054A1 (zh) * 2022-02-25 2023-08-31 腾讯科技(深圳)有限公司 一种图像渲染方法、装置、电子设备、计算机可读存储介质及计算机程序产品
CN115294258A (zh) * 2022-09-26 2022-11-04 腾讯科技(深圳)有限公司 三维模型的展开方法、装置、设备及计算机可读存储介质
CN116188683A (zh) * 2022-12-29 2023-05-30 深圳市凌云视迅科技有限责任公司 三维对象包围盒确定方法、装置、计算机设备及存储介质
CN116152576A (zh) * 2023-04-19 2023-05-23 北京邮电大学 图像处理方法、装置、设备及存储介质
CN116993955A (zh) * 2023-06-30 2023-11-03 网易(杭州)网络有限公司 三维模型的重拓扑方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN117315375A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN111027113B (zh) 基于建筑模型生成平面轮廓图的方法、系统和存储介质
CN106934826B (zh) 一种岩质边坡结构精细化建模及块体识别方法
CN110706345A (zh) 一种基于构件实例合并的铁路bim模型轻量化方法及系统
CN112347546A (zh) 基于轻量级设备的bim渲染方法、设备和计算机可读存储介质
US10121279B1 (en) Systems and methods for generating a mesh
CN113724401B (zh) 一种三维模型切割方法、装置、计算机设备和存储介质
Lyons Cluster busting in anchored graph drawing
CN117315375B (zh) 虚拟部件分类方法、装置、电子设备及可读存储介质
US7528833B2 (en) Three-dimensional data controller and three-dimensional data processor
CN111583268B (zh) 点云虚拟选择与裁切方法、装置及设备
CN109684656B (zh) 一种基于SolidWorks的装配约束继承方法
CN113486416B (zh) 一种3d建筑楼层分层的实现方法
Mateo et al. Hierarchical, Dense and Dynamic 3D Reconstruction Based on VDB Data Structure for Robotic Manipulation Tasks
CN116681857A (zh) 一种空间碰撞检测方法、装置及电子设备
CN111046472B (zh) 模型构件信息的显示方法、装置、计算机设备和存储介质
Cruz-Matías et al. Compact union of disjoint boxes: An efficient decomposition model for binary volumes
CN117422610B (zh) 一种三维模型轻量化方法、装置及电子设备
Gomes et al. A B-Rep data structure and object GUI programming to implement 2D boundary elements
CN117235824B (zh) 共面拟合方法、装置、设备及计算机可读存储介质
CN117194704B (zh) 针对部件级实景三维模型属性查询的方法、装置和设备
CN116467610B (zh) 基于5g消息的数据拓扑分析方法、装置、设备及存储介质
CN116385652B (zh) 一种参数化几何多线程离散方法及系统
CN112711783B (zh) 一种基于三维软件及虚幻引擎的珠宝设计方法及系统
Gunawardena et al. Spatial data processing with MapReduce
CN110197528B (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