CN116342771B - 一种数据处理方法、装置、设备及存储介质 - Google Patents
一种数据处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN116342771B CN116342771B CN202310614659.5A CN202310614659A CN116342771B CN 116342771 B CN116342771 B CN 116342771B CN 202310614659 A CN202310614659 A CN 202310614659A CN 116342771 B CN116342771 B CN 116342771B
- Authority
- CN
- China
- Prior art keywords
- vertex
- grid
- skin matrix
- directed edge
- distance
- 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 31
- 238000003672 processing method Methods 0.000 title claims abstract description 29
- 239000011159 matrix material Substances 0.000 claims abstract description 258
- 238000012545 processing Methods 0.000 claims abstract description 112
- 238000013519 translation Methods 0.000 claims abstract description 109
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000009499 grossing Methods 0.000 claims abstract description 33
- 238000001514 detection method Methods 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 18
- 230000001131 transforming effect Effects 0.000 claims description 7
- 238000012216 screening Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 18
- 238000005457 optimization Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 239000004973 liquid crystal related substance Substances 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000009466 transformation Effects 0.000 description 3
- 230000003044 adaptive effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 229920002430 Fibre-reinforced plastic Polymers 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000011151 fibre-reinforced plastic Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
- G06T13/40—3D [Three Dimensional] animation of characters, e.g. humans, animals or virtual beings
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/55—Controlling game characters or game objects based on the game progress
-
- 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
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/60—Methods for processing data by generating or executing the game program
- A63F2300/66—Methods for processing data by generating or executing the game program for rendering three dimensional images
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02T—CLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
- Y02T10/00—Road transport of goods or passengers
- Y02T10/10—Internal combustion engine [ICE] based vehicles
- Y02T10/40—Engine management systems
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Multimedia (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Image Processing (AREA)
- Image Analysis (AREA)
Abstract
本申请实施例公开了一种数据处理方法、装置、设备及存储介质。其中方法包括:获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,第二蒙皮矩阵用于构造对象在任一姿势下的网格。可见,通过第二网格对第一蒙皮矩阵进行优化,可以提高第二蒙皮矩阵的平滑度,进而提高基于第二蒙皮矩阵构造的网格的质量。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种数据处理方法、一种数据处理装置、一种计算机设备及一种计算机可读存储介质。
背景技术
随着科技研究的进步,动画和游戏行业飞速发展。动画和游戏行业的核心之一是对象建模;例如,虚拟角色建模,服饰建模,场景建模等。对象建模通常是通过网格(如三角形网格、四边形网格等)实现的。对象的网格的变换可以通过该网格对应的蒙皮矩阵来指示。实践发现,通过蒙皮矩阵对对象的网格进行变换,得到的变换后的网格的质量较低;例如,变换后的网格中的线条(也可以称为网格的布线)平直度较低。
发明内容
本申请实施例提供了一种数据处理方法、装置、设备及计算机可读存储介质,能够提高通过蒙皮矩阵构造的网格的质量。
一方面,本申请实施例提供了一种数据处理方法,包括:
获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的;
对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格;
基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;第二蒙皮矩阵用于构造对象在任一姿势下的网格。
一方面,本申请实施例提供了一种数据处理装置,该数据处理装置包括:
获取单元,用于获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的;
处理单元,用于对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
以及用于对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格;
以及用于基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;第二蒙皮矩阵用于构造对象在任一姿势下的网格。
在一种实施方式中,处理单元用于,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,具体用于:
获取至少一组共线顶点集合中的至少一个顶点的移动信息;
按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。
在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合;
处理单元用于,获取至少一组共线顶点集合中的至少一个顶点的移动信息,具体用于:
基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。
在一种实施方式中,移动信息包括移动方向和移动距离;处理单元用于,基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息,具体用于:
若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离;
若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。
在一种实施方式中,移动信息包括移动距离;处理单元按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格的过程包括:
若顶点i2的移动距离小于或等于第一距离阈值,则保持顶点i2的位置不变;
若顶点i2的移动距离大于第一距离阈值,则按照顶点i2的移动信息在第一网格中对顶点i2进行移动,得到平滑处理后的顶点i2。
在一种实施方式中,第一网格的数量为M个,每个第一网格对应一个旋转平移数据,M为正整数;第二网格的数量为M个,M个第一网格与M个第二网格一一对应;处理单元用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
按照预设步长对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵;
基于优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对对象的基础网格进行旋转平移处理,得到M个目标网格;
若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。
在一种实施方式中,处理单元用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
获取第一网格对应的旋转平移数据,旋转平移数据用于指示将基础网格变换为第一网格的过程中对象的各个关节点的旋转平移量;
基于第二网格与第一网格之间的差异,以及旋转平移数据,计算目标蒙皮矩阵;
采用目标蒙皮矩阵替换第一蒙皮矩阵,得到第二蒙皮矩阵。
在一种实施方式中,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中待优化的顶点;处理单元用于,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,具体用于:
根据区域指示信息,确定待优化的顶点所属的目标共线顶点集合;
对目标共线顶点集合中的待优化的顶点在第一网格中的位置进行平滑处理,得到第二网格。
在一种实施方式中,第一蒙皮矩阵中包括N个权值,N为大于1的整数;处理单元用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
根据区域指示信息,确定第一蒙皮矩阵中与待优化的顶点关联的P个权值,P为小于等于N的正整数;
基于第二网格对P个权值进行优化,得到第二蒙皮矩阵。
在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;处理单元用于,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,具体用于:
获取第一网格中的起始有向边,并将起始有向边关联的顶点添加至起始有向边的共线顶点集合中;
基于起始有向边和起始有向边的共线顶点集合,从第一网格中筛选出目标有向边;目标有向边与起始有向边的夹角小于夹角阈值,且目标有向边关联的第一顶点属于起始有向边的共线顶点集合;
将目标有向边关联的第二顶点添加至起始有向边的共线顶点集合中。
在一种实施方式中,处理单元用于,获取第一网格中的起始有向边,具体用于:
获取候选有向边集合,每条候选有向边关联的两个顶点中至少存在一个顶点属于第一网格的边缘顶点;
随机从候选有向边集合选择一条候选有向边,将被选中的候选有向边作为第一网格中的起始有向边,并从候选有向边集合中移除被选中的候选有向边。
在一种实施方式中,处理单元还用于:
基于目标有向边对候选有向边集合进行去重处理,得到更新后的候选有向边集合。
在一种实施方式中,处理单元用于,获取对象的待优化信息,具体用于:
获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵,以及M个旋转平移数据,M为正整数;
通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格;
基于M个第一网格生成对象的待优化信息。
在一种实施方式中,处理单元还用于:
获取目标姿势对应的目标旋转平移数据;
通过目标旋转平移数据和第二蒙皮矩阵对对象的基础网格进行旋转平移处理,得到对象在目标姿势下的网格。
相应地,本申请提供了一种计算机设备,该计算机设备包括:
存储器,存储器中存储有计算机程序;
处理器,用于加载计算机程序实现上述数据处理方法。
相应地,本申请提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,该计算机程序适于由处理器加载并执行上述数据处理方法。
相应地,本申请提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述数据处理方法。
本申请实施例中,获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,第二蒙皮矩阵用于构造对象在任一姿势下的网格。可见,通过第二网格对第一蒙皮矩阵进行优化,可以提高第二蒙皮矩阵的平滑度,进而提高基于第二蒙皮矩阵构造的网格的质量。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种数据处理场景图;
图2为本申请实施例提供的一种数据处理方法的流程图;
图3为本申请实施例提供的另一种数据处理方法的流程图;
图4为本申请实施例提供的一种共线顶点检测示意图;
图5为本申请实施例提供的一种顶点关系示意图;
图6为本申请实施例提供的一种顶点的移动示意图;
图7为本申请实施例提供的一种关节点的旋转平移示意图;
图8为本申请实施例提供的一种数据处理示意图;
图9为本申请实施例提供的一种网格效果对比图;
图10为本申请实施例提供的一种基于不同迭代次数得到的第二蒙皮矩阵生成的网格的效果示意图;
图11为本申请实施例提供的一种数据处理装置的结构示意图;
图12为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请涉及对象建模的相关技术,下面对对象建模的相关技术进行简单介绍:
网格/三维网格/模型:在游戏和建模行业中,一个对象可以用网格(例如三角形网格(triangle mesh)或四边形网格)来近似表示。使用网格来建立一个对象的过程,称为建模。在三维世界中最基本的图元就是三角形,通常来说,构建的三维世界中的三维模型都是中空的,由闭合的表面(网格体)进行表示。从存储的角度看,由于一个平面可以由3个点来确定,三维模型可以由一个个闭合的面表示;因此,网格体可以由一个个顶点组成,既没有“面”也没有“体”,无需额外的存储信息,以此达到压缩最大化的目的。由此可知,三维网格体看上去是由若干个三角形(四边形)组成,存储时存储的是构成三维网格体的顶点。一个完整的网格体(mesh)可以由一系列基本的几何信息描述。需要说明的是,本申请涉及的对象的网格可以是三维网格,也可以是二维网格,本申请对此不作限制。
蒙皮:三维动画术语(也可用于3D游戏中)。三维动画的一种制作技术。在三维软件中创建的模型基础上,为模型(网格)添加关节点(关节点可以基于实际需求进行设置,如对于虚拟人物来说,关节点可以是虚拟人物的骨骼)。由于关节点与模型是相互独立的,为了让关节点驱动模型进行变换(如通过关节点驱动模型进行运动),把模型绑定到关节点上的技术叫做蒙皮。蒙皮过程最终输出一个蒙皮矩阵,该蒙皮矩阵中包含AB个蒙皮权重(即蒙皮矩阵的维度为A/>B);其中,A为模型的顶点数,B为模型的关节数。蒙皮矩阵中第i行第j列的蒙皮权重用于指示对象运动过程中第j个关节点对第i个顶点的影响程度,i为小于等于A的正整数,j为小于等于B的正整数。此外,对每个顶点而言,在所有关节点上的权重和为1(即每一行的蒙皮权重的和为1)。
线性混合蒙皮(Linear Blending Skinning,LBS):通过刚体旋转平移和模型的蒙皮矩阵,计算模型中各个顶点的最终位置的算法。具体可以表示为:
其中,表示顶点i变换前的位置,/>表示顶点i变换后的位置,/>表示关节点的总数量,/>表示第i个顶点在第j个关节点上的权重(可以基于蒙皮矩阵得到),/>表示第j个关节点的旋转平移量(可以基于关节点的旋转平移数据得到)。
半边结构:半边结构是指将一条无向边看作两个方向相反的“半边”(有向边)。
基于上述对象建模的相关技术,本申请实施例提供了一种数据处理方案,能够提高通过蒙皮矩阵构造的网格的质量。图1为本申请实施例提供的一种数据处理场景图,如图1所示,本申请提供的数据处理场景中包括计算机设备101,本申请提供的数据处理方案可由计算机设备101执行,计算机设备101可以是终端设备,也可以是服务器。其中,终端设备可以包括但不限于:智能手机(如Android手机、IOS手机等)、平板电脑、便携式个人计算机、移动互联网设备(Mobile Internet Devices,简称MID)、车载终端、智能家电、可穿戴设备等,本申请实施例对此不做限定。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content DeliveryNetwork,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请实施例对此不做限定。
需要说明的是,图1中计算机设备的数量仅用于举例,并不构成本申请的实际限定;例如,图1中还可以包括计算机设备102(如用于向计算机设备101发送对象的待优化信息),计算机设备101和计算机设备102之间可以通过有线或无线的方式进行连接,本申请对此不作限制。
在具体实现中,该数据处理方案的大致原理如下:
(1)计算机设备101获取对象的待优化信息。待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的。对象的网格(具体可以是基础网格,第一网格,第二网格中的任一个)包括A个顶点,对象包括B个关节点,A为大于2的整数,B为大于1的整数;第一蒙皮矩阵用于指示对象的网格在变换过程中每个关节点对网格中各个顶点的影响程度。
在一种实施方式中,计算机设备101获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵,以及M个旋转平移数据(如旋转平移矩阵),M为正整数。在获取到对象的模型信息后,计算机设备101通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格,并基于M个第一网格生成对象的待优化信息。
(2)计算机设备101对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点。在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点(该有向边的起点和终点)。顶点属于同一组共线顶点集合的判定条件(即顶点满足共线条件)如下:若以顶点i1为起点,顶点i2为终点的有向边1与以顶点i2为起点,顶点i3为终点的有向边2之间的夹角小于夹角阈值,则判定顶点i1,顶点i2和顶点i3属于同一组共线顶点集合。
需要说明的是,对象的基础网格中的边均为无向边,本申请中所涉及的有向边是基于对象的网格中的边的“半边结构”而言的(即基于“半边结构”,在进行共线检测和平滑处理的过程中,可以将对象的网格中的边看作两条方向相反的有向边)。
(3)计算机设备101对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格。在一种实施方式中,计算机设备101获取至少一组共线顶点集合中的至少一个顶点的移动信息。在一个实施例中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合。计算机设备101基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。具体来说,移动信息包括移动方向和移动距离;若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。相应地,若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。在确定顶点i2的移动信息后,计算机设备101按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。以顶点i2为例,计算机设备101按照顶点i2的移动信息在第一网格中对顶点i2进行移动,得到平滑处理后的顶点i2。
(4)计算机设备101基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵。第二蒙皮矩阵用于构造对象在任一姿势下的网格。在一种实施方式中,第一网格的数量为M个,每个第一网格对应一个旋转平移数据(如旋转平移矩阵,或者平移向量和旋转角度等),M为正整数;第二网格的数量为M个,M个第一网格与M个第二网格一一对应。计算机设备101按照预设步长对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵。在得到优化后的第一蒙皮矩阵后,计算机设备101基于优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对对象的基础网格进行旋转平移处理,得到M个目标网格;若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。
在另一种实施方式中,计算机设备101获取第一网格对应的旋转平移数据,旋转平移数据用于指示将基础网格变换为第一网格的过程中对象的各个关节点的旋转平移量,并基于第二网格与第一网格之间的差异,以及旋转平移数据,(如通过牛顿法)计算目标蒙皮矩阵,再采用目标蒙皮矩阵替换第一蒙皮矩阵,得到第二蒙皮矩阵。
本申请实施例中,获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,第二蒙皮矩阵用于构造对象在任一姿势下的网格。可见,通过第二网格对第一蒙皮矩阵进行优化,可以提高第二蒙皮矩阵的平滑度,进而提高基于第二蒙皮矩阵构造的网格的质量。
基于上述数据处理方案,本申请实施例提出更为详细的数据处理方法,下面将结合附图对本申请实施例提出的数据处理方法进行详细介绍。
请参阅图2,图2为本申请实施例提供的一种数据处理方法的流程图,该数据处理方法可以由计算机设备执行,该计算机设备具体可以是终端设备或者服务器。如图2所示,该数据处理方法可包括如下步骤S201-S204:
S201、获取对象的待优化信息。
待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的。在一个实施例中,对象的第一蒙皮矩阵可以是调用蒙皮矩阵预测模型基于对象的第一网格和对象的关节点位置信息预测得到的。对象可以是任一可以通过关节点进行驱动的虚拟人或虚拟物,本申请对此不作限制;例如,对象可以是指虚拟角色本身,也可以是指虚拟角色的服饰,还可以是指机器臂等。
在一种实施方式中,计算机设备数据处理获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵,以及M个旋转平移数据(如旋转平移矩阵,或者平移向量和旋转角度等),M为正整数。在获取到对象的模型信息后,计算机设备数据处理通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格,并基于M个第一网格生成对象的待优化信息。
在另一种实施方式中,计算机设备数据处理获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵, M个旋转平移数据,以及区域指示信息,区域指示信息可以用于指示第一网格中待优化的顶点,M为正整数。在获取到对象的模型信息后,计算机设备数据处理通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格,并基于M个第一网格和区域指示信息生成对象的待优化信息。
可选的,对象的模型信息还可以包括迭代次数指示信息,迭代次数指示信息用于指示第一蒙皮矩阵的迭代优化次数。
S202、对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合。
每组共线顶点集合包括至少三个满足共线条件的顶点。需要说明的是,对象的网格(如基础网格,第一网格,第二网格)中的边均为无向边,本申请中所涉及的有向边是基于对象的网格中的边的“半边结构”而言的(即基于“半边结构”,在进行共线检测和平滑处理的过程中,可以将对象的网格中的边看作两条方向相反的有向边)。
在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点(该有向边的起点和终点)。顶点属于同一组共线顶点集合的判定条件(判断顶点满足共线条件的方式)如下:若以顶点i1为起点,顶点i2为终点的有向边1与以顶点i2为起点,顶点i3为终点的有向边2之间的夹角小于夹角阈值,则判定顶点i1,顶点i2和顶点i3属于同一组共线顶点集合。
计算机设备确定一组共线顶点的过程包括:获取第一网格中的起始有向边,并将起始有向边关联的顶点添加至起始有向边的共线顶点集合中,基于起始有向边和起始有向边的共线顶点集合,从第一网格中筛选出目标有向边;其中,目标有向边与起始有向边的夹角小于夹角阈值,且目标有向边关联的第一顶点属于起始有向边的共线顶点集合。计算机设备将目标有向边关联的第二顶点添加至起始有向边的共线顶点集合中。
S203、对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格。
在一种实施方式中,计算机设备获取至少一组共线顶点集合中的至少一个顶点的移动信息,并按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。在一个实施例中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合。计算机设备基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。具体来说,移动信息包括移动方向和移动距离;若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。相应地,若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。若顶点i1和顶点i2之间的第一距离等于顶点i2和顶点i3之间的第二距离,则保持顶点i2的位置不变。在确定顶点i2的移动信息后,计算机设备按照顶点i2的移动信息在第一网格中对顶点i2进行移动,得到平滑处理后的顶点i2。
在另一种实施方式中,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中的一个或多个待优化的顶点。计算机设备根据区域指示信息,确定各个待优化的顶点所属的目标共线顶点集合,并基于每个待优化的顶点所属的目标共线顶点集合对该待优化的顶点在第一网格中的位置进行平滑处理,得到第二网格。
S204、基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵。
第二蒙皮矩阵用于构造对象在任一姿势下的网格。
在一种实施方式中,第一网格的数量为M个,每个第一网格对应一个旋转平移数据(如旋转平移矩阵,或者平移向量和旋转角度等),M为正整数;第二网格的数量为M个,M个第一网格与M个第二网格一一对应。计算机设备按照预设步长对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵;例如,计算机设备可以基于预设步长,采用梯度下降的优化方法(如通过适应性矩估计(Adaptive moment estimation,Adam)算法)对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵。
在一个实施例中,假设第一蒙皮矩阵中包括的任一个顶点对应的待优化的权值的数量为2K个,步长为0.05,K为正整数;则计算机设备可以随机从2K个待优化的权值中选择K个待优化的权值,并对每个选中的待优化的权值增加0.05,对每个未被选中的待优化的权值减少0.05;按照上述方式计算机设备可以对需要优化的顶点在第一蒙皮矩阵中对应的待优化的权值进行调整,得到优化后的第一蒙皮矩阵。
在得到优化后的第一蒙皮矩阵后,计算机设备基于优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对对象的基础网格进行旋转平移处理,得到M个目标网格。在一个实施例中,M=1,若目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。在另一个实施例中,M1,若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。相应地,若存在至少一个目标网格中的至少一个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均大于或等于第二距离阈值,则继续对第一蒙皮矩阵进行优化,直至每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值。
需要说明的是,当M1时,计算机设备可以通过对多个第一网格进行平滑处理得到多个第二网格,再基于多个第二网格对对象的第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;例如,逐一基于各个第二网格与该第二网格对应的第一网格之间的差异,对对象的蒙皮矩阵进行优化,得到第二蒙皮矩阵;又例如,基于M个第二网格与M个第一网格之间的差异,共同对对象的蒙皮矩阵进行优化,得到第二蒙皮矩阵。通过多个第一网格得到的第二蒙皮矩阵相对于通过一个第一网格的第二蒙皮矩阵来说稳定性更高。
在另一种实施方式中,计算机设备获取第一网格对应的旋转平移数据,旋转平移数据用于指示将基础网格变换为第一网格的过程中对象的各个关节点的旋转平移量,并基于第二网格与第一网格之间的差异,以及旋转平移数据,(如通过牛顿法)计算目标蒙皮矩阵,再采用目标蒙皮矩阵替换第一蒙皮矩阵,得到第二蒙皮矩阵。
可以理解的是,上述步骤S202-步骤S204可以重复执行,以达到对对象的蒙皮矩阵进行迭代更新的目的。具体来说,在得到第二蒙皮矩阵后,计算机设备可以基于第二蒙皮矩阵对对象的基础网格进行旋转平移处理,并将得到的网格作为新的第一网格。按照上述方式对对象的蒙皮矩阵进行迭代优化,并在满足迭代优化结束条件(如迭代次数达到指定的值,或者第一网格和第二网格之间的差异小于差异阈值等)时,输出最终迭代得到的蒙皮矩阵。
本申请实施例中,获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,第二蒙皮矩阵用于构造对象在任一姿势下的网格。可见,通过第二网格对第一蒙皮矩阵进行优化,可以提高第二蒙皮矩阵的平滑度,进而提高基于第二蒙皮矩阵构造的网格的质量。
请参阅图3,图3为本申请实施例提供的另一种数据处理方法的流程图,该数据处理方法可以由计算机设备执行,该计算机设备具体可以是终端设备或者服务器。如图3所示,该数据处理方法可包括如下步骤S301-S307:
S301、获取对象的待优化信息。
步骤S301的具体实施方式可参考图2中步骤S201的实施方式,在此不再赘述。在一个实施例中,对象的基础网格是基于对象的基础姿势(如A pose、T pose等)得到的。
S302、对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合。
在一种实施方式中,计算机设备对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合的过程包括:获取第一网格中的起始有向边,并将起始有向边关联的顶点添加至起始有向边的共线顶点集合中。在一个实施例中,计算机设备获取候选有向边集合,每条候选有向边关联的两个顶点中至少存在一个顶点属于第一网格的边缘顶点;第一网格的边缘顶点可以是第一网格的实际边缘上的顶点,也可以是第一网格中待优化区域的边缘上的顶点。在获取候选有向边集合后,计算机设备随机从候选有向边集合选择一条候选有向边,将被选中的候选有向边作为第一网格中的起始有向边,并从候选有向边集合中移除被选中的候选有向边;例如,假设候选有向边集合中包括候选有向边1-候选有向边10,当候选有向边1被选中后,计算机设备从候选有向边集合中移除候选有向边1;此时,候选有向边集合中包括候选有向边2-候选有向边10。
在另一个实施例中,计算机设备可以随机从第一网格中选取一条不属于任一共线顶点集合的有向边(该有向边关联的两个顶点未同时包含于一个共线顶点集合中)作为起始有向边。
在得到起始有向边后计算机设备将起始有向边关联的两个顶点添加至共线顶点集合中,得到该起始有向边的共线顶点集合。进一步地,计算机设备基于起始有向边和起始有向边的共线顶点集合,从第一网格中筛选出目标有向边,目标有向边与起始有向边的夹角小于夹角阈值,且目标有向边关联的第一顶点属于起始有向边的共线顶点集合;将目标有向边关联的第二顶点添加至起始有向边的共线顶点集合中。可以理解的是,计算机设备可以将目标有向边作为新的起始有向边,并重复上述步骤,得到起始有向边的共线顶点集合。
图4为本申请实施例提供的一种共线顶点检测示意图。如图4所示,假设起始有向边为,计算机设备将顶点A和顶点B添加至共线顶点集合中;由于网格中存在有向边/>(有向边/>与有向边/>的夹角小于夹角阈值,且顶点B为公共顶点),计算机设备判定有向边/>与有向边/>共线,并将顶点C添加至共线顶点集合中。同理,由于网格中存在有向边(有向边/>与有向边/>的夹角小于夹角阈值,且顶点C为公共顶点),计算机设备判定有向边/>与有向边/>共线,并将顶点D添加至共线顶点集合中。
进一步地,计算机设备还可以基于目标有向边对候选有向边集合进行去重处理,得到更新后的候选有向边集合;例如,假设候选有向边集合中包括候选有向边1-候选有向边10,若候选有向边1被选中后,候选有向边集合中包括候选有向边2-候选有向边10;当计算机设备按照上述共线检测方式得到候选有向边1的共线顶点集合后,若检测到候选有向边10关联的两个顶点均属于候选有向边1的共线顶点集合(如候选有向边10与候选有向边1满足共线检测条件),则计算机设备从候选有向边集合中移除候选有向边10;此时,候选有向边集合中包括候选有向边2-候选有向边9。计算机设备可以重复执行上述实施方式,直至第一网格完成共线检测。
S303、获取至少一组共线顶点集合中的至少一个顶点的移动信息。
在一种实施方式中,计算机设备获取每组共线顶点集合中的至少一个顶点的移动信息。在一个实施例中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合。计算机设备基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。在一种实现方式中,移动信息包括移动方向和移动距离;若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。相应地,若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。若顶点i1和顶点i2之间的第一距离等于顶点i2和顶点i3之间的第二距离,则保持顶点i2的位置不变。计算机设备基于第一距离与第二距离的差值计算顶点的移动距离的公式可以表示为:
其中,为顶点移动的距离;/>为超参数(如/>=0.3),可以基于实际需求动态调整;为第一距离和第二距离中的较大值;/>为第一距离和第二距离中的较小值。
图5为本申请实施例提供的一种顶点关系示意图。如图5所示,顶点P为有向边和有向边/>的公共顶点,由于有向边/>的长度小于有向边/>的长度,因此顶点P的移动方向为沿/>方向移动。移动的距离为/>。
在另一种实现方式中,若顶点i1,顶点i2和顶点i3不共线,则计算机设备可以基于顶点i1,顶点i2和顶点i3确定目标平面。进一步地,若边i1i2大于边i2i3,则将i2沿i1i3的平行线移动,直至边i1i2等于边i2i3;相应地,若边i1i2小于边i2i3,则将i2沿i1i3的平行线移动(与边i1i2大于边i2i3时的移动方向相反),直至边i1i2等于边i2i3。
在另一种实施方式中,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中待优化的顶点。举例来说,假设第一网格包括10个顶点,其中包括4个需要优化的顶点(即待优化的顶点),这4个待优化的顶点可以通过区域指示信息进行指示。计算机设备根据区域指示信息,确定待优化的顶点所属的目标共线顶点集合,并获取目标共线集合中的待优化的顶点的移动信息,再按照每个待优化的顶点的移动信息在第一网格中对该待优化的顶点进行移动,得到第二网格。具体的实施方式可以参考上一实施方式,在此不再赘述。
S304、按照各个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。
在确定每个顶点的移动信息后,计算机设备按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。图6为本申请实施例提供的一种顶点的移动示意图。如图6所示,计算机设备按照顶点P的移动方向和移动距离对顶点P进行移动,得到平滑处理后的顶点P。
在一种实施方式中,若任一顶点的移动距离小于或等于第一距离阈值,则计算机设备保持该顶点的位置不变;相应地,若任一顶点的移动距离大于第一距离阈值,则计算机设备按照该顶点的移动信息在第一网格中对该顶点进行移动。在第一网格的各个顶点均按照相应的移动信息移动(平滑处理)完毕后,即可得到第二网格。
S305、基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵。
步骤S305的具体实施方式可参考图2中步骤S204的实施方式,在此不再赘述。
在一种实施方式中,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中待优化的顶点,第一蒙皮矩阵中包括N个权值,N为大于1的整数。
计算机设备根据区域指示信息,确定第一蒙皮矩阵中与待优化的顶点关联的P个权值,P为小于等于N的正整数。举例来说,假设第一网格的顶点数为A,对象的关节点数为B,A为大于2的整数,B为大于1的整数;则第一蒙皮矩阵的维度为AB (即N=A/>B),若待优化的顶点的数量为K(K为小于等于A的正整数),则第一蒙皮矩阵中与待优化的顶点关联的权值数量为K/>B(即P=K/>B)。在确定第一蒙皮矩阵中与待优化的顶点关联的P个权值后,计算机设备基于第二网格对P个权值进行优化,得到第二蒙皮矩阵。也就是说,本申请提供的数据处理方法可以通过指示网格中待优化的顶点,来对第一蒙皮矩阵中的部分权值进行优化,得到第二蒙皮矩阵,更加灵活。
S306、获取目标姿势对应的目标旋转平移数据。
目标姿势可以是由动画创作人员指示的,也可以是计算机设备随机生成的;例如,计算机设备可以获取关节点指示信息,关节点指示信息用于指示对象的目标关节点(如需要进行旋转平移的关节点),基于关节点指示信息确定目标关节点,并在预设范围内随机生成目标关节点的旋转平移数据(即目标姿势对应的目标旋转平移数据)。
图7为本申请实施例提供的一种关节点的旋转平移示意图。如图7所示,对姿势A中的关节点1和关节点2进行旋转可以得到姿势B,对姿势A中的关节点3和关节点4进行旋转可以得到姿势C。
S307、通过目标旋转平移数据和第二蒙皮矩阵对对象的基础网格进行旋转平移处理,得到对象在目标姿势下的网格。
在一种实施方式中,计算机设备基于目标旋转平移数据(如旋转平移矩阵)和第二蒙皮矩阵对对象的基础网格进行线性混合蒙皮(LBS),得到对象在目标姿势下的网格。
图8为本申请实施例提供的一种数据处理示意图。如图8所示,计算机设备首先基于对象的基础网格和关节点,(如通过蒙皮矩阵预测模型)生成对象的第一蒙皮矩阵。再基于第一蒙皮矩阵和对象的基础网格,得到对象的第一网格。接着对对象的第一网格进行平滑处理,得到对象的第二网格。通过第一网格和第二网格之间的差异对第一蒙皮矩阵进行迭代优化得到第二蒙皮矩阵。通过第二蒙皮矩阵即可得到对象在目标姿势下的网格。
图9为本申请实施例提供的一种网格效果对比图。如图9所示,第一目标网格是通过第一蒙皮矩阵得到的对象在目标姿势下的网格,第二目标网格是通过第二蒙皮矩阵得到的对象在目标姿势下的网格。对比可见,通过第二蒙皮矩阵得到的对象在目标姿势下的网格相比于通过第一蒙皮矩阵得到的对象在目标姿势下的网格来说,网格质量更高;例如,网格中的线条(也可以称为网格的布线)平直度更高。
可以理解的是,上述步骤S302-步骤S305可以重复执行,以达到对对象的蒙皮矩阵进行迭代更新的目的。具体来说,在得到第二蒙皮矩阵后,计算机设备可以基于第二蒙皮矩阵对对象的基础网格进行旋转平移处理,并将得到的网格作为新的第一网格。按照上述方式对对象的蒙皮矩阵进行迭代优化,并在满足迭代优化结束条件(如迭代次数达到指定的值,或者第一网格和第二网格之间的差异小于差异阈值等)时,输出最终迭代得到的蒙皮矩阵。在一个实施例中,对象的待优化信息还包括第一蒙皮矩阵的迭代次数,当计算机设备按照步骤S302-步骤S305中的实施方式对第一蒙皮矩阵进行迭代优化,并达到待优化信息中指示的迭代次数后,输出最终得到的第二蒙皮矩阵。图10为本申请实施例提供的一种基于不同迭代次数得到的第二蒙皮矩阵生成的网格的效果示意图。如图10所示,随着迭代次数的增加(迭代次数未达到目标数值时),基于第二蒙皮矩阵生成的网格的质量逐步提高;当迭代次数达到目标数值(对于不同网格来说,目标数值不同)后,基于第二蒙皮矩阵生成的网格的质量基本相同。可见,通过对第一蒙皮矩阵进行迭代优化可以进一步提高第二蒙皮矩阵的稳定性,从而提高基于第二蒙皮矩阵构造的网格的质量。
本申请实施例中,获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,第二蒙皮矩阵用于构造对象在任一姿势下的网格。可见,通过第二网格对第一蒙皮矩阵进行优化,可以提高第二蒙皮矩阵的平滑度,进而提高基于第二蒙皮矩阵构造的网格的质量。此外,还可以通过对第一蒙皮矩阵进行迭代优化,或者通过多个第一网格对第一蒙皮矩阵进行优化,进一步提高第二蒙皮矩阵的稳定性,从而提高基于第二蒙皮矩阵构造的网格的质量。通过指示网格中待优化的顶点,来对第一蒙皮矩阵中的部分权值进行优化,更加灵活。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图11,图11为本申请实施例提供的一种数据处理装置的结构示意图,图11所示的数据处理装置可以搭载在计算机设备中,该计算机设备具体可以是终端设备或者服务器。图11所示的数据处理装置可以用于执行上述图2和图3所描述的方法实施例中的部分或全部功能。请参见图11,该数据处理装置包括:
获取单元1101,用于获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的;
处理单元1102,用于对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
以及用于对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格;
以及用于基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;第二蒙皮矩阵用于构造对象在任一姿势下的网格。
在一种实施方式中,处理单元1102用于,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,具体用于:
获取至少一组共线顶点集合中的至少一个顶点的移动信息;
按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。
在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合;
处理单元1102用于,获取至少一组共线顶点集合中的至少一个顶点的移动信息,具体用于:
基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。
在一种实施方式中,移动信息包括移动方向和移动距离;处理单元1102用于,基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息,具体用于:
若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离;
若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。
在一种实施方式中,移动信息包括移动距离;处理单元1102按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格的过程包括:
若顶点i2的移动距离小于或等于第一距离阈值,则保持顶点i2的位置不变;
若顶点i2的移动距离大于第一距离阈值,则按照顶点i2的移动信息在第一网格中对顶点i2进行移动,得到平滑处理后的顶点i2。
在一种实施方式中,第一网格的数量为M个,每个第一网格对应一个旋转平移数据,M为正整数;第二网格的数量为M个,M个第一网格与M个第二网格一一对应;处理单元1102用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
按照预设步长对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵;
基于优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对对象的基础网格进行旋转平移处理,得到M个目标网格;
若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。
在一种实施方式中,处理单元1102用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
获取第一网格对应的旋转平移数据,旋转平移数据用于指示将基础网格变换为第一网格的过程中对象的各个关节点的旋转平移量;
基于第二网格与第一网格之间的差异,以及旋转平移数据,计算目标蒙皮矩阵;
采用目标蒙皮矩阵替换第一蒙皮矩阵,得到第二蒙皮矩阵。
在一种实施方式中,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中待优化的顶点;处理单元1102用于,对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格,具体用于:
根据区域指示信息,确定待优化的顶点所属的目标共线顶点集合;
对目标共线顶点集合中的待优化的顶点在第一网格中的位置进行平滑处理,得到第二网格。
在一种实施方式中,第一蒙皮矩阵中包括N个权值,N为大于1的整数;处理单元1102用于,基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,具体用于:
根据区域指示信息,确定第一蒙皮矩阵中与待优化的顶点关联的P个权值,P为小于等于N的正整数;
基于第二网格对P个权值进行优化,得到第二蒙皮矩阵。
在一种实施方式中,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;处理单元1102用于,对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,具体用于:
获取第一网格中的起始有向边,并将起始有向边关联的顶点添加至起始有向边的共线顶点集合中;
基于起始有向边和起始有向边的共线顶点集合,从第一网格中筛选出目标有向边;目标有向边与起始有向边的夹角小于夹角阈值,且目标有向边关联的第一顶点属于起始有向边的共线顶点集合;
将目标有向边关联的第二顶点添加至起始有向边的共线顶点集合中。
在一种实施方式中,处理单元1102用于,获取第一网格中的起始有向边,具体用于:
获取候选有向边集合,每条候选有向边关联的两个顶点中至少存在一个顶点属于第一网格的边缘顶点;
随机从候选有向边集合选择一条候选有向边,将被选中的候选有向边作为第一网格中的起始有向边,并从候选有向边集合中移除被选中的候选有向边。
在一种实施方式中,处理单元1102还用于:
基于目标有向边对候选有向边集合进行去重处理,得到更新后的候选有向边集合。
在一种实施方式中,处理单元1102用于,获取对象的待优化信息,具体用于:
获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵,以及M个旋转平移数据,M为正整数;
通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格;
基于M个第一网格生成对象的待优化信息。
在一种实施方式中,处理单元1102还用于:
获取目标姿势对应的目标旋转平移数据;
通过目标旋转平移数据和第二蒙皮矩阵对对象的基础网格进行旋转平移处理,得到对象在目标姿势下的网格。
根据本申请的一个实施例,图2和图3所示的数据处理方法所涉及的部分步骤可由图11所示的数据处理装置中的各个单元来执行。例如,图2中所示的步骤S201可由图11所示的获取单元1101执行,步骤S202-步骤S204可由图11所示的处理单元1102执行;图3中所示的步骤S301和步骤S306可由图11所示的获取单元1101执行,步骤S302 -步骤S305和步骤S307可由图11所示的处理单元1102执行。图11所示的数据处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机设备的通用计算装置上运行能够执行如图2和图3中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图11中所示的数据处理装置,以及来实现本申请实施例的数据处理方法。计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的数据处理装置解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图12,图12为本申请实施例提供的一种计算机设备的结构示意图,该计算机设备可以终端设备或者服务器。如图12所示,计算机设备至少包括处理器1201、通信接口1202和存储器1203。其中,处理器1201、通信接口1202和存储器1203可通过总线或其他方式连接。其中,处理器1201(或称中央处理器(Central Processing Unit,CPU))是计算机设备的计算核心以及控制核心,其可以解析计算机设备内的各类指令以及处理计算机设备的各类数据,例如:CPU可以用于解析对象向计算机设备所发出的开关机指令,并控制计算机设备进行开关机操作;再如:CPU可以在计算机设备内部结构之间传输各类交互数据,等等。通信接口1202可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器1201的控制可以用于收发数据;通信接口1202还可以用于计算机设备内部数据的传输以及交互。存储器1203(Memory)是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器1203既可以包括计算机设备的内置存储器,当然也可以包括计算机设备所支持的扩展存储器。存储器1203提供存储空间,该存储空间存储了计算机设备的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
本申请实施例还提供了一种计算机可读存储介质(Memory),计算机可读存储介质是计算机设备中的记忆设备,用于存放程序和数据。可以理解的是,此处的计算机可读存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机可读存储介质提供存储空间,该存储空间存储了计算机设备的处理系统。并且,在该存储空间中还存放了适于被处理器1201加载并执行的计算机程序。需要说明的是,此处的计算机可读存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机可读存储介质。
在一个实施例中,处理器1201通过运行存储器1203中的计算机程序,执行如下操作:
获取对象的待优化信息,待优化信息包括对象的第一网格,第一网格是基于对象的第一蒙皮矩阵对对象的基础网格进行旋转平移处理得到的;
对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格;
基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;第二蒙皮矩阵用于构造对象在任一姿势下的网格。
作为一种可选的实施例,处理器1201对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格的具体实施例为:
获取至少一组共线顶点集合中的至少一个顶点的移动信息;
按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格。
作为一种可选的实施例,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;第i组共线顶点集合包括顶点i1,顶点i2和顶点i3,顶点i1和顶点i2与第一有向边关联,顶点i2和顶点i3与第二有向边关联;第i组共线顶点集合为至少一组共线顶点集合中的任一组共线顶点集合;
处理器1201获取至少一组共线顶点集合中的至少一个顶点的移动信息的具体实施例为:
基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息。
作为一种可选的实施例,移动信息包括移动方向和移动距离;处理器1201基于顶点i1和顶点i2之间的第一距离,以及顶点i2和顶点i3之间的第二距离,确定顶点i2的移动信息的具体实施例为:
若顶点i1和顶点i2之间的第一距离大于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i1的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离;
若顶点i1和顶点i2之间的第一距离小于顶点i2和顶点i3之间的第二距离,则将顶点i2到顶点i3的方向确定为顶点i2的移动方向,并基于第一距离与第二距离的差值计算顶点i2的移动距离。
作为一种可选的实施例,移动信息包括移动距离;处理器1201按照每个顶点的移动信息在第一网格中对该顶点进行移动,得到第二网格的具体实施例为:
若顶点i2的移动距离小于或等于第一距离阈值,则保持顶点i2的位置不变;
若顶点i2的移动距离大于第一距离阈值,则按照顶点i2的移动信息在第一网格中对顶点i2进行移动,得到平滑处理后的顶点i2。
作为一种可选的实施例,第一网格的数量为M个,每个第一网格对应一个旋转平移数据,M为正整数;第二网格的数量为M个,M个第一网格与M个第二网格一一对应;处理器1201基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵的具体实施例为:
按照预设步长对第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵;
基于优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对对象的基础网格进行旋转平移处理,得到M个目标网格;
若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。
作为一种可选的实施例,处理器1201基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵的具体实施例为:
获取第一网格对应的旋转平移数据,旋转平移数据用于指示将基础网格变换为第一网格的过程中对象的各个关节点的旋转平移量;
基于第二网格与第一网格之间的差异,以及旋转平移数据,计算目标蒙皮矩阵;
采用目标蒙皮矩阵替换第一蒙皮矩阵,得到第二蒙皮矩阵。
作为一种可选的实施例,待优化信息还包括区域指示信息,区域指示信息用于指示第一网格中待优化的顶点;处理器1201对至少一组共线顶点集合中的至少一个顶点在第一网格中的位置进行平滑处理,得到第二网格的具体实施例为:
根据区域指示信息,确定待优化的顶点所属的目标共线顶点集合;
对目标共线顶点集合中的待优化的顶点在第一网格中的位置进行平滑处理,得到第二网格。
作为一种可选的实施例,第一蒙皮矩阵中包括N个权值,N为大于1的整数;处理器1201基于第二网格对第一蒙皮矩阵进行优化,得到第二蒙皮矩阵的具体实施例为:
根据区域指示信息,确定第一蒙皮矩阵中与待优化的顶点关联的P个权值,P为小于等于N的正整数;
基于第二网格对P个权值进行优化,得到第二蒙皮矩阵。
作为一种可选的实施例,第一网格包括至少两条有向边,每条有向边关联第一网格中的两个顶点;处理器1201对第一网格中的顶点进行共线检测,得到至少一组共线顶点集合的具体实施例为:
获取第一网格中的起始有向边,并将起始有向边关联的顶点添加至起始有向边的共线顶点集合中;
基于起始有向边和起始有向边的共线顶点集合,从第一网格中筛选出目标有向边;目标有向边与起始有向边的夹角小于夹角阈值,且目标有向边关联的第一顶点属于起始有向边的共线顶点集合;
将目标有向边关联的第二顶点添加至起始有向边的共线顶点集合中。
作为一种可选的实施例,处理器1201获取第一网格中的起始有向边的具体实施例为:
获取候选有向边集合,每条候选有向边关联的两个顶点中至少存在一个顶点属于第一网格的边缘顶点;
随机从候选有向边集合选择一条候选有向边,将被选中的候选有向边作为第一网格中的起始有向边,并从候选有向边集合中移除被选中的候选有向边。
作为一种可选的实施例,处理器1201通过运行存储器1203中的计算机程序,还执行如下操作:
基于目标有向边对候选有向边集合进行去重处理,得到更新后的候选有向边集合。
作为一种可选的实施例,处理器1201获取对象的待优化信息的具体实施例为:
获取对象的模型信息,模型信息包括对象的基础网格,对象的第一蒙皮矩阵,以及M个旋转平移数据,M为正整数;
通过每个旋转平移数据和第一蒙皮矩阵对对象的基础网格进行旋转平移处理,得到M个第一网格;
基于M个第一网格生成对象的待优化信息。
作为一种可选的实施例,处理器1201通过运行存储器1203中的计算机程序,还执行如下操作:
获取目标姿势对应的目标旋转平移数据;
通过目标旋转平移数据和第二蒙皮矩阵对对象的基础网格进行旋转平移处理,得到对象在目标姿势下的网格。
基于同一发明构思,本申请实施例中提供的计算机设备解决问题的原理与有益效果与本申请方法实施例中数据处理方法解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于被处理器加载并执行上述方法实施例的数据处理方法。
本申请实施例还提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的数据处理方法。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于申请所涵盖的范围。
Claims (15)
1.一种数据处理方法,其特征在于,所述方法包括:
获取对象的待优化信息,所述待优化信息包括所述对象的第一网格,所述第一网格是基于所述对象的第一蒙皮矩阵对所述对象的基础网格进行旋转平移处理得到的;
对所述第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
获取所述至少一组共线顶点集合中的至少一个顶点的移动信息;其中,顶点i2的移动信息是基于所述顶点i2与顶点i1之间的第一距离,以及所述顶点i2与顶点i3之间的第二距离确定的;所述顶点i1,所述顶点i2和所述顶点i3属于同一共线顶点集合,且所述顶点i1和所述顶点i2为所述第一网格中同一条边的两个顶点,所述顶点i2和所述顶点i3为所述第一网格中同一条边的两个顶点,所述顶点i2为所述第一网格中的任一个顶点;
按照每个顶点的移动信息在所述第一网格中对该顶点进行移动,得到第二网格;
基于所述第二网格对所述第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;所述第二蒙皮矩阵用于构造所述对象在任一姿势下的网格。
2.如权利要求1所述的方法,其特征在于,所述移动信息包括移动方向和移动距离;所述基于所述顶点i1和所述顶点i2之间的第一距离,以及所述顶点i2和所述顶点i3之间的第二距离,确定所述顶点i2的移动信息,包括:
若所述顶点i1和所述顶点i2之间的第一距离大于所述顶点i2和所述顶点i3之间的第二距离,则将所述顶点i2到所述顶点i1的方向确定为所述顶点i2的移动方向,并基于所述第一距离与所述第二距离的差值计算所述顶点i2的移动距离;
若所述顶点i1和所述顶点i2之间的第一距离小于所述顶点i2和所述顶点i3之间的第二距离,则将所述顶点i2到所述顶点i3的方向确定为所述顶点i2的移动方向,并基于所述第一距离与所述第二距离的差值计算所述顶点i2的移动距离。
3.如权利要求1所述的方法,其特征在于,所述移动信息包括移动距离;所述按照每个顶点的移动信息在所述第一网格中对该顶点进行移动,得到第二网格的过程包括:
若所述顶点i2的移动距离小于或等于第一距离阈值,则保持所述顶点i2的位置不变;
若所述顶点i2的移动距离大于所述第一距离阈值,则按照所述顶点i2的移动信息在所述第一网格中对所述顶点i2进行移动,得到平滑处理后的顶点i2。
4.如权利要求1所述的方法,其特征在于,所述第一网格的数量为M个,每个第一网格对应一个旋转平移数据,M为正整数;所述第二网格的数量为M个,M个第一网格与M个第二网格一一对应;所述基于所述第二网格对所述第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,包括:
按照预设步长对所述第一蒙皮矩阵进行优化,得到优化后的第一蒙皮矩阵;
基于所述优化后的第一蒙皮矩阵和每个第一网格对应的旋转平移数据,对所述对象的基础网格进行旋转平移处理,得到M个目标网格;
若每个目标网格中的各个顶点与该目标网格对应的第二网格中相应顶点之间的欧式距离均小于第二距离阈值,则将所述优化后的第一蒙皮矩阵确定为第二蒙皮矩阵。
5.如权利要求1所述的方法,其特征在于,所述基于所述第二网格对所述第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,包括:
获取所述第一网格对应的旋转平移数据,所述旋转平移数据用于指示将所述基础网格变换为所述第一网格的过程中所述对象的各个关节点的旋转平移量;
基于所述第二网格与所述第一网格之间的差异,以及所述旋转平移数据,计算目标蒙皮矩阵;
采用所述目标蒙皮矩阵替换所述第一蒙皮矩阵,得到第二蒙皮矩阵。
6.如权利要求1所述的方法,其特征在于,所述待优化信息还包括区域指示信息,所述区域指示信息用于指示所述第一网格中待优化的顶点;所述对所述至少一组共线顶点集合中的至少一个顶点在所述第一网格中的位置进行平滑处理,得到第二网格,包括:
根据所述区域指示信息,确定待优化的顶点所属的目标共线顶点集合;
对所述目标共线顶点集合中的待优化的顶点在所述第一网格中的位置进行平滑处理,得到第二网格。
7.如权利要求6所述的方法,其特征在于,所述第一蒙皮矩阵中包括N个权值,N为大于1的整数;所述基于所述第二网格对所述第一蒙皮矩阵进行优化,得到第二蒙皮矩阵,包括:
根据所述区域指示信息,确定所述第一蒙皮矩阵中与所述待优化的顶点关联的P个权值,P为小于等于N的正整数;
基于所述第二网格对所述P个权值进行优化,得到第二蒙皮矩阵。
8.如权利要求1所述的方法,其特征在于,所述第一网格包括至少两条有向边,每条有向边关联所述第一网格中的两个顶点;所述对所述第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,包括:
获取所述第一网格中的起始有向边,并将所述起始有向边关联的顶点添加至所述起始有向边的共线顶点集合中;
基于所述起始有向边和所述起始有向边的共线顶点集合,从所述第一网格中筛选出目标有向边;所述目标有向边与所述起始有向边的夹角小于夹角阈值,且所述目标有向边关联的第一顶点属于所述起始有向边的共线顶点集合;
将所述目标有向边关联的第二顶点添加至所述起始有向边的共线顶点集合中。
9.如权利要求8所述的方法,其特征在于,所述获取所述第一网格中的起始有向边,包括:
获取候选有向边集合,每条候选有向边关联的两个顶点中至少存在一个顶点属于所述第一网格的边缘顶点;
随机从所述候选有向边集合选择一条候选有向边,将被选中的候选有向边作为所述第一网格中的起始有向边,并从所述候选有向边集合中移除所述被选中的候选有向边。
10.如权利要求9所述的方法,其特征在于,所述方法还包括:
基于所述目标有向边对所述候选有向边集合进行去重处理,得到更新后的候选有向边集合。
11.如权利要求1所述的方法,其特征在于,所述获取对象的待优化信息,包括:
获取对象的模型信息,所述模型信息包括所述对象的基础网格,所述对象的第一蒙皮矩阵,以及M个旋转平移数据,M为正整数;
通过每个旋转平移数据和所述第一蒙皮矩阵对所述对象的基础网格进行旋转平移处理,得到M个第一网格;
基于所述M个第一网格生成所述对象的待优化信息。
12.如权利要求1所述的方法,其特征在于,所述方法还包括:
获取目标姿势对应的目标旋转平移数据;
通过所述目标旋转平移数据和所述第二蒙皮矩阵对所述对象的基础网格进行旋转平移处理,得到所述对象在所述目标姿势下的网格。
13.一种数据处理装置,其特征在于,所述数据处理装置包括:
获取单元,用于获取对象的待优化信息,所述待优化信息包括所述对象的第一网格,所述第一网格是基于所述对象的第一蒙皮矩阵对所述对象的基础网格进行旋转平移处理得到的;
处理单元,用于对所述第一网格中的顶点进行共线检测,得到至少一组共线顶点集合,每组共线顶点集合包括至少三个满足共线条件的顶点;
所述获取单元,还用于获取所述至少一组共线顶点集合中的至少一个顶点的移动信息;其中,顶点i2的移动信息是基于所述顶点i2与顶点i1之间的第一距离,以及所述顶点i2与顶点i3之间的第二距离确定的;所述顶点i1,所述顶点i2和所述顶点i3属于同一共线顶点集合,且所述顶点i1和所述顶点i2为所述第一网格中同一条边的两个顶点,所述顶点i2和所述顶点i3为所述第一网格中同一条边的两个顶点,所述顶点i2为所述第一网格中的任一个顶点;
所述处理单元,还用于按照每个顶点的移动信息在所述第一网格中对该顶点进行移动,得到第二网格;
以及用于基于所述第二网格对所述第一蒙皮矩阵进行优化,得到第二蒙皮矩阵;所述第二蒙皮矩阵用于构造所述对象在任一姿势下的网格。
14.一种计算机设备,其特征在于,包括:
存储器,所述存储器中存储有计算机程序;
处理器,用于加载所述计算机程序实现如权利要求1-12任一项所述的数据处理方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-12任一项所述的数据处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310614659.5A CN116342771B (zh) | 2023-05-29 | 2023-05-29 | 一种数据处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310614659.5A CN116342771B (zh) | 2023-05-29 | 2023-05-29 | 一种数据处理方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116342771A CN116342771A (zh) | 2023-06-27 |
CN116342771B true CN116342771B (zh) | 2023-08-15 |
Family
ID=86884493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310614659.5A Active CN116342771B (zh) | 2023-05-29 | 2023-05-29 | 一种数据处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116342771B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111145319A (zh) * | 2019-11-07 | 2020-05-12 | 北京中科深智科技有限公司 | 一种实时自动骨骼绑定和蒙皮的方法和系统 |
CN115049769A (zh) * | 2022-08-17 | 2022-09-13 | 深圳泽森软件技术有限责任公司 | 角色动画生成方法、装置、计算机设备和存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10061871B2 (en) * | 2015-07-27 | 2018-08-28 | Technische Universiteit Delft | Linear blend skinning weight optimization utilizing skeletal pose sampling |
JP2021524627A (ja) * | 2018-05-22 | 2021-09-13 | マジック リープ, インコーポレイテッドMagic Leap,Inc. | 仮想アバタをアニメーション化するための骨格システム |
US11995771B2 (en) * | 2021-06-17 | 2024-05-28 | University Of Georgia Research Foundation, Inc. | Automated weighting generation for three-dimensional models |
-
2023
- 2023-05-29 CN CN202310614659.5A patent/CN116342771B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111145319A (zh) * | 2019-11-07 | 2020-05-12 | 北京中科深智科技有限公司 | 一种实时自动骨骼绑定和蒙皮的方法和系统 |
CN115049769A (zh) * | 2022-08-17 | 2022-09-13 | 深圳泽森软件技术有限责任公司 | 角色动画生成方法、装置、计算机设备和存储介质 |
Non-Patent Citations (1)
Title |
---|
Rodolphe Vaillant 等.Implicit Skinning: Real-Time Skin Deformation with Contact Modeling.ACM Transactions on Graphics.2013,第125:1-125:8页. * |
Also Published As
Publication number | Publication date |
---|---|
CN116342771A (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10304244B2 (en) | Motion capture and character synthesis | |
CN107223268B (zh) | 一种三维点云模型重建方法及装置 | |
CN111260764B (zh) | 一种制作动画的方法、装置及存储介质 | |
CN115409933B (zh) | 多风格纹理贴图生成方法及其装置 | |
CN114842123A (zh) | 三维人脸重建模型训练和三维人脸形象生成方法及装置 | |
CN115147265B (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN112991503A (zh) | 一种基于蒙皮权重的模型训练方法、装置、设备及介质 | |
WO2016038091A1 (en) | System, method and computer program product for automatic optimization of 3d textured models for network transfer and real-time rendering | |
CN115018992A (zh) | 发型模型的生成方法、装置、电子设备及存储介质 | |
CN113593033A (zh) | 一种基于网格细分结构的三维模型特征提取方法 | |
US20210264659A1 (en) | Learning hybrid (surface-based and volume-based) shape representation | |
CN114708374A (zh) | 虚拟形象生成方法、装置、电子设备和存储介质 | |
CN116342771B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN109448123A (zh) | 模型的控制方法及装置、存储介质、电子设备 | |
CN110751026B (zh) | 视频处理方法及相关装置 | |
Chen et al. | Skeleton-driven surface deformation through lattices for real-time character animation | |
CN115482557B (zh) | 人体图像生成方法、系统、设备及存储介质 | |
US10740968B2 (en) | Patch-based surface relaxation | |
CN116168177A (zh) | 一种虚拟对象换脸方法、装置、计算机设备及存储介质 | |
CN115690267B (zh) | 一种动画处理方法、装置、设备、存储介质及产品 | |
WO2024037591A1 (zh) | 数据处理方法、装置、设备及存储介质 | |
CN116402989B (zh) | 数据处理方法、装置、设备以及介质 | |
WO2024139520A1 (zh) | 一种视频处理方法、装置、设备、存储介质及产品 | |
CN116486108B (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN114820908B (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: 40088221 Country of ref document: HK |