CN114742956B - 模型处理方法、装置、设备及计算机可读存储介质 - Google Patents
模型处理方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN114742956B CN114742956B CN202210648451.0A CN202210648451A CN114742956B CN 114742956 B CN114742956 B CN 114742956B CN 202210648451 A CN202210648451 A CN 202210648451A CN 114742956 B CN114742956 B CN 114742956B
- Authority
- CN
- China
- Prior art keywords
- model
- dimensional
- visible
- triangular patch
- angle
- 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
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000003672 processing method Methods 0.000 title abstract description 26
- 230000000007 visual effect Effects 0.000 claims abstract description 69
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 36
- 230000015654 memory Effects 0.000 claims description 23
- 239000013598 vector Substances 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 8
- 230000001131 transforming effect Effects 0.000 claims description 4
- 230000005484 gravity Effects 0.000 claims description 3
- 238000012549 training Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000009877 rendering Methods 0.000 description 14
- 238000013461 design Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- PXFBZOLANLWPMH-UHFFFAOYSA-N 16-Epiaffinine Natural products C1C(C2=CC=CC=C2N2)=C2C(=O)CC2C(=CC)CN(C)C1C2CO PXFBZOLANLWPMH-UHFFFAOYSA-N 0.000 description 6
- 230000009466 transformation Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000003062 neural network model Methods 0.000 description 4
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000005286 illumination Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000007429 general method Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010422 painting Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
-
- 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
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/40—Hidden part removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2016—Rotation, translation, scaling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2021—Shape modification
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Architecture (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- Processing Or Creating Images (AREA)
- Image Generation (AREA)
- Image Processing (AREA)
Abstract
本申请提供了一种模型处理方法、装置、设备及计算机可读存储介质;方法包括:获取待处理的三维模型的模型信息;基于所述模型信息,确定所述三维模型在各个视角对应的模型可见区域;将各个视角对应的模型可见区域进行合并处理,得到所述三维模型在多视角下对应的可见区域;利用所述三维模型处理后的多视角下可见区域,通过本申请,能够降低三维模型后续处理的数据量。
Description
技术领域
本申请涉及计算机科学技术领域,尤其涉及一种模型处理方法、装置、设备及计算机可读存储介质。
背景技术
基于原画的三维建模是虚拟对象制作中必不可少的步骤。其基本做法是:1)原画师根据概念设计,绘制具体的角色模型,包括人物的性别、服装、发饰、身材甚至样貌、道具、其它配件等。这些造型往往以多视角的二维原画来呈现,2)建模师根据原画师的创作稿,利用3Dmax,Zbrush,Maya等软件创建原画所对应的三维模型。为了适应场内场外等不同应用场景,建模师往往需要对同一模型制作对应的中模、高模以及低模。
在上述过程中,步骤1)难以实现自动化;而对于步骤2),相关技术中利用深度网络来实现原画建模的自动化。基于深度学习的方法往往需要大量的训练数据。为此,一种通用方法就是对于带有纹理信息的三维模型,通过不同视角渲染出多张二维原画,然后利用这些二维原画和三维模型来训练网络。然而三维模型上存在着某些不可见区域,因此造成三维模型上会存在冗余数据,影响二维渲染效率和模型训练效率。
发明内容
本申请实施例提供一种模型处理方法、装置及计算机可读存储介质,能够降低模型数据量,从而降低对模型处理时的计算量,提高处理效率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种模型处理方法,包括:
获取待处理的三维模型的模型信息和预设的至少一个视角;
基于所述模型信息,确定所述三维模型在各个视角对应的模型可见区域;
将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;
利用所述三维模型对应的模型可见区域生成处理后的三维模型。
本申请实施例提供一种模型处理装置,包括:
第一获取模块,用于获取待处理的三维模型的模型信息和预设的至少一个视角;
第一确定模块,用于基于所述模型信息,确定所述三维模型在各个视角对应的模型可见区域;
第一合并模块,用于将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;
模型生成模块,用于利用所述三维模型对应的模型可见区域生成处理后的三维模型。
本申请实施例提供一种计算机设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的模型处理方法。
本申请实施例提供一种计算机程序产品,包括计算机程序或指令,所述计算机程序或指令被处理器执行时实现本申请实施例提供的模型处理方法。
本申请实施例具有以下有益效果:
首先,获取待处理的三维模型的模型信息和预设的至少一个视角,该至少一个视角可以是前视视角、后视视角、左视视角、右视视角等,当然也可以是其他任意视角;然后再基于该三维模型的模型信息,确定三维模型在所述各个视角对应的模型可见区域,每个视角对应的模型可见区域是指三维模型在该视角下所能看见的区域,不包括在该视角下被遮挡的区域,进而将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域,利用所述三维模型对应的模型可见区域生成处理后的三维模型。也就是说处理后的三维模型是仅包括各个视角的模型可见区域,而不包括非可见区域,因此降低了模型的数据量,从而使得再对处理后的三维模型进行后续处理时,减少处理设备的资源开销和计算量,提高处理效率。
附图说明
图1A为2D最低信封示意图;
图1B为3D最低信封示意图;
图1C为受限德劳内三角化结果示意图;
图1D为二维布尔交运算和二维布尔并运算示意图;
图2是本申请实施例提供的模型处理系统100的一种网络架构示意图;
图3是本申请实施例提供的服务器的结构示意图;
图4是本申请实施例提供的模型处理方法的一种实现流程示意图;
图5A为本申请实施例提供的确定各个视角对应的模型可见区域的实现流程示意图;
图5B为本申请实施例提供的三维模型为立方体进行旋转时的示意图;
图6为本申请实施例提供的第i个三角面片对应的合并区域进行三角化处理的实现流程示意图;
图7为本申请实施例提供的提供的模型处理方法的另一种实现流程示意图;
图8为利用本申请实施例提供的模型处理方法进行模型处理后得到的处理结果的示意图;
图9为利用本申请实施例提供的模型处理方法得到的处理后的三维模型作为训练数据得到训练模型的重建结果示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)x单调线段(x-monotone segments),对于一条折线而言,如果每条垂直直线最多在一个点上与它相交,则称该折线为x单调线段。
2)xy单调曲面(xy-monotone surfaces),对于一张曲面而言,如果每条垂直直线最多在一个点上与它相交,则称该曲面为xy单调曲面。
3)2D最低信封(2D Envelope),定义在二维图元下边界上,由二维平面上的一组连续或者不连续的x-单调线段构成。如果在二维图元的下方定义一条水平线L(如图1A中的区域101的线段所示),则这些x-单调线段在L上的投影就形成了整个二维图元在L上投影的一个完整划分。
4)3D最低信封(3D Envelope),是2D最低信封在三维空间的自然推广。它定义在三维图元下边界上,由三维空间的xy-单调曲面构成。如果在三维图元的下方定义一张水平平面P,则这些xy单调平面在P上的投影就形成了整个三维图元在P上投影的一个完整划分。例如对于图1B而言,对于左侧111中的两个相切球而言,其最低信封即为两个球的下半部分所形成的两个半球,这两个半球在xy平面上的投影即为两个相切圆;对于右侧112所示的半圆锥面和三角形而言,由于它们在z方向上没有重合,所以其最低信封即为半圆锥面和三角形本身,其在xy平面上的投影即为两个相切的三角形。
5)受限德劳内三角化(Constrained Delaunay Triangulation),平面上的点集P的德劳内三角化是一种三角剖分DT(P),使得在 P 中没有点严格处于 DT(P) 中任意一个三角形外接圆的内部。Delaunay 三角化最大化了此三角剖分中三角形的最小角,尽量避免出现“极瘦”的三角形。受限德劳内三角化是指在给定了一些限制边的情况下的德劳内三角化。例如对于图1C这样一个“回”字形带孔多边形,如果将其外边界和内部孔洞的边都作为受限边(如黑色加粗线段所示),则其Delaunay三角化结果为黑色加粗线段和灰色线段所构成的三角形。
6)(带孔)多边形(Polygon with holes):由一个外边界(由顶点逆时针排列的多边形构成)和若干个包含在外边界内部的孔洞(由顶点顺时针排列的多边形构成)构成的二维有界平面图。
7)二维布尔运算(2D Boolean Operation):给定多边形和,可以类似于集合,定义交、并、差、对称差、补等布尔运算。其中布尔并是将和合并为一个新区域,其形式化定义为。图1D给出了二维多边形布尔运算的直观示例,其中图1D中深灰色部分为P和Q的交,深灰色部分与浅灰色部分共同构成P和Q的并。
本申请实施例提供一种模型数据方法、装置、设备和计算机可读存储介质,能够降低模型的数据量,下面说明本申请实施例提供的计算机设备的示例性应用,本申请实施例提供的设备可以实施为笔记本电脑,平板电脑,台式计算机,机顶盒,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)等各种类型的用户终端,也可以实施为服务器。下面,将说明设备实施为服务器时示例性应用。
参见图2,图2是本申请实施例提供的模型处理系统100的一种网络架构示意图,如图2所示,该网络架构包括:第一终端200、第二终端300和服务器400,其中,第一终端200和服务器400以及第二终端300和服务器400之间通过网络(图2中未示出)建立有通信连接,网络可以是广域网或者局域网,又或者是二者的组合。
第一终端200可以是模型设计终端,模型设计人员可以利用第一终端200设计出虚拟对象的三维模型,并且可以设计出不同视角下的三维模型,然后第一终端200将不同视角下的模型发送至服务器400,服务器400获取不同视角下的模型信息,并基于各个视角的模型信息,确定在所述各个视角对应的模型可见区域,再将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;利用所述三维模型对应的模型可见区域生成处理后的三维模型。服务400再将处理后的三维模型发送至第二终端300。第二终端300可以是渲染终端,第二终端300利用处理后的三维模型进行多视角的二维渲染,由于处理后的三维模型中仅包括模型的可见区域,因此,相对于原始的三维模型,减少了模型数据量,因此在进行二维渲染时,也只需要对可见区域进行渲染,从而降低了进行二维渲染时的资源开销,提高渲染效率。
在一些实施例中,服务器400可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。第一终端200、第二终端300可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、车载智能终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制。
在一些实施例中,模型处理系统的网络架构中,还可以仅包括第一终端和第二终端,第一终端在确定完成模型设计后,由第一终端利用不同视角下的模型信息,确定出不同视角下的模型可见区域,再将不同视角下的模型可见区域进行合并处理,得到处理后的三维模型,然后再将处理后的三维模型,发送至第二终端,然后第二终端利用处理后的三维模型进行二维渲染。
在一些实施例中,模型处理系统的网络架构中,还可以仅包括第一终端和服务器,其中第一终端可以是模型训练终端,第一终端获取样本数据,其中,样本数据包括多个模型的多视角的二维原画和多个模型的多视角三维模型,第一终端将多个模型的多视角三维模型发送至服务器,服务器对于每个模型,利用各个视角下的模型信息,确定各个视角下的可见区域,然后再将各个视角下的可见区域进行合并,得到处理后的三维模型,并将处理后的三维模型发送至第一终端,第一终端利用预设的神经网络模型对多个模型的多视角二维原画进行预测处理,对应得到多个预测三维模型,然后利用处理后的三维模型和多个预测三维模型对该神经网络模型进行训练,直至得到训练好的神经网络模型。由于在训练过程中,降低了网络模型输出的复杂度和歧义性,从而能够加快网络模型的训练速度,缩短训练时间。
参见图3,图3为本申请实施例提供的服务器400的结构示意图,图3所示的服务器400包括:至少一个处理器410、至少一个网络接口420、总线系统430和存储器440。服务器400中的各个组件通过总线系统430耦合在一起。可理解,总线系统430用于实现这些组件之间的连接通信。总线系统430除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统430。
处理器410可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器440可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器440可选地包括在物理位置上远离处理器 410的一个或多个存储设备。
存储器440包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器440旨在包括任意适合类型的存储器。
在一些实施例中,存储器440能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统441,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块442,用于经由一个或多个(有线或无线)网络接口420到达其他计算设备,示例性的网络接口420包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图3示出了存储在存储器440中的模型处理装置443,其可以是程序和插件等形式的软件,包括以下软件模块:第一获取模块4431、第一确定模块4432、第一合并模块4433和模型生成模块4434,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的搜索模型的更新方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
将结合本申请实施例提供的服务器的示例性应用和实施,说明本申请实施例提供的模型处理方法。
本申请实施例提供一种模型处理方法,应用于计算机设备,该计算机设备可以是终端,还可以是服务器。在本申请实施例中,以计算机设备为服务器为例进行说明。图4是本申请实施例提供的模型处理方法的一种实现流程示意图,将结合4,对本申请实施例提供的模型处理方法的各个步骤进行说明。
步骤S101,获取待处理的三维模型的模型信息和预设的至少一个视角。
这里,当本申请实施例提供的模型处理方法是由服务器实现时,待处理的三维模型的模型信息可以是由终端发送至服务器的。待处理的三维模型可以是用来进行二维原画渲染的模型,也可以是用于训练网络模型的训练模型。待处理的三维模型的模型信息可以包括构成该三维模型的多个三角面片的顶点标识和顶点索引,通过该顶点索引能够获得三角面片的顶点坐标。该至少一个视角可以是从不同角度观看该三维模型时的视角,例如可以包括前视视角、后视视角、左视视角、右视视角的至少一个,当然也可以是其他任意视角。以前视视角为例进行说明,当相机位于模型的正前方时,此时即为前视视角。
步骤S102,基于所述模型信息,确定三维模型在各个视角对应的模型可见区域。
其中,各个视角对应的模型可见区域是指相机从各个视角能够观测到的模型区域。该步骤在实现时,可以首先基于各个视角的相机方向向量将三维模型进行旋转,将三维模型旋转至仰视视角,并确定三维模型的3D最低信封和3D最低信封的二维投影图,由于二维投影图上的投影面是由可见区域投影到二维平面得到的,因此在得到二维投影图之后,可以进一步确定出二维投影图各个投影面在三维模型上对应的可见区域,并基于所述各个投影面对应的可见区域,确定所述三维模型中各个三角面片包含的可见区域,这样就得到了各个视角对应的模型可见区域。
步骤S103,将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域。
当在步骤S101中预设的是一个视角,那么在该步骤中则不需要进行合并处理,直接将该视角对应的模型可见区域确定为该三维模型对应的模型可见区域。当在步骤S101中预设的是两个或者两个以上视角,由于在实施步骤S102时,已经确定出了在不同视角下各个三角面片中包含的可见区域,那么该步骤在实现时,是将各个三角面片在不同视角下的可见区域转换至二维空间,然后在二维空间下确定各个三角面片在不同视角下可见区域的合并区域,然后再将合并区域转换至三维空间,也就得到了各个三角面片在三维空间的合并区域,由于三维模型是由各个三角面片组成的,在得到了各个三角面片在三维空间的可见区域,那么此时也就得到了三维模型对应的模型可见区域。
步骤S104,利用所述三维模型对应的模型可见区域生成处理后的三维模型。
在本申请实施例中,模型可见区域是由每个区域的顶点标识以及顶点索引表征的,因此在得到每个区域的顶点标识以及顶点索引之后,可以再根据顶点索引确定出顶点坐标,从而生成处理后的三维模型。
在一些实施例中,当待处理的三维模型可以是用来进行二维原画渲染的模型时,在得到处理后的三维模型之后,可以对处理后的三维模型进行纹理映射,从而将处理后的三维模型映射至二维空间,在进行二维渲染,由于处理后的三维模型中仅包括模型的可见区域,因此在进行二维渲染时,也仅需要渲染模型的可见区域对应的二维多边形,从而能够降低渲染数据处理量,提高渲染效率。当待处理的三维模型为用于训练网络模型的训练模型时,服务器可以将处理后的三维模型发送至终端,终端利用多视角的二维训练原画和处理后的三维模型对网络模型进行训练,直至得到训练好的神经网络模型。由于在训练过程中,降低了网络模型输出的复杂度和歧义性,从而能够加快网络模型的训练速度,缩短训练时间。
在本申请实施例提供的模型处理方法中,首先获取待处理的三维模型的模型信息和预设的至少一个视角,该至少一个视角可以是前视视角、后视视角、左视视角、右视视角等,当然也可以是其他任意视角;然后再基于该三维模型的模型信息,确定三维模型在所述各个视角对应的模型可见区域,每个视角对应的模型可见区域是指在该视角下所能看见的模型区域,不包括在该视角下被遮挡的模型区域,进而将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域,利用所述三维模型对应的模型可见区域生成处理后的三维模型。也就是说处理后的三维模型是仅包括各个视角的模型可见区域,而不包括非可见区域,因此降低了模型的数据量,从而使得再对处理后的三维模型进行后续处理时,减少处理设备的资源开销和计算量,提高处理效率。
在一些实施例中,上述步骤S102“基于所述模型信息,确定所述各个视角对应的模型可见区域”可以通过图5A所示的步骤S211至步骤S215实现,以下结合图5A对各个步骤进行说明。
步骤S211,确定第k视角对应的第一角度和第二角度。
其中,k为大于或者等于1的整数。假设一共预设有K个视角,那么k=1,2,…,K。第k视角可以理解为相机的镜头中心点相对于三维模型的模型中心的角度。
在实现时,上述步骤S211可以通过以下步骤实现:
步骤S2111,确定所述第k视角对应的相机方向向量。
第k视角对应的相机方向向量是根据相机镜头中心坐标与三维模型的模型中心的坐标确定的,该三维模型的模型中心也即三维模型的包围盒的中心。所述相机方向向量包括第一分量(x轴方向)、第二分量(y轴方向)和第三分量(z轴方向)。假设相机方向向量为(a,b,c),那么第一分量为a,第二分量为b,第三分量为c。
步骤S2112,确定所述第二分量和所述第三分量之间的第一比值,确定所述第一分量和所述第三分量之间的第二比值。
承接上述举例,第一比值为b/c,第二比值为a/c。
步骤S2113,将所述第一比值的反正切值确定为第一角度,将所述第二比值相反数的反正切值确定为第二角度。
继续承接上述举例,第一角度为arctan(b/c),第二角度为arctan(-b/c)。
步骤S212,沿x轴方向将所述三维模型逆时针旋转所述第一角度,再沿y轴方向逆时针旋转所述第二角度,得到旋转后的三维模型。
所述旋转后的三维模型为仰视视角对应的模型。
沿x轴方向对三维模型逆时针旋转第一角度,从而使得相机方向的第二分量(y轴分量)变为0;然后再沿y轴逆时针旋转第二角度,使得相机方向的第一分量(x轴分量)变为0,也即此时相机朝向的是+z方向,那么此时得到的旋转后的三维模型为仰视视角对应的模型。
为简化说明,以三维模型为图5B所示的立方体为例说明上述旋转三维模型的过程,假设第一视角为前视视角,第二视角为右视视角,通过第一视角看到三维模型的A面,根据步骤S211的实现过程,确定第一视角对应的第一角度为90度,第二角度为0度,将三维模型沿x轴逆时针旋转90度,得到旋转后的三维模型,此时三维模型的A面是朝向-Z的方向的,也即相机是朝向+Z方向的。对于第二视角来说,通过第二视角看到的是三维模型的B面,根据步骤S211的实现过程,确定第二视角对应的第一角度为0度,第二角度为90度,将三维模型沿y轴逆时针旋转90度,得到旋转后的三维模型,此时三维模型的B面是朝向-Z的方向的,也即相机是朝向+Z方向的。也就是说,旋转后的三维模型是将三维模型从各个视角看到的部分旋转至仰视视角。
步骤S213,基于所述旋转后的三维模型,确定所述三维模型在第k视角的的三维最低信封和所述三维最低信封的二维投影图。
该步骤在实现时,可以调用CGAL中计算3D信封的函数,得到三维模型的三维最低信封及其三维最低信封的二维投影图,该二维投影图也即三维最低信封在xy平面上的投影图。所述二维投影图中包括至少一个投影面。这里的投影面是指二维投影图上的连接边所构成的闭合区域。以图1B中的112为例进行说明,112中的右侧为二维投影图,该二维投影图中包括两个投影面,分别为S1对应的大三角形和S2对应的小三角形。
步骤S214,确定各个投影面对应的可见区域,并基于所述各个投影面对应的可见区域,确定所述三维模型中各个三角面片包含的可见区域。
确定各个投影面对应的可见区域,是确定各个投影面在三维最低信封上中对应三角面片中的可见区域,在实现时,首先确定各个投影面在三维最低信封上对应的三角面片,然后对于投影图上的每个顶点,构造经过它的垂直直线,并确定垂直直线与三角面片所在平面的交点,然后将该三角面片上的交点连接起来,就得到了该投影图对应的可见区域。其中,在连接三角面片上的交点时,如果该投影面为非带孔多边形,那么是将多个交点按照逆时针顺序进行连接,如果该投影面为带孔多边形,那么带孔多边形外边界上的顶点对应的交点按照逆时针顺序进行连接,内部孔洞上的顶点对应的交点按照顺时针顺序进行连接。
垂直直线与三角面片所在平面的交点也即为该可见区域的顶点,在实现时,可以获取各个交点的坐标,并将交点的坐标确定为该可见区域的顶点的坐标。另外在投影面对应的三角面片,也即可见区域所在的三角面片。
在实际应用中,每个投影面对应有一个三角面片,而一个三角面片可能对应有多个投影面,而每个投影面对应有一个可见区域,不同的可见区域可能是位于同一个三角面片上的,因此一个三角面片可能对应有多个可见区域。在本申请实施例中,确定出各个投影面对应的可见区域后,可以基于可见区域所在的三角面片,得到三维模型中各个三角面片包含的可见区域。比如,面F1对应可见区域R1、面F2对应可见区域R2、面F3对应可见区域R3、面F4对应可见区域R4、…、面F10对应可见区域R10,而可见区域R1、R2、R3是位于同一个三角面片T1的,R4位于三角面片T2、R5、R6位于三角面片T3;R7位于三角面片T4、R8、R9、R10位于三角面片T5。那么就可以得出,三角面片T1中包括可见区域R1、R2、R3;三角面片T2中包括可见区域R4;三角面片T3中包括可见区域R5、R6;三角面片T4中包括可见区域R7;三角面片T5中包括可见区域R8、R9、R10。
步骤S215,将所述各个三角面片包含的可见区域沿y轴方向顺时针旋转所述第二角度,再沿x轴方向顺时针旋转所述第一角度,得到所述第k视角对应的模型可见区域。
在实现时,可以是将旋转后的三维模型沿y轴方向顺时针旋转所述第二角度,再沿x轴方向顺时针旋转所述第一角度,从而使得各个三角面片对应的可见区域按照与步骤S212的相反方式进行旋转,也即将各个三角面片对应的可见区域沿y轴方向顺时针旋转第二角度,再沿x轴方向顺时针旋转第一角度,这样就把模型又恢复到第k视角的姿态,从而得到第k视角对应的模型可见区域。
通过上述步骤S211至步骤S215,在确定三维模型在第k视角的模型可见区域时,首先将三维模型基于第k视角确定出的第一角度和第二角度进行旋转,得到旋转后的三维模型,旋转后的三维模型将第k视角旋转为仰视视角,从而确定第k视角对应的三维最低信封和三维最低信封对应的二维投影图,进而基于三维最低信封和二维投影图之间的对应关系,确定出三维模型中各个三角面片在第k视角上的模型可见区域,从而为确定三维模型整体的模型可见区域提供必要的数据基础。
在一些实施例中,上述步骤S103中的“将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域”,可以通过以下步骤实现:
步骤S1031,获取所述三维模型中第i个三角面片在各个视角对应的可见区域。
其中,i=1,2,…,N,N为大于1的整数,N为所述三维模型中三角面片总数。假设有四个不同视角,将第i个三角面片在每个视角的可见区域构成一个可见区域集合,分别为V1、V2、V3、V4,其中,V1、V2、V3、V4中可能存在空集。
步骤S1032,对所述第i个三角面片在各个视角对应的可见区域进行合并处理,得到所述第i个三角面片对应的合并后的可见区域。
该步骤在实现时,首先将第i个三角面片在各个视角对应的可见区域映射至二维空间,然后进行二维布尔并运算,得到在二维空间的合并区域,然后再将二维空间的合并区域映射至三维空间,也就得到了第i个三角面片对应的合并后的可见区域。
步骤S1033,将所述第1至第N个三角面片对应的合并后的可见区域,确定为所述三维模型对应的模型可见区域。
由于原始的三维模型上的每个三角面片在不同视角下具有不同的遮挡关系,因此同一三角面片在不同视角下的可见区域既有可能存在重合,也有可能存在差异;既有可能连在一起,也有可能被分割开。为了消除最终结果中的重复区域,对可见区域的合并是将每个三角面片在不同视角下得到的可见区域进行合并,从而确定出每个三角面片合并后的可见区域,保证各个三角面片对应的合并后的可见区域的准确性。
在一些实施例中,上述步骤S1032“对所述第i个三角面片在各个视角对应的可见区域进行合并处理,得到所述第i个三角面片对应的合并后的可见区域”,可以通过以下步骤实现:
步骤S321,将所述第i个三角面片在各个视角对应的可见区域变换至二维空间,得到所述各个视角对应的二维可见区域。
在实现时,可以首先确定第i个三角面片对应的仿射变换矩阵,然后通过该仿射变换矩阵将第i个三角面片投射至二维空间,由于第i个三角面片在各个视角对应的可见区域本身就是位于第i个三角面片上的,因此将第i个三角面片投射到二维空间,也就将第i个三角面片在各个视角对应的可见区域投射到了二维空间,从而得到第i个三角面片在各个视角对应的二维可见区域。
步骤S322,对所述各个视角对应的二维可见区域进行合并处理,得到所述第i个三角面片对应的合并区域。
在实现时,可以通过二维布尔运算将各个视角对应的二维可见区域进行合并处理,从而得到第i个三角面片对应的合并区域,该合并区域可以是非带孔多边形,也可能是带孔多边形。
步骤S323,对所述第i个三角面片对应的合并区域进行三角化处理,得到剖分出的多个二维三角形。
在该步骤中,对第i个三角面片对应的合并区域进行三角化处理在实现时,是对该合并区域进行受限的德劳内三角剖分,也就是说,剖分出的二维三角形至少有一个连接边是该合并区域上的连接边。
步骤S324,将所述二维三角形变换至三维空间,得到所述第i个三角面片对应的合并后的可见区域。
在实现时,可以利用逆仿射变换将二维三角形变换至三维空间,从而得到第i个三角面片对应的合并后的可见区域。在得到每个三角面片对应的合并后的可见区域之后,就可以在后续步骤中,根据合并后的可见区域的顶点坐标、顶点索引生成处理后的三维模型。
通过上述步骤S321至步骤S324,在将第i个三角面片在不同视角下可见区域进行合并之后,再进行受限的三角剖分处理,能够保证得到所述第i个三角面片对应的合并后的可见区域之间不存在遮挡或重合等情况。
在一些实施例中,上述步骤S323“对所述第i个三角面片对应的合并区域进行三角化处理,得到剖分出的多个二维三角形”,可以通过图6所示的步骤S3231至步骤S3237实现,以下结合图6对各个步骤进行说明。
步骤S3231,获取所述第i个三角面片对应的合并区域的各个连接边。
当第i个三角面片对应的合并区域为带孔多边形时,第i个三角面片对应的合并区域的各个连接边包括多边形外边界的连接边和内部孔洞的连接边;当第i个三角面片对应的合并区域为非带孔多边形时,那么第i个三角面片对应的合并区域的各个连接边就仅包括多边形外边界的连接边。
步骤S3232,基于所述各个连接边对所述第i个三角面片对应的合并区域进行受限的三角化处理,得到多个候选三角形。
作为示例,可以将各个连接边增加至受限列表中,然后基于该受限列表,调用CGAL中的受限Delaunay三角化函数对第i个三角面片对应的合并区域进行三角化处理,得到多个候选三角形,这样得到的候选三角形中至少一条边为合并区域的连接边。
步骤S3233,确定第j个候选三角形的重心的目标位置信息。
在实现时,可以基于第j个候选三角形的三个顶点的坐标,确定第j个候选三角形的重心的目标位置信息。
步骤S3234,确定第i个三角面片对应的合并区域是否为带孔多边形。
确定第i个三角面片对应的合并区域是否为带孔多边形,可以通过确定第i个三角面片对应的合并区域的外边界内部是否包含有其他多边形,如果在该合并区域的外边界内部包含有其他多边形,确定第i个三角面片对应的合并区域为带孔多边形,此时进入步骤S3235;如果在该合并区域的外边界内部未包含有其他多边形,确定第i个三角面片对应的合并区域为非带孔多边形,此时进入步骤S3236。
步骤S3235,确定第j个候选三角形的重心是否位于第i个三角面片对应的合并区域中连通区域内部。
其中,所述第i个三角面片对应的合并区域中连通区域为所述合并区域的外边界上的连接边与内部孔洞上的连接边之间的区域。在实现时,可以基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,进一步地,基于第i个三角面片的各个顶点的顶点坐标以及重心的目标位置信息确定第j个候选三角形的重心是否位于第i个三角面片对应的合并区域中连通区域内部,当第j个候选三角形的重心位于第i个三角面片对应的合并区域中连通区域内部时,进入步骤S3237;当第j个候选三角形的重心不位于第i个三角面片对应的合并区域中连通区域内部时,进入步骤S3239。
步骤S3236,确定第j个候选三角形的重心是否位于第i个三角面片对应的合并区域的内部。
与步骤S3235类似,可以基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,进一步可以基于第i个三角面片的各个顶点的顶点坐标以及重心的目标位置信息确定第j个候选三角形的重心是否位于第i个三角面片对应的合并区域内部,当确定第j个候选三角形的重心位于第i个三角面片对应的合并区域内部时,进入步骤S3237;当第j个候选三角形的重心不位于第i个三角面片对应的合并区域内部时,进入步骤S3239。
步骤S3237,确定所述第j个候选三角形位于所述第i个三角面片对应的合并区域的内部。
步骤S3238,将处于所述第i个三角面片对应的合并区域内部的候选三角形,确定为剖分出的多个二维三角形。
步骤S3239,确定第j个候选三角形不位于第i个三角面片对应的合并区域的内部,且不将第j个候选三角形确定为剖分出的二维三角形。
在上述步骤S3231至步骤S3239中,基于第i个三角面片对应的合并区域的各个连接边进行受限Delaunay三角化处理,使得剖分出的三角形至少有一条边是该合并区域的连接边,并且在进行三角化处理之后,需要进一步判断三角化处理后得到的三角形是否位于合并区域(连通区域)内部,从而保证三角化处理结果的准确性。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
本申请实施例提供一种模型处理方法,能够基于3D信封,提取出三维模型在多视角下可见区域,并基于三维模型在多视角下的可见区域确定处理后的模型。
图7为本申请实施例提供的模型处理方法的另一种实现流程示意图,以下结合图7对各个步骤进行说明。
步骤S501,可见区域生成。
在实现时,基于给定的每个视角的三维模型,生成各个视角对应的可见区域,并保存下来。如图7所示,假定给定的视角包括前视、后视、左视、右视,其中图7中的701为左视可见区域、702为右视可见区域、703为前视可见区域、704为后视可见区域。通过图7可以看出,不同视角下的可见区域既存在重叠部分,也存在差异部分。
步骤S502,可见区域合并。
在实现时,将不同视角下生成的可见区域进行合并,形成最终结果。以图7为例,是将左视可见区域、右视可见区域、前视可见区域和后视可见区域合并,得到最终结果705,在最终结果705中,在所有视角下均不可见的区域就被剔除掉了。
以下对步骤S501和步骤S502的实现过程进行说明。
步骤S501“可见区域生成”是本申请实施例提供的模型处理方法的关键。为了实现可见区域的矢量化表示,可以采用CGAL中实现的3D信封来建立三维可见区域和二维投影图之间的对应关系。3D信封可以通过分治法快速计算,以三维空间的最低信封为例进行说明。
首先注意到单个xy-单调曲面的最低信封计算起来很简单:将其边界投影到xy平面上,并相应地标记它所对应的面即可。给定三维空间中的一组曲面(未必是xy单调曲面),将每个曲面细分为有限数量的弱xy单调曲面,并记它们所形成的集合为。然后将集合分成两个规模相当但不相交的子集和,并且递归地计算它们的最低信封。最后,通过计算两个子集的最低信封在xy平面上的相交区域的z值,并选取z值的较小者,来合并具有相交区域的两个最低信封。CGAL中已经实现了基于三维空间中的三角形和球面的3D信封计算方法,在可见区域生成算法中直接调用了CGAL中的实现。
在本申请实施例中,以前视图的可见区域计算为例,来描述可见区域生成算法。当确定前视图的可见区域时,可以通过以下步骤实现:
步骤S5011,沿x轴逆时针旋转模型90°,使得前视图的相机方向朝向+z;
步骤S5012,调用CGAL中计算3D信封的函数,得到模型的3D最低信封及其模型的3D最低信封在xy平面上的投影图;
步骤S5013,对于二维投影图上的每个面F,执行步骤S5014至步骤S5016。
步骤S5014,获取F在三维空间所对应的三角形T,并计算T所在的平面P;
步骤S5015,对于F边界上的每个顶点,构造经过它的垂直直线L,然后计算L和平面P的交点;
步骤S5016,将步骤S5015得到的所有交点顺次连接起来,它们在平面P上形成的区域即为F所对应的可见区域;
步骤S5017,将上述步骤得到的所有可见区域以原始模型上的三角形为单位记录下来,所有这些可见区域就形成了当前视图下的模型可见区域;
步骤S5018,将这些可见区域沿x轴顺时针方向旋转90°,以恢复原始位置。
采用类似方法(只需要改变旋转方式),还可以得到后视、左视以及右视所对应的可见区域。
在图7中描述了特定视角(前视、后视、左视、右视)下的可见区域提取方法,这是因为在原画建模过程中,原画师提供的原画往往是固定视角的。本申请实施例所提供的可见区域提取方法并不局限于特定视角,而是可以扩展到任意视角。对于任意视角,设其相机方向X为向量(x,y,z),此时,步骤S5011在实现时,可以按公式(1-1)确定第一旋转角度:
其中,arctan()为反正切函数,然后沿x轴对模型逆时针该第一旋转角度,使得相机方向的y分量变为0;
然后沿y轴对模型逆时针该第二旋转角度,使得相机方向的x分量变为0,从而使得相机的朝向为+z方向。
在将方案扩展为适合任意角度之后,就可以将其广泛应用于其它相关领域。例如对于三维建筑模型而言,给定某个时间点的阳光直射方向,采用本申请实施例所提供的方法,就可以计算建筑模型的光照区域,这十分有利于建筑设计模型的光照优化;本申请实施例提供的方法还可以应用于3D打印的展品优化:对于观众视角无法看到的区域,就可以降低打印分辨率或者进行镂空处理,从而降低展品的打印成本等。
在本申请实施例中,上述步骤S502“可见区域合并”可以通过以下步骤实现:
步骤S5021,对于原始模型上的每个三角形,执行步骤S5022至步骤S5024;
在实现时,可以通过调用CGAL中的二维布尔运算就可以得到多个(带孔)多边形的并。
步骤S5025,采用受限Delaunay三角化方法来处理步骤3得到的(带孔)多边形,并记录结果。
其中,该记录的结果中包括划分出的各个三角形的顶点坐标和顶点索引。
步骤S5026,对划分出的各个三角形的顶点坐标进行逆仿射变换,得到对应的各个三维三角形。
步骤S5027,将步骤S5022至步骤S5026得到的所有三维三角形整合起来,生成代表可见区域的网格模型。
原始模型上的每个三角形在不同视角下具有不同的遮挡关系,因此同一三角形在不同视角下的可见区域既有可能存在重合,也有可能存在差异;既有可能连在一起,也有可能被分割开。为了消除最终结果中的重复区域,首先合并各个视图中所对应的可见区域,然后进行三角化。因此,上述步骤S504在实现时,需要设计针对(带孔)多边形的Delaunay三角化方法,以应对不同的特殊情况。在实际实现时,上述步骤S5024可以通过以下步骤实现:
步骤S41,将(带孔)多边形外边界和内部孔洞上的每条边加入受限列表L中;
步骤S42,基于受限列表L,调用CGAL中的受限Delaunay三角化方法对平面进行三角化,记为T;
步骤S43,对于T中的每个三角形,判断它是否处于(带孔)多边形的内部,如果是,则标记为true,否则标记为false;
步骤S44,提取所有标记为true的三角形,即为该(带孔)多边形的受限Delaunay三角化结果。
最后,只需要将上述算法得到的所有三角形面片集合在一起,就可以生成对应的网格模型,这个模型就表示了原始模型在给定多视图下的可见区域。
在实际应用过程中,在某款游戏的角色模型集上测试了本申请实施例提供的模型处理方法。图8展示了其中的三个典型结果。其中,左侧的801、803和805代表原始模型,右侧的802、804和806代表将前、后、左、右四个视角下的可见区域合并后得到的模型。对于前两行的模型而言,由于头发、左臂的遮挡,导致女性角色的后颈部和左胯成为四个视图下均不可见的区域。同理,第三行的男性角色,其臀部和脚底也由于遮挡关系而变得不可见。这些都符合用户直观,验证了算法的正确性。
利用通过本申请实施例提供的模型处理方法得到的处理后的模型基于深度学习的原画重建实验,利用图9所示的二维原画901和902,分别重建出了903和904所示的重建结果。由于剔除了可见区域,可以使得模型采样点减少25%,从而生成多视角下的二维渲染图的耗时减少25%;并且由于降低了网络输出的复杂度和歧义性,整个网络训练收敛加速,整体训练时间减少25%,且重建质量相比于原始数据所对应的结果大致相当,略有提升。
下面继续说明本申请实施例提供的模型处理装置443的实施为软件模块的示例性结构,在一些实施例中,如图3所示,存储在存储器440的模型处理装置443中的软件模块可以包括:
第一获取模块4431,用于获取待处理的三维模型的模型信息和预设的至少一个视角;
第一确定模块4432,用于基于所述模型信息,确定所述三维模型在所述各个视角对应的模型可见区域;
第一合并模块4433,用于将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;
模型生成模块4434,用于利用所述三维模型对应的模型可见区域生成处理后的三维模型。
在一些实施例中,所述第一确定模块4432还用于:
确定第k视角对应的第一角度和第二角度;
沿x轴方向将所述三维模型逆时针旋转所述第一角度,再沿y轴方向逆时针旋转所述第二角度,得到旋转后的三维模型,所述旋转后的三维模型为仰视视角对应的模型;
基于所述旋转后的三维模型,确定所述三维模型在第一视角的三维最低信封和所述三维最低信封的二维投影图,所述二维投影图中包括至少一个投影面;
确定各个投影面对应的可见区域,并基于所述各个投影面对应的可见区域,确定所述三维最低信封中各个三角面片包含的可见区域;
将所述各个三角面片对应的可见区域沿y轴方向顺时针旋转所述第二角度,再沿x轴方向顺时针旋转所述第一角度,得到所述三维模型在所述第k视角对应的模型可见区域。
在一些实施例中,所述第一确定模块4432还用于:
确定所述第一视角对应的相机方向向量,所述相机方向向量包括第一分量、、第二分量和第三分量;
确定所述第二分量和所述第三分量之间的第一比值,确定所述第一分量和所述第三分量之间的第二比值;
将所述第一比值的反正切值确定为第一角度,将所述第二比值相反数的反正切值确定为第二角度。
在一些实施例中,所述第一确定模块4432还用于:
确定经过各个投影面的顶点的垂直直线与所述各个投影面对应目标平面的交点,所述目标平面为所述各个投影面在所述三维最低信封中对应三角面片所在的平面;
将所述各个投影面对应目标平面的交点进行连接,得到所述各个投影面的对应的可见区域。
在一些实施例中,该第一合并模块4433还用于:
获取所述三维模型中第i个三角面片在各个视角对应的可见区域;
对所述第i个三角面片在各个视角对应的可见区域进行合并处理,得到所述第i个三角面片对应的合并后的可见区域,其中,i=1,2,…,N,N为大于1的整数,N为所述三角模型中的三角面片总数;
将所述第1至第N个三角面片对应的合并后的可见区域,确定为所述三维模型对应的模型可见区域。
在一些实施例中,该第一合并模块4433还用于:
将所述第i个三角面片在各个视角对应的可见区域变换至二维空间,得到所述各个视角对应的二维可见区域;
对所述各个视角对应的二维可见区域进行合并处理,得到所述第i个三角面片对应的合并区域;
对所述第i个三角面片对应的合并区域进行三角化处理,得到剖分出的多个二维三角形;
将所述二维三角形变换至三维空间,得到所述第i个三角面片对应的合并后的可见区域。
在一些实施例中,该第一合并模块4433还用于:
获取所述第i个三角面片对应的合并区域的各个连接边;
基于所述各个连接边对所述第i个三角面片对应的合并区域进行受限的三角化处理,得到M个候选三角形,所述候选三角形的至少一条边为合并区域的连接边,M为大于1的整数;
将处于所述第i个三角面片对应的合并区域内部的候选三角形,确定为剖分出的多个二维三角形。
在一些实施例中,该装置还包括:
第二确定模块,用于确定第j个候选三角形的重心的目标位置信息;
第三确定模块,用于当所述第i个三角面片对应的合并区域为非带孔多边形,基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,确定所述第j个候选三角形的重心位于所述第i个三角面片对应的合并区域的内部时,确定所述第j个候选三角形位于所述第i个三角面片对应的合并区域的内部,其中,j=1,2,…,M。
在一些实施例中,该装置还包括:
第三确定模块,用于当所述第i个三角面片对应的合并区域为带孔多边形,基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,确定所述第j个候选三角形的重心位于所述第i个三角面片对应的合并区域中连通区域内部时,确定所述第j个候选三角形位于所述第i个三角面片对应的合并区域的内部;
其中,所述第i个三角面片对应的合并区域中连通区域为所述合并区域的外边界上的连接边与内部孔洞上的连接边之间的区域。
需要说明的是,本申请实施例针对模型处理装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的模型处理方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的模型处理方法,例如,如图4、图5A和图6示出的模型处理方法。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
以上所述,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (11)
1.一种模型处理方法,其特征在于,所述方法包括:
获取待处理的三维模型的模型信息和预设的至少一个视角;
基于所述模型信息,确定所述三维模型在各个视角对应的模型可见区域;
将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;
利用所述三维模型对应的模型可见区域生成处理后的三维模型;
所述基于所述模型信息,确定所述三维模型各个视角对应的模型可见区域,包括:
确定第k视角对应的第一角度和第二角度,k为大于或者等于1的正整数;
沿x轴方向将所述三维模型逆时针旋转所述第一角度,再沿y轴方向逆时针旋转所述第二角度,得到旋转后的三维模型,所述旋转后的三维模型为仰视视角对应的模型;
基于所述旋转后的三维模型,确定所述三维模型在第一视角的三维最低信封和所述三维最低信封的二维投影图,所述二维投影图中包括至少一个投影面;
确定各个投影面对应的可见区域,并基于所述各个投影面对应的可见区域,确定所述三维最低信封中各个三角面片包含的可见区域;
将所述各个三角面片对应的可见区域沿y轴方向顺时针旋转所述第二角度,再沿x轴方向顺时针旋转所述第一角度,得到所述三维模型在第k视角对应的模型可见区域。
2.根据权利要求1中所述的方法,其特征在于,所述确定第k视角对应的第一角度和第二角度,包括:
确定第k视角对应的相机方向向量,所述相机方向向量包括第一分量、第二分量和第三分量;
确定所述第二分量和所述第三分量之间的第一比值,确定所述第一分量和所述第三分量之间的第二比值;
将所述第一比值的反正切值确定为第一角度,将所述第二比值相反数的反正切值确定为第二角度。
3.根据权利要求1中所述的方法,其特征在于,所述确定各个投影面对应的可见区域,包括:
确定经过各个投影面的顶点的垂直直线与所述各个投影面对应目标平面的交点,所述目标平面为所述各个投影面在所述三维最低信封中对应三角面片所在的平面;
将所述各个投影面对应目标平面的交点进行连接,得到所述各个投影面的对应的可见区域。
4.根据权利要求1中所述的方法,其特征在于,所述将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域,包括:
获取所述三维模型中第i个三角面片在各个视角对应的可见区域;
对所述第i个三角面片在各个视角对应的可见区域进行合并处理,得到所述第i个三角面片对应的合并后的可见区域,其中,i=1,2,…,N,N为大于1的整数,N为所述三维模型中三角面片总数;
将第1至第N个三角面片对应的合并后的可见区域,确定为所述三维模型对应的模型可见区域。
5.根据权利要求4中所述的方法,其特征在于,所述对所述第i个三角面片在各个视角对应的可见区域进行合并处理,得到所述第i个三角面片对应的合并后的可见区域,包括:
将所述第i个三角面片在各个视角对应的可见区域变换至二维空间,得到所述各个视角对应的二维可见区域;
对所述各个视角对应的二维可见区域进行合并处理,得到所述第i个三角面片对应的合并区域;
对所述第i个三角面片对应的合并区域进行三角化处理,得到剖分出的多个二维三角形;
将所述二维三角形变换至三维空间,得到所述第i个三角面片对应的合并后的可见区域。
6.根据权利要求5中所述的方法,其特征在于,所述对所述第i个三角面片对应的合并区域进行三角化处理,得到剖分出的多个二维三角形,包括:
获取所述第i个三角面片对应的合并区域的各个连接边;
基于所述各个连接边对所述第i个三角面片对应的合并区域进行受限的三角化处理,得到M个候选三角形,所述候选三角形的至少一条边为合并区域的连接边,M为大于1的整数;
将处于所述第i个三角面片对应的合并区域内部的候选三角形,确定为剖分出的多个二维三角形。
7.根据权利要求5中所述的方法,其特征在于,所述方法还包括:
确定第j个候选三角形的重心的目标位置信息;
当所述第i个三角面片对应的合并区域为非带孔多边形,基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,确定所述第j个候选三角形的重心位于所述第i个三角面片对应的合并区域的内部时,确定所述第j个候选三角形位于所述第i个三角面片对应的合并区域的内部,其中,j=1,2,…,M。
8.根据权利要求7中所述的方法,其特征在于,所述方法还包括:
当所述第i个三角面片对应的合并区域为带孔多边形,基于所述目标位置信息和所述第i个三角面片对应的合并区域的连接边,确定所述第j个候选三角形的重心位于所述第i个三角面片对应的合并区域中连通区域内部时,确定所述第j个候选三角形位于所述第i个三角面片对应的合并区域的内部;
其中,所述第i个三角面片对应的合并区域中连通区域为所述合并区域的外边界上的连接边与内部孔洞上的连接边之间的区域。
9.一种模型处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取待处理的三维模型的模型信息和预设的至少一个视角;
第一确定模块,用于基于所述模型信息,确定所述三维模型在各个视角对应的模型可见区域;
第一合并模块,用于将所述各个视角对应的模型可见区域进行合并处理,得到所述三维模型对应的模型可见区域;
模型生成模块,用于利用所述三维模型对应的模型可见区域生成处理后的三维模型;
所述第一确定模块,还用于:确定第k视角对应的第一角度和第二角度,k为大于或者等于1的正整数;沿x轴方向将所述三维模型逆时针旋转所述第一角度,再沿y轴方向逆时针旋转所述第二角度,得到旋转后的三维模型,所述旋转后的三维模型为仰视视角对应的模型;基于所述旋转后的三维模型,确定所述三维模型在第一视角的三维最低信封和所述三维最低信封的二维投影图,所述二维投影图中包括至少一个投影面;确定各个投影面对应的可见区域,并基于所述各个投影面对应的可见区域,确定所述三维最低信封中各个三角面片包含的可见区域;将所述各个三角面片对应的可见区域沿y轴方向顺时针旋转所述第二角度,再沿x轴方向顺时针旋转所述第一角度,得到所述三维模型在第k视角对应的模型可见区域。
10.一种计算机设备,其特征在于,所述计算机设备包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至8任一项所述的方法。
11.一种计算机可读存储介质,存储有可执行指令,其特征在于,所述可执行指令被处理器执行时实现权利要求1至8任一项所述的方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210648451.0A CN114742956B (zh) | 2022-06-09 | 2022-06-09 | 模型处理方法、装置、设备及计算机可读存储介质 |
EP23818812.2A EP4390853A1 (en) | 2022-06-09 | 2023-04-10 | Model processing method and apparatus, device, computer-readable storage medium, and computer program product |
PCT/CN2023/087264 WO2023236644A1 (zh) | 2022-06-09 | 2023-04-10 | 模型处理方法、装置、设备、计算机可读存储介质及计算机程序产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210648451.0A CN114742956B (zh) | 2022-06-09 | 2022-06-09 | 模型处理方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114742956A CN114742956A (zh) | 2022-07-12 |
CN114742956B true CN114742956B (zh) | 2022-09-13 |
Family
ID=82287375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210648451.0A Active CN114742956B (zh) | 2022-06-09 | 2022-06-09 | 模型处理方法、装置、设备及计算机可读存储介质 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP4390853A1 (zh) |
CN (1) | CN114742956B (zh) |
WO (1) | WO2023236644A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114742956B (zh) * | 2022-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 模型处理方法、装置、设备及计算机可读存储介质 |
CN115187589B (zh) * | 2022-09-07 | 2022-12-09 | 腾讯科技(深圳)有限公司 | 多边形修正及生成方法、装置、设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117500A (zh) * | 2009-12-30 | 2011-07-06 | 新奥特(北京)视频技术有限公司 | 一种三维模型构建方法及系统 |
CN107945267A (zh) * | 2017-12-13 | 2018-04-20 | 四川川大智胜软件股份有限公司 | 一种用于人脸三维模型纹理融合的方法和设备 |
CN109147025A (zh) * | 2018-07-11 | 2019-01-04 | 北京航空航天大学 | 一种面向rgbd三维重建的纹理生成方法 |
CN113724391A (zh) * | 2020-11-09 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 三维模型构建方法、装置、电子设备和计算机可读介质 |
CN114004842A (zh) * | 2021-09-25 | 2022-02-01 | 桂林理工大学 | “分形视距”纹理压缩与彩色多边形纹理集成的三维模型可视化方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8902228B2 (en) * | 2011-09-19 | 2014-12-02 | Qualcomm Incorporated | Optimizing resolve performance with tiling graphics architectures |
CN103067728B (zh) * | 2013-01-25 | 2015-12-23 | 青岛海信电器股份有限公司 | 一种裸眼3d图像的处理方法及装置 |
CN112933599B (zh) * | 2021-04-08 | 2022-07-26 | 腾讯科技(深圳)有限公司 | 三维模型渲染方法、装置、设备及存储介质 |
CN114266849A (zh) * | 2021-12-16 | 2022-04-01 | 网易(杭州)网络有限公司 | 模型自动生成方法、装置、计算机设备及存储介质 |
CN114742956B (zh) * | 2022-06-09 | 2022-09-13 | 腾讯科技(深圳)有限公司 | 模型处理方法、装置、设备及计算机可读存储介质 |
-
2022
- 2022-06-09 CN CN202210648451.0A patent/CN114742956B/zh active Active
-
2023
- 2023-04-10 WO PCT/CN2023/087264 patent/WO2023236644A1/zh active Application Filing
- 2023-04-10 EP EP23818812.2A patent/EP4390853A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102117500A (zh) * | 2009-12-30 | 2011-07-06 | 新奥特(北京)视频技术有限公司 | 一种三维模型构建方法及系统 |
CN107945267A (zh) * | 2017-12-13 | 2018-04-20 | 四川川大智胜软件股份有限公司 | 一种用于人脸三维模型纹理融合的方法和设备 |
CN109147025A (zh) * | 2018-07-11 | 2019-01-04 | 北京航空航天大学 | 一种面向rgbd三维重建的纹理生成方法 |
CN113724391A (zh) * | 2020-11-09 | 2021-11-30 | 北京沃东天骏信息技术有限公司 | 三维模型构建方法、装置、电子设备和计算机可读介质 |
CN114004842A (zh) * | 2021-09-25 | 2022-02-01 | 桂林理工大学 | “分形视距”纹理压缩与彩色多边形纹理集成的三维模型可视化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN114742956A (zh) | 2022-07-12 |
WO2023236644A1 (zh) | 2023-12-14 |
EP4390853A1 (en) | 2024-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114742956B (zh) | 模型处理方法、装置、设备及计算机可读存储介质 | |
EP3971841A1 (en) | Three-dimensional model generation method and apparatus, and computer device and storage medium | |
Zhou et al. | Digital preservation technology for cultural heritage | |
CN109242961A (zh) | 一种脸部建模方法、装置、电子设备和计算机可读介质 | |
CN108898665A (zh) | 三维人脸重建方法、装置、设备及计算机可读存储介质 | |
CN112085835B (zh) | 三维卡通人脸生成方法、装置、电子设备及存储介质 | |
CN112102480B (zh) | 图像数据处理方法、装置、设备以及介质 | |
CN116958379A (zh) | 图像渲染方法、装置、电子设备、存储介质及程序产品 | |
CN112530005A (zh) | 一种三维模型直线结构识别与自动修复方法 | |
Tiwary et al. | Towards learning neural representations from shadows | |
CN113223137B (zh) | 透视投影人脸点云图的生成方法、装置及电子设备 | |
Zhang et al. | Point cloud computing algorithm on object surface based on virtual reality technology | |
CN111161398A (zh) | 一种图像生成方法、装置、设备及存储介质 | |
CN116385619B (zh) | 对象模型渲染方法、装置、计算机设备和存储介质 | |
CN116385622B (zh) | 云图处理方法、装置、计算机及可读存储介质 | |
CN110378948B (zh) | 3d模型重建方法、装置及电子设备 | |
Wang et al. | On 3D model construction by fusing heterogeneous sensor data | |
CN114529648A (zh) | 模型展示方法、设备、装置、电子设备及存储介质 | |
CN115375836A (zh) | 基于多元置信度滤波的点云融合三维重建方法和系统 | |
TW202312100A (zh) | 網格生成方法、電子設備及電腦可讀儲存介質 | |
CN110363860B (zh) | 3d模型重建方法、装置及电子设备 | |
Engel et al. | An immersive visualization system for virtual 3d city models | |
US20240212285A1 (en) | Processing three-dimensional model based only on visible model region | |
CN116778065B (zh) | 图像处理方法、装置、计算机及存储介质 | |
Peng et al. | Geometrical consistency modeling on b-spline parameter domain for 3d face reconstruction from limited number of wild images |
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: 40070808 Country of ref document: HK |