CN116402989B - 数据处理方法、装置、设备以及介质 - Google Patents
数据处理方法、装置、设备以及介质 Download PDFInfo
- Publication number
- CN116402989B CN116402989B CN202310672720.1A CN202310672720A CN116402989B CN 116402989 B CN116402989 B CN 116402989B CN 202310672720 A CN202310672720 A CN 202310672720A CN 116402989 B CN116402989 B CN 116402989B
- Authority
- CN
- China
- Prior art keywords
- model
- shape
- vertex
- candidate
- polygon
- 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
- 238000003672 processing method Methods 0.000 title abstract description 26
- 238000000547 structure data Methods 0.000 claims abstract description 122
- 238000009499 grossing Methods 0.000 claims abstract description 93
- 238000012545 processing Methods 0.000 claims abstract description 85
- 238000000034 method Methods 0.000 claims abstract description 63
- 238000011156 evaluation Methods 0.000 claims description 137
- 238000004590 computer program Methods 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 15
- 230000009466 transformation Effects 0.000 claims description 11
- 230000000694 effects Effects 0.000 abstract description 27
- 238000010586 diagram Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 25
- 210000000988 bone and bone Anatomy 0.000 description 22
- 230000006870 function Effects 0.000 description 14
- 230000033001 locomotion Effects 0.000 description 9
- 238000004891 communication Methods 0.000 description 8
- 210000000245 forearm Anatomy 0.000 description 8
- 239000013598 vector Substances 0.000 description 7
- 238000004519 manufacturing process Methods 0.000 description 6
- PCTMTFRHKVHKIS-BMFZQQSSSA-N (1s,3r,4e,6e,8e,10e,12e,14e,16e,18s,19r,20r,21s,25r,27r,30r,31r,33s,35r,37s,38r)-3-[(2r,3s,4s,5s,6r)-4-amino-3,5-dihydroxy-6-methyloxan-2-yl]oxy-19,25,27,30,31,33,35,37-octahydroxy-18,20,21-trimethyl-23-oxo-22,39-dioxabicyclo[33.3.1]nonatriaconta-4,6,8,10 Chemical compound C1C=C2C[C@@H](OS(O)(=O)=O)CC[C@]2(C)[C@@H]2[C@@H]1[C@@H]1CC[C@H]([C@H](C)CCCC(C)C)[C@@]1(C)CC2.O[C@H]1[C@@H](N)[C@H](O)[C@@H](C)O[C@H]1O[C@H]1/C=C/C=C/C=C/C=C/C=C/C=C/C=C/[C@H](C)[C@@H](O)[C@@H](C)[C@H](C)OC(=O)C[C@H](O)C[C@H](O)CC[C@@H](O)[C@H](O)C[C@H](O)C[C@](O)(C[C@H](O)[C@H]2C(O)=O)O[C@H]2C1 PCTMTFRHKVHKIS-BMFZQQSSSA-N 0.000 description 5
- 238000009877 rendering Methods 0.000 description 5
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000000717 retained effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000008439 repair process Effects 0.000 description 3
- 210000000689 upper leg Anatomy 0.000 description 3
- 238000005452 bending Methods 0.000 description 2
- 230000002146 bilateral effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000013138 pruning Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 229910052799 carbon Inorganic materials 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 229910003460 diamond Inorganic materials 0.000 description 1
- 239000010432 diamond Substances 0.000 description 1
- 230000002500 effect on skin Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2457—Query processing with adaptation to user needs
-
- 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
- Y02T90/00—Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请实施例提供了一种数据处理方法、装置、设备以及介质,该方法包括:获取虚拟对象对应的三维网格模型以及模型顶点对应的初始蒙皮权重;将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径;根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径中的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。通过本申请实施例,可以提高蒙皮处理效果。
Description
技术领域
本申请涉及互联网技术领域,尤其涉及一种数据处理方法、装置、设备以及介质。
背景技术
骨骼蒙皮是用于将三维网格(3D Mesh)模型上的模型顶点与骨骼关节绑定的技术。由于三维网格模型上的顶点通常会受到多个不同关节不同程度的控制,因此需要通过骨骼蒙皮技术为三维网格模型上的顶点配置蒙皮权重,该蒙皮权重可以用于决定不同关节的动作对于三维网格模型上的顶点的影响程度。
目前的游戏制作领域中,美工技术人员需要根据自身经验认知手动为三维网格模型上的每个顶点配置蒙皮权重,各个顶点的蒙皮权重可以用于创建游戏虚拟对象的运动姿态。游戏制作领域中所涉及的游戏虚拟对象越来越多样化,基于自身经验认知手动配置的蒙皮权重可能会存在较大的误差,造成游戏虚拟对象在运动时,衣物穿模、畸形或布线曲折,进而降低了游戏虚拟对象的蒙皮处理效果。
发明内容
本申请实施例提供一种数据处理方法、装置、设备以及介质,可以提高虚拟对象的蒙皮处理效果。
本申请实施例一方面提供了一种数据处理方法,包括:
获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重;
将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边;
获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径;
根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
本申请实施例一方面提供了一种数据处理装置,包括:
模型获取单元,用于获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重;
多边形合并单元,用于将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边;
共线顶点获取单元,用于获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径;
权重平滑处理单元,用于根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
蒙皮处理单元,用于根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
其中,多边形合并单元将三维网格模型中的第一形状多边形对合并为第二形状多边形,包括:
在三维网格模型中确定第一形状多边形集合,获取第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数;第二形状评估系数用于衡量候选多边形为矩形的程度;
获取每一个候选多边形中的两个第一形状多边形之间的二面角,将二面角大于角度阈值的候选多边形组成第一候选多边形集合;
将与第一候选多边形集合中的候选多边形q存在重叠区域的候选多边形组合为第二候选多边形集合;第二候选多边形集合为第一候选多边形集合的子集;
若候选多边形q对应的第二形状评估系数大于系数阈值,且候选多边形q对应的第二形状评估系数大于第二候选多边形集合所包含的候选多边形对应的第二形状评估系数,则将候选多边形q确定为由第一形状多边形对合并而成的第二形状多边形。
其中,多边形合并单元在三维网格模型中确定第一形状多边形集合,包括:
在虚拟对象的蒙皮处理页面中,显示三维网格模型和模型区域选择控件;
响应针对模型区域选择控件的触发操作,将触发操作所选中的模型区域确定为三维网格模型中的待处理顶点区域;
将待处理顶点区域所包含的第一形状多边形组合为第一形状多边形集合。
其中,多边形合并单元获取第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数,包括:
将第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形添加至第三候选多边形集合;第三候选多边形集合包括第一候选多边形集合;
获取第三候选多边形集合中的候选多边形q对应的顶点集合,获取由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数;第一形状评估系数用于衡量第一形状多边形为等边多边形的程度;
根据由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定候选多边形q对应的第二形状评估系数。
其中,多边形合并单元获取由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,包括:
在由顶点集合所包含的模型顶点所构成的多个第一形状多边形中获取第一形状多边形j;
获取第一形状多边形j对应的多边形面积,以及获取第一形状多边形j对应的边长平方和;
根据多边形面积与边长平方和之间的比值,确定第一形状多边形j对应的第一形状评估系数。
其中,候选多边形q为四边形,由顶点集合中的模型顶点所构成的多个第一形状多边形包括三角形t1、三角形t2、三角形t3以及三角形t4;
多边形合并单元根据由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定候选多边形q对应的第二形状评估系数,包括:
获取三角形t1对应的第一形状评估系数与三角形t2对应的第一形状评估系数之间的第一系数乘积,获取三角形t3对应的第一形状评估系数与三角形t4对应的第一形状评估系数之间的第二系数乘积;
将第二系数乘积与第一系数乘积之间的比值,确定为候选多边形q对应的第二形状评估系数;
其中,三角形t1和三角形t2所对应的第一形状评估系数,大于或等于三角形t3和三角形t4所对应的第一形状评估系数。
其中,共线顶点获取单元获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径,包括:
将候选网格模型中的边转化为具有相反方向的两条半边,生成候选网格模型对应的半边结构数据,在半边结构数据的边界半边中确定起始半边,按照起始半边的方向获取起始半边在半边结构数据中的第一邻接半边集合;
若第一邻接半边集合中存在与起始半边共线的第一邻接半边,则将起始半边和第一邻接半边确定为初始共线路径,按照第一邻接半边的方向获取第一邻接半边在半边结构数据中的第二邻接半边集合;
若第二邻接半边集合中不存在与第一邻接半边共线的第二邻接半边,或者第二邻接半边集合中与第一邻接半边共线的第二邻接半边为起始半边,则将初始共线路径确定为半边结构数据中的候选共线路径;
为候选共线路径所包含的半边设置已遍历标识,直至半边结构数据所包含的半边均携带已遍历标识,得到半边结构数据中的多条候选共线路径;
若多条候选共线路径中存在起始半边共线的候选共线路径L1和候选共线路径L2,则将候选共线路径L1和候选共线路径L2合并为共线顶点路径。
其中,该装置还包括:
邻接半边确定单元,用于将第一邻接半边集合中与起始半边具有最小夹角的半边确定为第一邻接半边;
共线半边确定单元,用于若起始半边与第一邻接半边之间的夹角余弦大于余弦阈值,则确定起始半边和第一邻接半边共线;
不共线半边确定单元,用于若起始半边与第一邻接半边之间的夹角余弦小于或等于余弦阈值,则确定起始半边和第一邻接半边不共线。
其中,权重平滑处理单元根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取三维网格模型对应的平滑窗口;
根据共线顶点路径在半边结构数据中的路径方向,在共线顶点路径上滑动平滑窗口,获取平滑窗口所覆盖的模型顶点对应的初始蒙皮权重的权重平均值;
将权重平均值确定为平滑窗口所覆盖的中心顶点对应的蒙皮更新权重。
其中,权重平滑处理单元根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取三维网格模型对应的平滑滤波器,以及获取共线顶点路径所包含的各个模型顶点对应的邻域;邻域中的顶点数量与平滑滤波器的尺寸相关联;
根据共线顶点路径在半边结构数据中的路径方向,通过平滑滤波器对共线顶点路径中的模型顶点p对应的初始蒙皮权重,以及模型顶点p的邻域中的模型顶点对应的初始蒙皮权重进行滤波处理,得到加权平均权重;
将加权平均权重确定为共线顶点路径所包含的模型顶点p对应的蒙皮更新权重。
其中,蒙皮处理单元根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理,包括:
获取虚拟对象对应的对象骨骼,以及获取对象骨骼所包含的骨骼关节对应的骨骼变换参数;
根据三维网格模型中的模型顶点对应的初始顶点位置、蒙皮更新权重以及骨骼变换参数,确定三维网格模型中的模型顶点对应的顶点更新位置;
根据三维网格模型中的模型顶点对应的顶点更新位置,将对象骨骼与三维网格模型进行绑定,得到虚拟对象对应的蒙皮结果。
本申请实施例一方面提供了一种计算机设备,包括存储器和处理器,存储器与处理器相连,存储器用于存储计算机程序,处理器用于调用计算机程序,以使得该计算机设备执行本申请实施例中上述一方面提供的方法。
本申请实施例一方面提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序适于由处理器加载并执行,以使得具有处理器的计算机设备执行本申请实施例中上述一方面提供的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述一方面提供的方法。
本申请实施例中,通过获取虚拟对象对应的三维网格模型以及该三维网格模型中的模型顶点对应的初始蒙皮权重,将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形中的对角线,得到候选网格模型;基于候选网格模型对应的半边结构数据,在合并而成的第二形状多边形上搜索共线顶点路径,按照共线顶点路径的方向对共线顶点路径中的模型顶点对应的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,由此可以修复三维网格模型中的不平滑权重,提升模型顶点的权重平滑度;基于模型顶点对应的蒙皮更新权重对虚拟对象进行蒙皮处理,可以提高虚拟对象的蒙皮处理效果。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种数据处理系统的结构示意图;
图2是本申请实施例提供的一种三维网格模型中的共线顶点路径的搜索示意图;
图3是本申请实施例提供的一种数据处理方法的流程示意图一;
图4是本申请实施例提供的一种候选网格模型的结构示意图;
图5是本申请实施例提供的一种半边结构数据的示意图;
图6是本申请实施例提供的一种共线顶点路径对应的蒙皮权重平滑处理结果的示意图;
图7是本申请实施例提供的一种蒙皮处理示意图;
图8是本申请实施例提供的一种数据处理方法的流程示意图二;
图9是本申请实施例提供的一种不同的第一形状多边形对应的第一形状评估系数的示意图;
图10是本申请实施例提供的一种候选多边形对应的第二形状评估系数的计算示意图;
图11是本申请实施例提供的一种不同的候选多边形对应的第二形状评估系数的示意图;
图12是本申请实施例提供的一种三维网格模型中的第一形状多边形对的合并示意图;
图13是本申请实施例提供的一种基于蒙皮更新权重进行蒙皮处理的效果示意图;
图14是本申请实施例提供的一种修复三维网格模型的蒙皮权重的场景示意图;
图15是本申请实施例提供的一种数据处理装置的结构示意图;
图16是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为便于后续内容的理解,下面对本申请实施例所涉及到的相关技术进行简单介绍。
三维网格模型(可以简称为3D模型):三维网格是一种用以多边形进行组合来离散表征三维模型的形式,三维网格数据可以包括顶点、边以及面。在游戏和三维建模领域中,一个物体可以用网格(例如三角形网格,或者四边形网格等,三角形为三维模型中最基本的图元)来近似表示,使用网格来建立一个物体的过程可以称为3D建模。可以理解的是,三维模型通常是中空的,基本都只是闭合的表面;从存储层面而言,网格体由一系列的顶点组成,既没有“面”也没有“体”,由于一个平面可以由3个顶点来确定,立体可以由闭合的面确定,不用额外的存储信息,以此达到压缩最大化的目的;因此三维网格模型可以认为是由若干个多边形(例如,三角形)组成的三维模型,只需存储三维网格模型中的顶点即可。
布线:三维网格模型中的多边形的边所组成的线条可以称为布线。布线的质量可以直接影响三维网格模型的效果。
蒙皮:蒙皮为三维动画术语,也可以用于三维游戏中,三维动画的一种制作技术。在三维模型制作软件中创建的模型基础上,为该模型添加骨骼。由于骨骼与模型是相互独立的,为了让骨骼驱动模型产生合理的运动,可以将模型绑定到骨骼上,该技术称之为蒙皮。蒙皮过程最终输出一个矩阵(即蒙皮权重,用于表征各个骨骼关节对三维网格模型中的模型顶点的影响权重),矩阵的尺寸由模型中的顶点数和该模型对应的骨骼数所确定;对于模型中的每一个顶点而言,在所有骨骼上的蒙皮权重之和为1。
半边结构:半边结构是一种网格表示方法,将网格的边作为基础的数据结构。在半边结构中可以认为网格的每条边均被划分为两条方向相反的半边(half-edge),通过这种半边结构可以快速的实现对邻接边的查询。
卷积:卷积可以认为是某一时刻的输出是由多个输入共同作用(叠加)的结果,若将参加卷积的函数看作区间的指示函数,卷积还可以认为是“滑动平均”的推广。
请参见图1,图1是本申请实施例提供的一种数据处理系统的结构示意图,该数据处理系统可以包括终端设备10a和服务器10b,终端设备10a和服务器10b之间可以通过网络进行连接,该网络可以为广域网,或者为局域网,或者为广域网和局域网的组合,使用有线或无线方式实现终端设备10a和服务器10b之间的数据传输。需要说明的是,图1所示的数据处理系统中的终端设备和服务器的数量可以为一个或多个,这里不对数据处理系统中的终端设备数量和服务器数量进行限制。
如图1所示,数据处理系统中的终端设备10a可以用于响应针对虚拟对象的蒙皮权重平滑指令,生成该虚拟对象对应的蒙皮权重平滑处理请求,进而可以将虚拟对象对应的蒙皮权重平滑处理请求发送至服务器10b。其中,虚拟对象可以是指通过三维软件制作的非真实对象;在游戏制作场景中,该虚拟对象可以包括但不限于游戏角色(例如,玩家角色、非玩家角色、道具等)、游戏角色的装饰物(例如,衣物)等;在视频制作场景中,该虚拟对象可以包括但不限于虚拟主播(或播报对象)、虚拟主播的装饰物等,本申请实施例对虚拟对象的类型不做限定。
服务器10b可以用于接收终端设备10a所发送的针对虚拟对象的蒙皮权重平滑处理请求,获取虚拟对象对应的三维网格模型以及该三维网格模型中的模型顶点对应的初始蒙皮权重,合并三维网格模型中的第一形状多边形组成近似的第二形状多边形;可以基于半边结构数据在这些近似的第二形状多边形上搜索共线顶点,得到三维网格模型的原始布线中最能表达模型主体结构的主要布线路径(例如,由搜索到的共线顶点所构成的共线顶点路径),进而可以对共线顶点路径中的模型顶点对应的初始蒙皮权重进行平滑处理,实现对不平滑的蒙皮权重的自动修复,得到修复后的蒙皮权重(可以称为蒙皮更新权重);通过蒙皮更新权重对虚拟对象进行蒙皮处理,以得到该虚拟对象对应的蒙皮结果。其中,本申请实施例所涉及的共线顶点可以是指三维网格模型中处于同一条平滑线上的模型顶点。
终端设备10a还可以用于接收服务器10b返回的针对虚拟对象的蒙皮结果,基于接收到的蒙皮结果可以渲染得到虚拟对象形态,并在终端设备10a中对虚拟对象形态进行显示。其中,上述虚拟对象形态可以是指具备各种姿态类型的虚拟对象,或者可以是指针对虚拟对象的动画等。
可以理解的是,本申请实施例提供的数据处理方法(具体可以为蒙皮权重平滑处理方法)可以由各种计算机设备执行,例如,可以由终端设备独立执行,或者可以由服务器独立执行,或者可以由终端设备和服务器协同执行。例如,终端设备(例如,终端设备10a)独立执行本申请实施例提供的数据处理方法;或者,由终端设备向服务器发送针对虚拟对象的蒙皮权重平滑处理请求,服务器(例如,服务器10b)根据接收到的蒙皮权重平滑处理请求执行本申请实施例提供的数据处理方法等。本申请实施例提供的数据处理方法可以应用于各种场景,包括但不限于云技术、人工智能、智慧交通、智能驾驶等。
其中,用于执行本申请实施例所提供的数据处理方法的服务器(例如,服务器10b)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器,本申请对服务器的类型不做限定。用于执行本申请实施例所提供的数据处理方法的终端设备(例如,终端设备10a)可以包括但不限于:智能手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(mobile internet device,MID)、可穿戴设备(例如智能手表、智能手环等)、智能语音交互设备(例如智能音箱)、智能家电(例如智能电视等)、车载设备、飞行器等电子设备,本申请对终端设备的类型不做限定。
在一个或多个实施例中,终端设备或服务器可以通过运行计算机程序来实现本申请实施例提供的数据处理方法。例如,计算机程序可以是操作系统中的原生程序或软件模块;或者可以是本地(Native)应用程序(APP,Application),即需要在操作系统中安装才能运行的程序;或者可以是子程序(或者可以称为小程序),即只需要下载到浏览器环境中就可以运行的程序;或者还可以是能够嵌入至任一应用程序中的子程序。总而言之,上述计算机程序可以是任意形式的应用程序、模块或插件;例如,该计算机程序可以为任意一个自动蒙皮工具,或者可以为任意一个人工蒙皮后处理的工具等。
在一个或多个实施例中,图1所示的数据处理系统中可以包括多个服务器,多个服务器可以组成一个区块链系统,而每一个服务器都可以是该区块链系统中的区块链节点,区块链系统中的任意区块链节点之间可以存在信息连接,区块链节点之间可以通过上述信息连接进行信息传输。其中,本申请实施例提供的数据处理方法所涉及的相关数据(例如,虚拟对象对应的三维网格模型、初始蒙皮权重、共线顶点路径、蒙皮更新权重等)可以保存在区块链中。
请参见图2,图2是本申请实施例提供的一种三维网格模型中的共线顶点路径的搜索示意图,本申请实施例以图1所示的数据处理系统中的终端设备10a为例,对三维网格模型中的共线顶点路径的搜索过程进行描述。在游戏制作场景或三维模型制作场景中,为三维网格模型中的模型顶点所配置的蒙皮权重很容易出现跳变,即各个模型顶点的蒙皮权重存在不平滑的问题,造成虚拟对象在运动时,外形出现畸形或布线曲折的问题,进而影响虚拟对象的最终展示效果。在实际应用场景中,若虚拟对象对应的三维网格模型中的模型顶点存在跳变的蒙皮权重,则可以通过终端设备10a中所安装的蒙皮工具发起针对虚拟对象的蒙皮权重平滑指令,终端设备10a接收到针对虚拟对象的蒙皮权重平滑指令之后,可以获取虚拟对象对应的三维网格模型20a,以及三维网格模型20a中的模型顶点对应的初始蒙皮权重。
其中,虚拟对象可以为游戏制作场景中的游戏角色,或者三维制作场景中的任一角色,该虚拟对象对应的三维网格模型20a可以为使用三角形网格来近似表示的三维模型,也就是说,该三维网格模型20a可以包括若干个三角形网格。可以理解的是,终端设备10a获取到的三维网格模型20a中的模型顶点已经配置了初始蒙皮权重,该初始蒙皮权重可以是美工技术人员根据自身经验认知手动配置的蒙皮权重,或者是采用目前的蒙皮工具自动为各个模型顶点配置的蒙皮权重,本申请对初始蒙皮权重的配置方式不做限制。三维网格模型20a所包含的每一个三角形的顶点均可以称为该三维网格模型20a的模型顶点。
为了更好地平滑三维网格模型20a中的每一个模型顶点所对应的初始蒙皮权重,可以在三维网格模型20a中检测出共线(可以包括共经线和共纬线)的模型顶点。可以理解的是,若直接在三维网格模型20a上搜索共线顶点,很容易得到曲线或斜线,因此,在本申请实施例中,终端设备10a可以将三维网格模型20a中的邻接三角形对合并为近似的四边形,保留四边形的四条边,删除四边形的对角线,即删除已合并为四边形的两个三角形之间共享的边,由此可以得到候选网格模型20b。换言之,候选网格模型20b可以认为是合并三维网格模型20a中的三角形对之后的效果,该候选网格模型20b可以包括若干个由三维网格模型20a中的邻接三角形对合并而成的四边形。
需要说明的是,候选网格模型20b中还有可能包含一小部分三角形网格,如三维网格模型20a中的一些邻接三角形对不能合并为四边形(如可能会组成三棱锥体)时,需要在候选网格模型20b中保留这些三角形网格,也就是说,这些邻接三角形对所包含的两个三角形之间共享的边不满足移除条件。如图2所示,候选网格模型20b中的虚线表示三维网格模型20a中不满足移除条件的边,候选网格模型20b中的加粗实线(如线条20d)表示三维网格模型20a的边界边(边界边无需检测,可以直接保留在候选网格模型20b中),候选网格模型20b中的细实线(候选网格模型20b中除虚线和粗实线之外的其余线条)表示保留的四边形的边。可以理解的是,三维网格模型20a中的模型顶点与候选网格模型20b中的模型顶点是一样的,即合并三维网格模型20a中的邻接三角形对不会对模型顶点产生影响。
进一步地,可以在候选网格模型20b中搜索共线顶点路径,如可以将候选网格模型20b转换为半边结构数据,并基于半边结构数据在合并而成的四边形上搜索共线顶点路径,得到三维网格模型20a中的共线顶点路径。可以理解的是,在候选网格模型20b可以搜索得到多条共线顶点路径,这些共线顶点路径可以如网格模型20c所示,例如,网格模型20c中的加粗实线可以表示为三维网格模型20a中的一条共线顶点路径。
在得到多条共线顶点路径之后,可以提取每一条共线顶点路径上的模型顶点所对应的初始蒙皮权重,并对每一条共线顶点路径上的每一个模型顶点对应的初始蒙皮权重进行平滑处理,得到修复后的蒙皮权重,此时修复后的蒙皮权重也可以称为蒙皮更新权重,以提升蒙皮权重的平滑度。其中,对初始蒙皮权重进行平滑处理时所采用的平滑处理方式可以包括但不限于:均值滤波、中值滤波、高斯滤波以及双边滤波等,本申请对此不做限定。基于三维网格模型20a中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理,可以提升蒙皮处理效果。
请参见图3,图3是本申请实施例提供的一种数据处理方法的流程示意图一。可以理解的是,该数据处理方法可以由计算机设备执行,该计算机设备可以为图1所示的数据处理系统中的终端设备10a,或者可以为图1所示的数据处理系统中的服务器10b,本申请对此不做限定;其中,该数据处理方法可以包括以下步骤S101至步骤S105:
步骤S101,获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重。
本申请实施例中,计算机设备可以设置有用于对三维网格模型对应的蒙皮权重进行平滑处理的应用程序,该应用程序可以任意一种蒙皮工具,或者任意一种人工蒙皮后处理的工具,本申请对应用程序的类型不做限定;计算机设备通过运行该应用程序可以实现对三维网格模型对应的蒙皮权重的平滑处理。在实际应用场景中,计算机设备在进行蒙皮权重平滑处理时,可以获取虚拟对象对应的三维网格模型,以及该三维网格模型中的模型顶点对应的初始蒙皮权重;例如,可以在存储空间(如前述应用程序的数据库、本地存储区域等)中预先存储一个或多个已配置好蒙皮权重的三维网格模型(不同的三维网格模型可以对应不同的虚拟对象),在进行蒙皮权重平滑处理时可以根据实际需求从存储空间中获取相应的三维网格模型并对其进行使用。
其中,虚拟对象对应的三维网格模型可以为使用三角形网格进行近似表示的三维模型,或者可以为使用四边形网格进行近似表示的三维模型,或者可以为使用三角形网格和四边形网格共同表示的三维模型,或者可以为使用其他多边形网格近似表示的三维模型,本申请对此不做限定。该三维网格模型中的每一个多边形网格(例如,三角形网格、四边形网格等)的顶点都可以称为模型顶点,因此该三维网格模型可以包括多个模型顶点;每个模型顶点都可以具有相应的顶点位置,该顶点位置可以采用三维位置坐标的形式进行描述。为该三维网格模型中的模型顶点已配置好的蒙皮权重可以称为初始蒙皮权重,蒙皮权重可以是指蒙皮处理中将三维网格模型中的模型顶点绑定到指定的骨骼时所分配的权重,蒙皮权重可以用于表征骨骼关节对模型顶点的影响权重。
步骤S102,将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边。
具体的,若三维网格模型是使用第一形状多边形网格近似表示的三维模型,或者是使用第一形状多边形网格和第二形状多边形网格组合表示的三维模型,即三维网格模型中包含第一形状多边形网格,则可以对三维网格模型中邻接的第一形状多边形对进行合并处理,得到第二形状多边形;其中,三维网格模型中邻接的第一形状多边形对中所包含的两个第一形状多边形之间具有共享的边。进一步地,可以从三维网格模型中移除第二形状多边形的对角线,即删除已合并为第二形状多边形的两个第一形状多边形在三维网格模型中共享的边,得到候选网格模型。
可以理解的是,在合并第一形状多边形对的过程中,三维网格模型中的每一个第一形状多边形最多只能与一个邻接的第一形状多边形合并为第二形状多边形。因此,当三维网格模型中的第一形状多边形j(可以为三维网格模型中的任意一个第一形状多边形)邻接多个第一形状多边形时,需要从多个邻接的第一形状多边形中选择与第一形状多边形j进行合并的第一形状多边形,具体可以表现为:哪个邻接的第一形状多边形与第一形状多边形j所组成的多边形越接近矩形,就选择这一个邻接的第一形状多边形与第一形状多边形j合并为最终的第二形状多边形。
举例来说,三维网格模型中与第一形状多边形j邻接的第一形状多边形包括第一形状多边形1、第一形状多边形2以及第一形状多边形3,那么可以将第一形状多边形1和第一形状多边形j组成多边形q1,将第一形状多边形2和第一形状多边形j组成多边形q2,将第一形状多边形3和第一形状多边形j组成多边形q3;若多边形q1、多边形q2以及多边形q3中的多边形q1是最接近矩形的多边形,则可以将多边形q1作为最终合并而成的第二形状多边形。
可选地,若三维网格模型中的第一形状多边形j与其邻接的第一形状多边形均无法合并为第二形状多边形,或者第一形状多边形j与其邻接的第一形状多边形所组成的多边形不满足合并条件(不满足合并条件的具体情形可以参见后续内容),则可以在候选网格模型中保留该第一形状多边形j。
需要说明的是,第一形状多边形和第二形状多边形可以是指不同类型的多边形网格,例如,第一形状多边形可以为三角形网格,第二形状多边形可以为四边形网格等;为便于理解,本申请实施例以第一形状多边形为三角形网格,第二形状多边形为四边形网格为例进行描述。
请参见图4,图4是本申请实施例提供的一种候选网格模型的结构示意图。如图4所示的候选网格模型30a为合并三维网格模型中的三角形后的效果,该候选网格模型30a中的加粗实线表示将三维网格模型中的邻接三角形对合并为四边形后保留下来的边;候选网格模型30a中的细实线表示三维网格模型中已删除的边,即已合并为四边形的两个三角形之间共享的边,候选网格模型30a其本质上并不包含细实线所表示的边,此处只是为了直观地呈现三维网格模型中已删除的边;候选网格模型30a中的虚线表示三维网格模型中不满足移除条件(也可以称为删除条件)的边,如无法与邻接的三角形合并为四边形的边;其中,由两个邻接的第一形状多边形合并而成的第二形状多边形的对角线满足移除条件。可以理解的是,三维网格模型的边界边可以无需检测,直接保留在候选网格模型30a中。本申请实施例可以通过对三维网格模型中的第一形状多边形对(三角形对)进行合并处理(相当于对三维网格模型进行剪枝),有助于提升后续共线顶点路径的搜索效率。
需要说明的是,若三维网格模型是使用第二形状多边形(四边形)网格近似表示的三维模型,则计算机设备在获取到该三维网格模型后无需执行步骤S102,而是在执行完步骤S101之后直接执行步骤S103。
步骤S103,获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径。
具体的,可以将候选网格模型中的边转化为具有相反方向的两条半边,生成候选网格模型对应的半边结构数据,进而可以基于半边结构数据在合并而成的第二形状多边形上搜索共线顶点路径。
请参见图5,图5是本申请实施例提供的一种半边结构数据的示意图。如图5所示的网格模型40a可以为合并三维网格模型中的三角形后的候选网格模型,该网格模型40a包括一个四边形网格,该网格模型40a包括模型顶点A、模型顶点B、模型顶点C、模型顶点D,以及边AB、边BC、边CD、边AD。进一步地,可以将网格模型40a中的每一条边都转化为具有相反方向的两条半边,得到半边结构数据40b,该半边结构数据40b中的每一条半边均可以看成是一个向量。如图5所示,半边40c可以表示为半边结构数据40b中的边界半边;对于模型顶点A而言,该半边40c为模型顶点A的出半边;对于模型顶点D而言,半边40c为模型顶点D的入半边。
在一个或多个实施例中,可以将候选网格模型对应的半边结构数据中的一条出半边看成是向量(具有方向),寻找下一个共线顶点可以看成是寻找下一条同方向的出半边,利用判断同方向向量的思想,可以基于半边结构数据搜索得到三维网格模型中的所有共线顶点路径。其中,共线顶点路径搜索算法的思想可以包括对候选网格模型对应的半边结构数据中的半边进行遍历,寻找下一条同向且夹角最小的同向出半边,若该夹角余弦大于余弦阈值(可以根据实际需求进行认为设置,如该余弦阈值可以设置为0.95),则认为这两条半边共线,这两条共线的半边所组成的路径称为候选共线路径。该搜索算法的步骤可以包括但不限于:①从候选网格模型对应的半边结构数据中的任意一条边界半边出发,即选择半边结构数据中的任意一条边界半边作为起始半边;②当半边结构数据中没有下一条满足条件(与下一条夹角最小的同向出半边之间的夹角余弦大于余弦阈值)的出半边,或访问回当前路径(首尾相接),则停止该候选共线路径的搜索;标记候选共线路径所包含的半边,避免对半边结构数据中的半边进行二次访问;③重复前述步骤①和步骤②,直至半边结构数据中的所有半边遍历完成;④合并多条候选共线路径,如同一起点的两条候选共线路径且两条候选共线路径中的第一条出半边共线,则合并这两条候选共线路径,得到三维网格模型中的所有共线顶点路径。
步骤S104,根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重。
具体的,在得到三维网格模型中的所有共线顶点路径之后,可以提取每一条共线顶点路径所包含的模型顶点对应的初始蒙皮权重,并根据共线顶点路径在半边结构数据中的路径方向,对每一条共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,自动修复三维网格模型中的模型顶点所对应的初始蒙皮权重,得到各个模型顶点对应的蒙皮更新权重。其中,本申请实施例对初始蒙皮权重进行平滑处理时所采用的平滑处理方式可以包括但不限于:均值滤波、中值滤波、高斯滤波以及双边滤波等,本申请对此不做限定。
在一个或多个实施例中,可以采用均值滤波的方式对初始蒙皮权重进行平滑处理,此时的平滑处理过程可以包括但不限于:在得到三维网格模型中的所有共线顶点路径之后,可以获取三维网格模型对应的平滑窗口;根据共线顶点路径在半边结构数据中的路径方向,在共线顶点路径上滑动平滑窗口,获取平滑窗口所覆盖的模型顶点对应的初始蒙皮权重的权重平均值;将权重平均值确定为平滑窗口所覆盖的中心顶点对应的蒙皮更新权重。其中,上述平滑窗口可以看作是一个一维卷积核(也可以认为是均值滤波器),通过该平滑窗口对共线顶点路径所包含的每个模型顶点对应的初始蒙皮权重进行一维平均卷积,得到共线顶点路径所包含的各个模型顶点对应的蒙皮更新权重。
举例来说,假设平滑窗口的尺寸为5,即一维卷积核的尺寸为5(可以记为kernel_size=5),也就是说,对于共线顶点路径所包含的每一个模型顶点对应的初始蒙皮权重,以5为平滑窗口大小做滑动平均,得到各个模型顶点对应的蒙皮更新权重;其中,蒙皮更新权重的计算过程可以如下述公式(1)所示:
(1)
其中,公式(1)中的wi表示共线顶点路径中的第i个模型顶点对应的初始蒙皮权重(即当前待平滑处理的初始蒙皮权重),表示对第i个模型顶点对应的初始蒙皮权重进行平滑处理后的蒙皮更新权重,wi-2、wi-1、wi+1、wi+2表示第i个模型顶点在其所属的共线顶点路径方向上的前后两个模型顶点对应的初始蒙皮权重。换言之,通过在共线顶点路径上滑动该平滑窗口,将该平滑窗口所覆盖的模型顶点对应的初始蒙皮权重的平均值作为当前平滑窗口所覆盖的中心顶点对应的蒙皮更新权重,此处的中心顶点可以是指平滑窗口所覆盖的所有模型顶点中处于中心位置的模型顶点。
请参见图6,图6是本申请实施例提供的一种共线顶点路径对应的蒙皮权重平滑处理结果的示意图。如图6所示,假设基于半边结构数据在三维网格模型中共搜索到4条共线顶点路径,分别记为共线顶点路径1、共线顶点路径2、共线顶点路径3以及共线顶点路径4;这四条共线顶点共线所包含的模型顶点对应的初始蒙皮权重分布如统计信息50a所示,该统计信息50a中的横轴表示沿着共线顶点路径的方向上的模型顶点的编号(例如,第1个模型顶点、第2个模型顶点等),统计信息50a中的纵轴表示共线顶点路径所包含的模型顶点对应的初始蒙皮权重。采用平滑窗口对上述四条共线顶点路径所包含的模型顶点对应的初始蒙皮权重进行平滑处理,得到各个模型顶点对应的蒙皮更新权重,4条共线顶点路径所包含的模型顶点对应的蒙皮更新权重分布如统计信息50b所示。统计信息50b中的横轴和纵轴所表示的信息与前述统计信息50a中的横轴和纵轴所表示的信息相同。如图6所示,权重平滑处理后的共线顶点路径中的各个模型顶点可以具有更平滑的蒙皮权重,进而可以提高蒙皮平滑度。
在一个或多个实施例中,可以采用高斯滤波的方式对初始蒙皮权重进行平滑处理,此时的平滑处理过程可以包括但不限于:在得到三维网格模型中的所有共线顶点路径之后,获取三维网格模型对应的平滑滤波器,以及获取共线顶点路径所包含的各个模型顶点对应的邻域,邻域中的顶点数量与平滑滤波器的尺寸相关联,此处的平滑滤波器可以为高斯滤波器(也可以看成是一个卷积核);根据共线顶点路径在半边结构数据中的路径方向,通过平滑滤波器对共线顶点路径中的模型顶点p(共线顶点路径中的任意一个模型顶点)对应的初始蒙皮权重,以及该模型顶点p的邻域中的模型顶点对应的初始蒙皮权重进行滤波处理,得到加权平均权重;将加权平均权重确定为共线顶点路径所包含的模型顶点p对应的蒙皮更新权重。
举例来说,假设平滑滤波器的尺寸为5(同样可以记为kernel_size=5),其对应的参数可以表示为(γ1,γ2,γ3,γ4,γ5),那么采用该平滑滤波器对共线顶点路径所包含的各个模型顶点进行权重平滑处理的过程可以如下述公式(2)所示:
(2)
其中,公式(2)中的wi表示共线顶点路径中当前待平滑处理的初始蒙皮权重(如共线顶点路径中的第i个模型顶点对应的初始蒙皮权重,此处的第i个模型顶点可以为前述模型顶点p),此时第i个模型顶点(如模型顶点p)的邻域可以包括第i-2个模型顶点、第i-1个模型顶点、第i+1个模型顶点以及第i+2个模型顶点。采用平滑滤波器对第i个模型顶点的初始蒙皮权重进行平滑处理时,可以按照第i个模型顶点及其邻域中的模型顶点在共线顶点路径的方向上的顺序,采用平滑滤波器的参数对第i个模型顶点及其邻域中的各个模型顶点执行加权平均操作,得到共线顶点路径中的第i个模型顶点对应的蒙皮更新权重。
步骤S105,根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
具体的,获取虚拟对象对应的对象骨骼,以及获取对象骨骼所包含的骨骼关节对应的骨骼变换参数;根据三维网格模型中的模型顶点对应的初始顶点位置、蒙皮更新权重以及骨骼变换参数,确定三维网格模型中的模型顶点对应的顶点更新位置;根据三维网格模型中的模型顶点对应的顶点更新位置,将对象骨骼与三维网格模型进行绑定,得到虚拟对象对应的蒙皮结果,进而可以基于蒙皮结果对虚拟对象进行渲染,得到虚拟对象形态并进行展示。其中,本申请涉及的蒙皮处理可以为线性混合蒙皮(Linear BlendingSkinning,LBS),或者可以为其他蒙皮方式,本申请实施例对蒙皮处理的具体方式不做限定。
下面以线性混合蒙皮方式为例,对虚拟对象的蒙皮处理进行描述。在为三维网格模型制作动画的过程中,假设虚拟对象对应的三维网格模型为包含有10000个模型顶点的人物模型,该三维网格模型可以呈现80种形态,为了展现虚拟对象的各种动作,需要存储10000×80个模型顶点的位置,这是非常耗费存储空间的。而线性混合蒙皮可以通过刚体旋转和蒙皮权重,计算各个模型顶点的位置,这样可以大幅度降低三维网格模型在蒙皮处理中的存储空间。请参见图7,图7是本申请实施例提供的一种蒙皮处理示意图;如图7所示,假设虚拟对象为游戏中的人物角色,其手肘处的顶点(模型顶点)对应的初始顶点位置可以记为vi,手肘处的顶点位置受到小臂和大臂关节的影响,影响大小分别记为wi,1和wi,2,手肘处的顶点的最终位置(顶点更新位置)可以由小臂和大臂两个关节的旋转T加权而来;其中,手肘处的顶点对应的顶点更新位置的计算过程可以如下述公式(3)所示:
(3)
其中,公式(3)中的vi表示虚拟对象的手肘处顶点对应的初始顶点位置,wi,k表示手肘处顶点对应的蒙皮更新权重,如图7所示,wi,1表示小臂关节对手肘处顶点的影响权重,wi,2表示大臂关节对手肘处顶点的影响权重;n_bones表示与手肘处顶点的位置相关联的骨骼关节数量,此处手肘处顶点对应的n_bones的最大取值可以为2;表示虚拟对象的手肘处顶点对应的顶点更新位置,Tk表示手肘处顶点对应的骨骼变换参数,即小臂和大臂关节两个骨骼关节的旋转,如图7所示,T1表示小臂关节的旋转,即小臂关节的骨骼变换参数,T2表示大臂关节的旋转,即大臂关节的骨骼变换参数。如图7所示,手肘处顶点对应的初始顶点位置如虚拟对象的形态60a中的位置vi所示,基于平滑处理后的蒙皮更新权重对虚拟对象进行蒙皮处理,计算得到的顶点更新位置可以如虚拟对象的形态60b中的位置/>所示。
本申请实施例中,通过获取虚拟对象对应的三维网格模型以及该三维网格模型中的模型顶点对应的初始蒙皮权重,将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形中的对角线,得到候选网格模型;基于候选网格模型对应的半边结构数据,在合并而成的第二形状多边形上搜索共线顶点路径,按照共线顶点路径的方向对共线顶点路径中的模型顶点对应的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,由此可以修复三维网格模型中的不平滑权重,提升模型顶点的权重平滑度;基于模型顶点对应的蒙皮更新权重对虚拟对象进行蒙皮处理,可以提高虚拟对象的蒙皮处理效果。
请参见图8,图8是本申请实施例提供的一种数据处理方法的流程示意图二。可以理解的是,该数据处理方法可以由计算机设备执行,该计算机设备可以为图1所示的数据处理系统中的终端设备10a,或者可以为图1所示的数据处理系统中的服务器10b,本申请对此不做限定;其中,该数据处理方法可以包括以下步骤S201至步骤S212:
步骤S201,获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重。
其中,步骤S201的具体实现过程可以参加前述图3所对应实施例中的步骤S101,此处不再进行赘述。
步骤S202,在三维网格模型中确定第一形状多边形集合,获取第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边,第二形状评估系数用于衡量候选多边形为矩形的程度。
具体的,可以将三维网格模型中的第一形状多边形组合为第一形状多边形集合;其中,该第一形状多边形集合可以包含三维网格模型中的全部第一形状多边形,或者可以仅包含三维网格模型中的指定模型区域中的第一形状多边形。例如,用户可以指定三维网格模型中需要进行权重平滑处理的顶点区域(可以简称为待处理顶点区域),这样计算机设备只需修复待处理顶点区域中的模型顶点对应的蒙皮权重即可,无需修复三维网格模型中的其他模型顶点。在一个或多个实施例中,可以在虚拟对象的蒙皮处理页面中,显示三维网格模型和模型区域选择控件;响应针对模型区域选择控件的触发操作,将触发操作所选中的模型区域确定为三维网格模型中的待处理顶点区域;将待处理顶点区域所包含的第一形状多边形组合为第一形状多边形集合。
在获取到三维网格模型对应的第一形状多边形集合之后,可以将第一形状多边形集合中的每一组邻接的第一形状多边形对所组成的候选多边形添加至第三候选多边形集合;获取第三候选多边形集合中的候选多边形q(可以认为是第三候选多边形集合中的任意一个候选多边形)对应的顶点集合,获取由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数(为便于理解,可以将第一形状评估系数记为α),该第一形状评估系数用于衡量第一形状多边形(例如,三角形)为等边多边形(例如,等边三角形)的程度;进而可以根据由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定候选多边形q对应的第二形状评估系数(为便于理解,可将第二形状评估系数记为β),该第二形状评估系数用于衡量候选多边形为矩形的程度。
在一个或多个实施例中,第一形状多边形对应的第一形状评估系数的获取过程可以包括:在由顶点集合所包含的模型顶点所构成的多个第一形状多边形中获取第一形状多边形j;获取第一形状多边形j对应的多边形面积,以及获取第一形状多边形j对应的边长平方和;根据多边形面积与边长平方和之间的比值,确定第一形状多边形j对应的第一形状评估系数。
举例来说,下面以三维网格模型中的第一形状多边形是三角形为例,此时的第一形状评估系数α可以用于衡量三维网格模型中的三角形网格接近等边三角形的程度。假设第一形状多边形j可以记为三角形ABC,那么该第一形状多边形j对应的第一形状评估系数α可以如下述公式(4)所示:
(4)
其中,公式(4)中的α(ABC)表示第一形状多边形j(即三角形ABC)对应的第一形状评估系数;可以用于表示第一形状多边形j(三角形ABC)对应的面积(多边形面积);也就是说,三角形ABC的面积可以通过该三角形ABC中的任意两条相邻的边向量及其所在平面CAB的法线/>之间的点乘,如公式(4)中的向量/>、向量/>以及CAB面的法线之间的点乘可以用于表示三角形ABC的面积。‖CA‖表示向量/>的模,即第一形状多边形j(三角形ABC)中的边长CA;/>表示第一形状多边形j(三角形ABC)对应的边长平方和。
请参见图9,图9是本申请实施例提供的一种不同的第一形状多边形对应的第一形状评估系数的示意图。如图9所示,等边三角形70a对应的第一形状评估系数α为1;角度为45°(度)的直角三角形70b对应的第一形状评估系数α=0.866;三个角度依次为30°、75°、75°的等腰三角形70c对应的第一形状评估系数α=0.7637;角度依次为30°、60°的直角三角形70d对应的第一形状评估系数α=0.75。可以理解的是,图9所示的不同类型的多边形仅为第一形状多边形类型的举例说明,本申请实施例可以通过上述公式(4)计算每一个三角形对应的第一形状评估系数。
可以理解的是,一个第一形状多边形(三角形)的第一形状评估系数α是唯一确定的,即一个第一形状多边形唯一对应一个第一形状评估系数,第一形状评估系数α的取值范围为0~1(最大值为1),第一形状评估系数α越大,表示第一形状多边形越接近等边三角形。通过计算第三候选多边形集合中的任意一个候选多边形(如候选多边形q)可划分的多个第一形状多边形分别对应的第一形状评估系数α,进而基于计算得到的多个第一形状多边形分别对应的第一形状评估系数α确定候选多边形q对应的第二性状评估系数β。例如,当第一形状多边形为三角形,候选多边形为四边形时,一个候选多边形可以包括4个三角形,进而可以基于这四个三角形的第一形状评估系数α来计算该候选多边形的第二形状评估系数β。
在一个或多个实施例中,假设候选多边形q为四边形,由顶点集合中的模型顶点所构成的多个第一形状多边形包括三角形t1、三角形t2、三角形t3以及三角形t4;对于第三候选多边形集合中的任意一个候选多边形(例如,候选多边形q),候选多边形q对应的第二形状评估系数的获取过程可以包括:可以获取三角形t1对应的第一形状评估系数与三角形t2对应的第一形状评估系数之间的第一系数乘积,获取三角形t3对应的第一形状评估系数与三角形t4对应的第一形状评估系数之间的第二系数乘积;将第二系数乘积与第一系数乘积之间的比值,确定为候选多边形q对应的第二形状评估系数;其中,三角形t1和三角形t2所对应的第一形状评估系数,大于或等于三角形t3和三角形t4所对应的第一形状评估系数,如三角形t1、三角形t2、三角形t3以及三角形t4所对应的第一形状评估系数从小到大的顺序为:三角形t1的第一形状评估系数、三角形t2的第一形状评估系数、三角形t3的第一形状评估系数、三角形t4的第一形状评估系数。
请参见图10,图10是本申请实施例提供的一种候选多边形对应的第二形状评估系数的计算示意图。假设第三候选多边形集合中的候选多边形q如图10所示的四边形ABCD,那么该四边形ABCD对应的顶点集合可以包括模型顶点A、模型顶点B、模型顶点C以及模型顶点D;由该顶点集合中的四个模型顶点可以构成四个三角形,可以记为三角形ABC(如前述三角形t1)、三角形ACD(如前述三角形t2)、三角形ABD(如前述三角形t3)以及三角形BCD(如前述三角形t4)。四边形ABCD对应的第二形状评估系数可以如下述公式(5)所示:
(5)
其中,公式(5)中的β(ABCD)表示四边形ABCD对应的第二形状评估系数,α(ABD)表示三角形ABD对应的第一形状评估系数,α(BCD)表示三角形BCD对应的第一形状评估系数,α(ABC)表示三角形ABC对应的第一形状评估系数,α(ACD) 表示三角形ACD对应的第一形状评估系数;其中,α(ABC)≥α(ACD) ≥α(ABD) ≥α(BCD)。
请参见图11,图11是本申请实施例提供的一种不同的候选多边形对应的第二形状评估系数的示意图。若第三候选多边形集合中的候选多边形q如图11中的图形80a所示,则该候选多边形q对应的第二形状评估系数β=1,即此时的候选多边形q为矩形。若候选多边形q如图11中的图形80b所示,则该候选多边形q对应的第二形状评估系数β=0,即该候选多边形q不是四边形。若候选多边形q如图11中的图形80c所示,则该候选多边形q对应的第二形状评估系数β<0,即该候选多边形q近似为三棱锥体。若候选多边形q如图11中的图形80d所示,则该候选多边形q对应的第二形状评估系数β=0.36,此时的候选多边形q为菱形。若候选多边形q如图11中的图形80e所示,则该候选多边形q对应的第二形状评估系数β=0.4,此时的候选多边形q为具有两个直角、一个45°角的四边形。若候选多边形q如图11中的图形80f所示,则该候选多边形q对应的第二形状评估系数β=0.5898,此时的候选多边形q为具有一个直角、一个角度75°的四边形。可以理解的是,图11所示的不同类型的多边形仅为候选多边形类型的举例说明,本申请实施例可以通过上述公式(4)和公式(5)计算得到第三候选多边形集合中的每一个候选多边形分别对应的第二形状评估系数。
步骤S203,获取每一个候选多边形中的两个第一形状多边形之间的二面角,将二面角大于角度阈值的候选多边形组成第一候选多边形集合。
具体的,可以获取第三候选多边形集合中的每一个候选多边形所包含的两个第一形状多边形之间的二面角。其中,此处的两个第一形状多边形可以是指三维网格模型中组成候选多边形的两个邻接的第一形状多边形(如两个邻接三角形);二面角可以是指组合为候选多边形的两个第一形状多边形所在的平面之间的夹角。若第三候选多边形集合中的候选多边形q所包含的两个第一形状多边形之间的二面角大于角度阈值,则可以将该候选多边形q添加至第一候选多边形集合,该第一候选多边形集合为第三候选多边形集合的子集。
其中,上述角度阈值可以是根据应用场景的实际需求设置的,例如,该角度阈值可以设置为135°,当两个邻接的第一形状多边形之间的二面角大于角度阈值(如135°)时,可以认为这两个邻接的第一形状多边形近似在同一个平面上;当两个邻接的第一形状多边形之间的二面角小于或等于角度阈值(如135°)时,可以认为这两个邻接的第一形状多边形不在同一个平面上,两个第一形状多边形组合的候选多边形不是四边形,而是近似三棱锥体。换言之,第一候选多边形集合是指从第三候选多边形集合中过滤掉近似三棱椎体之后所得到的集合。
步骤S204,将与第一候选多边形集合中的候选多边形q存在重叠区域的候选多边形组合为第二候选多边形集合;第二候选多边形集合为第一候选多边形集合的子集。
具体的,在三维网格模型中确定与第一候选多边形集合中的每一个候选多边形存在重叠区域的其他候选多边形,进而将其他候选多边形组合为第二候选多边形集合,一个候选多边形对应一个第二候选多边形集合。例如,对于第一候选多边形集合中的任意一个候选多边形(例如,候选多边形q),可以在第一候选多边形集合中获取与该候选多边形q存在重叠区域的所有候选多边形,并将存在重叠区域的所有候选多边形组合为该候选多边形q对应的第二候选多边形集合,即第一候选多边形集合中的每一个候选多边形都可以对应一个第二候选多边形,所有第二候选多边形集合均是第一候选多边形集合的子集。
可以理解的是,三维网格模型中的第一形状多边形(例如,第一形状多边形j)可能存在多个邻接的第一形状多边形,那么该第一形状多边形j可以与其所有邻接的第一形状多边形组合为多个候选多边形,此时由第一形状多边形j与其邻接的第一形状多边形所组成的多个候选多边形之间必然是存在重叠区域的,此处的重叠区域即为第一形状多边形j。也就是说,三维网格模型中的每一个第一形状多边形可以组合为一个或多个候选多边形。
步骤S205,若候选多边形q对应的第二形状评估系数大于系数阈值,且候选多边形q对应的第二形状评估系数大于第二候选多边形集合所包含的候选多边形对应的第二形状评估系数,则将候选多边形q确定为由第一形状多边形对合并而成的第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型。
具体的,若第一候选多边形集合中的任意一个候选多边形(例如,候选多边形q)对应的第二形状评估系数β大于系数阈值,且该候选多边形q对应的第二形状评估系数大于第二候选多边形集合所包含的候选多边形对应的第二形状评估系数,则可以将该候选多边形q作为三维网格模型中合并成功的第二形状多边形,进而可以移除组成第二形状多边形的两个第一形状多边形之间共享的边,通过为第一候选多边形集合中的每一个候选多边形执行与前述候选多边形q相同的操作,可以得到候选网格模型。其中,上述系数阈值可以根据应用场景的实际需求设置的,例如,该系数阈值可以设置为0.37。
可选地,若候选多边形q对应的第二形状评估系数β小于或等于系数阈值,或者候选多边形q对应的第二形状评估系数小于或等于第二候选多边形集合中的一个或多个候选多边形所对应的第二形状评估系数,则可以确定组合为该候选多边形q的两个邻接的第一形状多边形无法进行合并。
本申请实施例中,通过遍历三维网格模型中的每一组邻接的第一形状多边形对所组成的候选多边形的第二形状评估系数β,若第二形状评估系数β同时满足以下三个条件:①第二形状评估系数β大于系数阈值(如0.37);②组成候选多边形的两个邻接的第一形状多边之间的二面角大于角度阈值(如135°);③当前候选多边形对应的第二形状评估系数β大于第二候选多边形集合中任一存在重叠区域的候选多边形的第二形状评估系数β,那么可以将当前候选多边形作为最终合并完成的第二形状多边形,并在三维网格模型中移除第二形状多边形的对角线,即已成功合并为第二形状多边形的两个第一形状多边形之间共享的边,保留第二形状多边形的边,最终可以得到候选网格模型,如前述图2所对应实施例中的候选网格模型20b所示,或者可以如前述图4所对应实施例中的网格模型30a所示。
请参见图12,图12是本申请实施例提供的一种三维网格模型中的第一形状多边形对的合并示意图。假设第一候选多边形集合中的候选多边形q为如图12中的四边形BCDF所示,该四边形BCDF可以由三维网格模型中的三角形BCD和三角形BDF组成,三角形BCD和三角形BDF为三维网格模型中邻接的第一形状多边形对。四边形BCDF对应的第二候选多边形集合可以包括四边形BDEF和四边形ABDF,也就是说,与四边形BCDF存在重叠区域的候选多边形可以包括四边形BDEF和四边形ABDF。在合并四边形BCDF时可能会影响四边形BDEF和四边形ABDF的合并。当四边形BCDF的第二形状评估系数β大于系数阈值,且三角形BCD和三角形BDF之间的二面角大于角度阈值,且四边形BCDF的第二形状评估系数β大于所有存在重叠区域的四边形的第二形状评估系数β(即四边形BCDF的第二形状评估系数β大于四边形BDEF和四边形ABDF的第二形状评估系数β),则可以将四边形BCDF确定为第二形状多边形,移除三维网格模型中的对角线BD,通过这种方式可以得到候选网格模型。
步骤S206,将候选网格模型中的边转化为具有相反方向的两条半边,生成候选网格模型对应的半边结构数据,在半边结构数据的边界半边中确定起始半边,按照起始半边的方向获取起始半边在半边结构数据中的第一邻接半边集合。
具体的,在得到虚拟对象对应的候选网格模型之后,可以将候选网格模型中的边转化为具有相反方向的两条半边,生成候选网格模型对应的半边结构数据,该半边结构数据的生成过程可以如前述图4所对应实施例中的描述,此处不再进行赘述。
进一步地,可以在半边结构数据中确定起始半边,该起始半边可以认为是搜索三维网格模型中的共线顶点路径的起点,该起始半边可以为半边结构数据中的边界出半边;进而可以按照起始半边的方向获取该起始半边在半边结构数据中的第一邻接半边集合。如图5所示,假设半边结构数据40b中的半边40c为起始半边,那么该起始半边对应的第一邻接半边集合可以包括由模型顶点D指向模型顶点C的半边。
步骤S207,若第一邻接半边集合中存在与起始半边共线的第一邻接半边,则将起始半边和第一邻接半边确定为初始共线路径,按照第一邻接半边的方向获取第一邻接半边在半边结构数据中的第二邻接半边集合。
具体的,可以将第一邻接半边集合中与起始半边具有最小夹角的半边确定为第一邻接半边,即从第一邻接半边集合中确定起始半边的下一条同向且夹角最小的半边。若起始半边与第一邻接半边之间的夹角余弦大于余弦阈值(可以根据应用场景实际需求进行设置,如可以将余弦阈值设置为0.95),则可以确定起始半边和第一邻接半边共线;若起始半边与第一邻接半边之间的夹角余弦小于或等于余弦阈值,则确定起始半边和第一邻接半边不共线。
当检测到第一邻接半边集合中的第一邻接半边与起始半边共线时,可以将起始半边和第一邻接半边确定为初始共线路径,进而可以按照第一邻接半边的方向,在半边结构数据中获取第一邻接半边对应的第二邻接半边集合;该第二邻接半边集合可以为第一邻接半边在半边结构数据中的下一条同向半边的集合。
步骤S208,若第二邻接半边集合中不存在与第一邻接半边共线的第二邻接半边,或者第二邻接半边集合中与第一邻接半边共线的第二邻接半边为起始半边,则将初始共线路径确定为半边结构数据中的候选共线路径。
具体的,可以在第二邻接半边集合中确定第一邻接半边的下一条同向且夹角最小的半边,并将第二邻接半边集合中与第一邻接半边具有最小夹角的半边确定为第二邻接半边。若第一邻接半边与第二邻接半边之间的夹角余弦大于余弦阈值,则可以确定第二邻接半边与第一邻接半边共线,进而可以将第二邻接半边添加至初始共线路径,进而可以继续遍历(或者访问)第二邻接半边的下一条同向且夹角最小的半边是否与第二邻接半边共线,以继续搜索该初始共线路径。
若第一邻接半边与第二邻接半边之间的夹角余弦小于或等于余弦阈值,或者第二邻接半边与起始半边为同一条半边,则可以停止对初始共线路径的搜索,并将此时搜索到的初始共线路径确定为已完成搜索操作的候选共线路径,至此可以完成一条共线路径的搜索过程。进一步地,可以在半边结构数据中确定新的起始半边,重复执行上述操作,直至搜索到半边结构数据中的所有候选共线路径。
步骤S209,为候选共线路径所包含的半边设置已遍历标识,直至半边结构数据所包含的半边均携带已遍历标识,得到半边结构数据中的多条候选共线路径。
具体的,从半边结构数据中搜索到候选共线路径之后,可以为该候选共线路径所包含的所有半边都设置已遍历标识,这样可以避免半边结构数据中的半边被二次遍历,进而可以提升半边结构数据中的半边遍历速率。当候选半边结构中的所有半边均携带已遍历标识时,可以停止对半边结构数据进行共线路径搜索操作,即已完成对半边结构数据的共线路径搜索操作,这样可以得到半边结构数据中的多条候选共线路径。由于半边结构数据中的所有半边都是带有方向的边,因此将候选网格模型转化为半边结构数据,基于半边结构数据可以快速地实现对邻接边的查询,也就是说,基于半边结构数据搜索三维网格模型中的共线路径,可以提升共线路径的搜索效率。
步骤S210,若多条候选共线路径中存在起始半边共线的候选共线路径L1和候选共线路径L2,则将候选共线路径L1和候选共线路径L2合并为共线顶点路径。
具体的,基于半边结构数据搜索得到多条候选共线路径之后,可以对多条候选共线路径进行合并处理;例如,若多条候选共线路径中存在候选共线路径L1的起始半边和候选共线路径L2的起始半边相同,则可以将候选共线路径L1和候选共线路径L2合并为一条共线顶点路径,由此可以得到三维网格模型中的共线顶点路径。
在一个或多个实施例中,从三维网格模型中搜索得到的共线顶点路径可以应用在平滑蒙皮权重的场景中,或者可以应用在提取三维模型主体结构的场景中,或者可以应用在提取三维模型的主轴以及简化三维模型结构等场景中,本申请对共线顶点路径的具体应用场景不做限定。为便于理解,本申请实施例以共线顶点路径应用在平滑蒙皮权重的场景中为例进行说明。
步骤S211,根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重。
步骤S212,根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
其中,步骤S211和步骤S212的具体实现过程可以参加前述图3所对应实施例中的步骤S104和步骤S105的相关描述,此处不再进行赘述。
可以理解的是,若获取到的三维网格模型中包括第一形状多边形网格,则可以对三维网格模型中邻接的第一形状多边形(如三角形)对进行合并,并移除合并后的第一形状多边形对之间共享的边,得到由近似的第二形状多边形(如四边形)构成的候选网格模型。将三维网格模型转换为候选网格模型的过程可以认为是一种剪枝操作,这样可以避免在搜索共线顶点路径的过程中搜索到不必要的斜边(例如,合并而成的第二形状多边形的对角线),有利于提升共线顶点路径的搜索效率。基于半边结构数据在候选网格模型所包含的第二形状多边形上搜索共线顶点路径,通过对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,可以提升蒙皮权重的平滑度;具体而言,在搜索到候选网格模型中的经纬布线(纵向布线和横向布线)后,由于横轴方向的权重平滑结果会相互制约,使得蒙皮处理后的效果更好,布线几乎完全平直,其蒙皮效果可以参见图13,图13是本申请实施例提供的一种基于蒙皮更新权重进行蒙皮处理的效果示意图,如图13所示的三维模型90a为使用初始蒙皮权重对虚拟对象进行蒙皮处理所得到的效果展示。
若计算机设备在获取到原始的三维网格模型之后,不对三维网格模型中邻接的第一形状多边形对进行合并处理,而是直接在原始的三维网格模型上搜索共线顶点路径,进而对共线顶点路径所包含的模型顶点对应的初始蒙皮权重进行平滑处理,基于平滑后的蒙皮权重对虚拟对象进行蒙皮处理所得到的效果如图13中的三维模型90b所示。
若计算机设备在获取到原始的三维网格模型之后,首先对三维网格模型中邻接的第一形状多边形对进行合并处理,得到候选网格模型;进而基于候选网格模型对应的半边结构数据,在候选网格模型中搜索共线顶点路径,通过对共线顶点路径所包含的模型顶点对应的初始蒙皮权重进行平滑处理,基于蒙皮更新权重对虚拟对象进行蒙皮处理所得到的效果如图13中的三维模型90c所示。如图13所示的三维模型90b和三维模型90c,可以很直观地感知对三维网格模型中邻接的第一形状多边形对进行合并处理的必要性,通过合并三维网格模型中邻接的第一形状多边形对,可以提升蒙皮处理效果。
需要说明的是,若不对三维网格模型中邻接的第一形状多边形对进行合并处理,直接在三维网格模型中进行共线顶点路径的搜索,这样会对共线顶点(实质上可以为共线半边)的判定条件“余弦阈值”更加严苛。由于三维空间中的位置多变,夹角更小的两个向量(例如,半边结构数据中的两个半边)未必是更偏向共线的,此时对共线半边之间的夹角的限制需要进行提升,如0.99或0.98等,否则很容易搜到不理想的曲线,这样会导致仅能搜索到很短的共线顶点路径。而在三维网格模型中引入对邻接的第一形状多边形对进行合并处理的步骤之后,可以得到网格相对规整的候选网格模型,在判定条件“余弦阈值”适当放宽的基础上(例如,余弦阈值可以设置为0.95),也能获得很好的蒙皮处理效果。换言之,通过对三维网格模型中邻接的第一形状多边形对进行合并处理,可以提高共线顶点路径搜索方式的鲁棒性。
可选地,本申请实施例在游戏制作场景中的26个测试样例上进行了验证,首先使用目前的自动蒙皮工具对26个测试样例进行蒙皮处理(可以得到初始蒙皮权重),进而采用本申请实施例提供的方案对初始蒙皮权重进行修复,可以将初始蒙皮权重不平滑的异常样例从19个降低为3个,修复比例可达84.21%,可以提升最终的蒙皮平滑度,减少三维模型在运动时的穿插和不平滑的问题,进而提高虚拟对象的渲染展示效果。
可以理解的是,本申请实施例提供的蒙皮权重平滑处理方案可以应用在游戏制作、三维建模等领域中。例如,该蒙皮权重平滑处理方案具体可以应用在游戏中的虚拟对象(各种类型的游戏角色,如玩家角色、非玩家角色、道具等)的制作场景中,也可以应用在直播中的虚拟主播的制作场景中,还可以应用在任何物体的建模场景中,本申请对此不做限定。
在一个或多个实施例中,可以在三维模型制作软件中为游戏中的虚拟对象(或者直播中的虚拟主播,或者真实物体等)创建三维网格模型,并为该三维网格模型选择合适的对象骨骼,通过调整对象骨骼的尺寸的形态,将对象骨骼添加到三维网格模型中。为了让对象骨骼驱动该三维网格模型产生合理的运动,可以为三维网格模型中的模型顶点配置蒙皮权重(用于表征对象骨骼所包含的骨骼关节对三维网格模型中的模型顶点的影响权重),根据三维网格模型中的各个模型顶点所对应的蒙皮权重进行蒙皮处理,可以让虚拟对象的三维网格模型产生运动,即可以实现虚拟对象的不同形态。可以理解的是,若为三维网格模型中的模型顶点所配置的蒙皮权重出现跳变等不平滑问题,那么虚拟对象在运动时可能会产生畸形、布线曲折等问题,而本申请实施例提出的蒙皮权重平滑处理方案可以对模型顶点的蒙皮权重进行平滑处理,自动修复存在跳变问题的蒙皮权重。
请参见图14,图14是本申请实施例提供的一种修复三维网格模型的蒙皮权重的场景示意图。如图14所示,可以在三维模型制作软件中创建三维网格模型100a,并为该三维网格模型100a选择对象骨骼100b。将三维网格模型100a和对象骨骼100b进行组合,得到三维模型100c;其中,在组合三维网格模型100a和对象骨骼100b的过程中,可以调整对象骨骼100b中的骨骼关节(例如,图14所示的区域100h中的圆点)的位置,改变该对象骨骼100b的形态和尺寸,使得该对象骨骼100b可以与三维网格模型100a相贴合,添加了调整后的对象骨骼100b的三维网格模型如图14中的三维模型100c所示。
为了让对象骨骼100b驱动该三维模型100c产生合理的运动,可以为该三维模型100c中的模型顶点配置蒙皮权重(此处的蒙皮权重可以称为初始蒙皮权重),根据三维模型100c中的各个模型顶点对应的初始蒙皮权重进行蒙皮处理,可以生成三维模型100c的运动动画(可以包括该三维模型100c的不同形态)。假设三维模型100c的运动动画中包含三维模型100d所示的形态(即在行走过程中抬高左手手臂),且三维模型100d在呈现当前形态时出现了布线曲折和畸形等问题,如三维模型100d中的区域100e和区域100f所示,那么可以确定三维模型100c对应的初始蒙皮权重可能存在不平滑的问题,很显然,这样会造成最终渲染后的展示效果不佳。在此情形下,可以采用本申请实施例提出的蒙皮权重平滑处理方案,对区域100e和区域100f中邻接的三角形对(第一形状多边形对)进行合并处理,得到近似四边形(第二形状多边形),并移除四边形的对角线,得到两个新的三维网格区域(即区域100e进行三角形合并处理后的网格区域,以及区域100f进行三角形合并处理后的网格区域)。进一步地,可以在两个新的三维网格区域中搜索共线顶点路径,对共线顶点路径中所包含的模型顶点的初始蒙皮权重进行平滑处理,自动修复初始蒙皮权重的不平滑问题,可以得到新的蒙皮权重(蒙皮更新权重);基于新的蒙皮权重进行蒙皮处理,可以得到三维模型100g,该三维模型100g解决了三维模型100d上的区域100e和区域100f所呈现出来的畸形和布线曲折的问题,提高了蒙皮处理效果。其中,对区域100e和区域100f所包含的模型顶点的初始蒙皮权重进行平滑处理的具体实现过程可以参见上述图8所对应实施例中的相关描述,此处不再进行赘述。
本申请实施例中,通过获取虚拟对象对应的三维网格模型以及该三维网格模型中的模型顶点对应的初始蒙皮权重,将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形中的对角线,得到候选网格模型;基于候选网格模型对应的半边结构数据,在合并而成的第二形状多边形上搜索共线顶点路径,按照共线顶点路径的方向对共线顶点路径中的模型顶点对应的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,由此可以修复三维网格模型中的不平滑的权重,提升模型顶点的权重平滑度;基于模型顶点对应的蒙皮更新权重对虚拟对象进行蒙皮处理,可以提高虚拟对象的蒙皮处理效果,进而可以提升虚拟对象的渲染展示效果。
请参见图15,图15是本申请实施例提供的一种数据处理装置的结构示意图;可以理解的是,该数据处理装置可以应用在图1所示的服务器10b中,或者可以应用在图1所示的终端设备10a中,本申请对此不做限定。其中,如图15所示,该数据处理装置1可以包括模型获取单元101,多边形合并单元102,共线顶点获取单元103,权重平滑处理单元104,蒙皮处理单元105;
模型获取单元101,用于获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重;
多边形合并单元102,用于将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边;
共线顶点获取单元103,用于获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径;
权重平滑处理单元104,用于根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
蒙皮处理单元105,用于根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
在一个或多个实施例中,多边形合并单元102将三维网格模型中的第一形状多边形对合并为第二形状多边形,包括:
在三维网格模型中确定第一形状多边形集合,获取第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数;第二形状评估系数用于衡量候选多边形为矩形的程度;
获取每一个候选多边形中的两个第一形状多边形之间的二面角,将二面角大于角度阈值的候选多边形组成第一候选多边形集合;
将与第一候选多边形集合中的候选多边形q存在重叠区域的候选多边形组合为第二候选多边形集合;第二候选多边形集合为第一候选多边形集合的子集;
若候选多边形q对应的第二形状评估系数大于系数阈值,且候选多边形q对应的第二形状评估系数大于第二候选多边形集合所包含的候选多边形对应的第二形状评估系数,则将候选多边形q确定为由第一形状多边形对合并而成的第二形状多边形。
在一个或多个实施例中,多边形合并单元102在三维网格模型中确定第一形状多边形集合,包括:
在虚拟对象的蒙皮处理页面中,显示三维网格模型和模型区域选择控件;
响应针对模型区域选择控件的触发操作,将触发操作所选中的模型区域确定为三维网格模型中的待处理顶点区域;
将待处理顶点区域所包含的第一形状多边形组合为第一形状多边形集合。
在一个或多个实施例中,多边形合并单元102获取第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数,包括:
将第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形添加至第三候选多边形集合;第三候选多边形集合包括第一候选多边形集合;
获取第三候选多边形集合中的候选多边形q对应的顶点集合,获取由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数;第一形状评估系数用于衡量第一形状多边形为等边多边形的程度;
根据由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定候选多边形q对应的第二形状评估系数。
在一个或多个实施例中,多边形合并单元102获取由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,包括:
在由顶点集合所包含的模型顶点所构成的多个第一形状多边形中获取第一形状多边形j;
获取第一形状多边形j对应的多边形面积,以及获取第一形状多边形j对应的边长平方和;
根据多边形面积与边长平方和之间的比值,确定第一形状多边形j对应的第一形状评估系数。
在一个或多个实施例中,候选多边形q为四边形,由顶点集合中的模型顶点所构成的多个第一形状多边形包括三角形t1、三角形t2、三角形t3以及三角形t4;
多边形合并单元102根据由顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定候选多边形q对应的第二形状评估系数,包括:
获取三角形t1对应的第一形状评估系数与三角形t2对应的第一形状评估系数之间的第一系数乘积,获取三角形t3对应的第一形状评估系数与三角形t4对应的第一形状评估系数之间的第二系数乘积;
将第二系数乘积与第一系数乘积之间的比值,确定为候选多边形q对应的第二形状评估系数;
其中,三角形t1和三角形t2所对应的第一形状评估系数,大于或等于三角形t3和三角形t4所对应的第一形状评估系数。
在一个或多个实施例中,共线顶点获取单元103获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径,包括:
将候选网格模型中的边转化为具有相反方向的两条半边,生成候选网格模型对应的半边结构数据,在半边结构数据的边界半边中确定起始半边,按照起始半边的方向获取起始半边在半边结构数据中的第一邻接半边集合;
若第一邻接半边集合中存在与起始半边共线的第一邻接半边,则将起始半边和第一邻接半边确定为初始共线路径,按照第一邻接半边的方向获取第一邻接半边在半边结构数据中的第二邻接半边集合;
若第二邻接半边集合中不存在与第一邻接半边共线的第二邻接半边,或者第二邻接半边集合中与第一邻接半边共线的第二邻接半边为起始半边,则将初始共线路径确定为半边结构数据中的候选共线路径;
为候选共线路径所包含的半边设置已遍历标识,直至半边结构数据所包含的半边均携带已遍历标识,得到半边结构数据中的多条候选共线路径;
若多条候选共线路径中存在起始半边共线的候选共线路径L1和候选共线路径L2,则将候选共线路径L1和候选共线路径L2合并为共线顶点路径。
在一个或多个实施例中,该数据处理装置1还包括:邻接半边确定单元106,共线半边确定单元107,不共线半边确定单元108;
邻接半边确定单元106,用于将第一邻接半边集合中与起始半边具有最小夹角的半边确定为第一邻接半边;
共线半边确定单元107,用于若起始半边与第一邻接半边之间的夹角余弦大于余弦阈值,则确定起始半边和第一邻接半边共线;
不共线半边确定单元108,用于若起始半边与第一邻接半边之间的夹角余弦小于或等于余弦阈值,则确定起始半边和第一邻接半边不共线。
在一个或多个实施例中,权重平滑处理单元104根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取三维网格模型对应的平滑窗口;
根据共线顶点路径在半边结构数据中的路径方向,在共线顶点路径上滑动平滑窗口,获取平滑窗口所覆盖的模型顶点对应的初始蒙皮权重的权重平均值;
将权重平均值确定为平滑窗口所覆盖的中心顶点对应的蒙皮更新权重。
在一个或多个实施例中,权重平滑处理单元104根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取三维网格模型对应的平滑滤波器,以及获取共线顶点路径所包含的各个模型顶点对应的邻域;邻域中的顶点数量与平滑滤波器的尺寸相关联;
根据共线顶点路径在半边结构数据中的路径方向,通过平滑滤波器对共线顶点路径中的模型顶点p对应的初始蒙皮权重,以及模型顶点p的邻域中的模型顶点对应的初始蒙皮权重进行滤波处理,得到加权平均权重;
将加权平均权重确定为共线顶点路径所包含的模型顶点p对应的蒙皮更新权重。
在一个或多个实施例中,蒙皮处理单元105根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理,包括:
获取虚拟对象对应的对象骨骼,以及获取对象骨骼所包含的骨骼关节对应的骨骼变换参数;
根据三维网格模型中的模型顶点对应的初始顶点位置、蒙皮更新权重以及骨骼变换参数,确定三维网格模型中的模型顶点对应的顶点更新位置;
根据三维网格模型中的模型顶点对应的顶点更新位置,将对象骨骼与三维网格模型进行绑定,得到虚拟对象对应的蒙皮结果。
根据本申请的一种实施例,前文所示的数据处理方法所涉及的步骤可以由图15所示的数据处理装置1中的各个模块来执行。例如,图3所示的步骤S101可由图15所示的模型获取单元101来执行,图3所示的步骤S102可由图15所示的多边形合并单元102来执行,图3所示的步骤S103可由图15所示的共线顶点获取单元103来执行,图3所示的步骤S104可由图15所示的权重平滑处理单元104来执行,图3所示的步骤S105可由图15所示的蒙皮处理单元105来执行等。
根据本申请的一个实施例,图15所示的数据处理装置1中的各个单元可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的至少两个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由至少两个单元来实现,或者至少两个单元的功能由一个单元实现。在本申请的其它实施例中,数据处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由至少两个单元协作实现。
本申请实施例中,通过获取虚拟对象对应的三维网格模型以及该三维网格模型中的模型顶点对应的初始蒙皮权重,将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形中的对角线,得到候选网格模型;基于候选网格模型对应的半边结构数据,在合并而成的第二形状多边形上搜索共线顶点路径,按照共线顶点路径的方向对共线顶点路径中的模型顶点对应的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,由此可以修复三维网格模型中的不平滑的权重,提升模型顶点的权重平滑度;基于模型顶点对应的蒙皮更新权重对虚拟对象进行蒙皮处理,可以提高虚拟对象的蒙皮处理效果,进而可以提升虚拟对象的渲染展示效果。
请参见图16,图16是本申请实施例提供的一种计算机设备的结构示意图。如图16所示,该计算机设备1000可以为图1所对应实施例中的服务器10b,或者可以为图1所对应实施例中的终端设备10a,这里将不对其进行限制。为便于理解,本申请实施例以计算机设备为终端设备为例,该计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,该计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选地,用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图16所示,作为一种计算机可读存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
其中,图16所示的计算机设备1000中的网络接口1004还可以提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;可以理解的是,处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
获取虚拟对象对应的三维网格模型,以及获取三维网格模型中的模型顶点对应的初始蒙皮权重;
将三维网格模型中的第一形状多边形对合并为第二形状多边形,移除第二形状多边形的对角线,得到候选网格模型;第一形状多边形对中所包含的两个第一形状多边形,在三维网格模型中具有共享的边;
获取候选网格模型对应的半边结构数据,对半边结构数据中的半边进行遍历处理,获取三维网格模型中的共线顶点路径;
根据共线顶点路径在半边结构数据中的路径方向,对共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
根据三维网格模型中的模型顶点对应的蒙皮更新权重,对虚拟对象进行蒙皮处理。
应当理解,本申请实施例中所描述的计算机设备1000可执行前文图3和图8任一个所对应实施例中对数据处理方法的描述,也可执行前文图15所对应实施例中对数据处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
此外,这里需要指出的是:本申请实施例还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有前文提及的数据处理装置1所执行的计算机程序,且计算机程序包括程序指令,当处理器执行程序指令时,能够执行前文图3和图8任一个所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。其中,存储介质可以为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可被部署在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行,分布在多个地点且通过通信网络互连的多个计算设备可以组成区块链系统。
此外,需要说明的是:本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或者计算机程序可以包括计算机指令,该计算机指令可以存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器可以执行该计算机指令,使得该计算机设备执行前文图3和图8任一个所对应实施例中对数据处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机程序产品或者计算机程序实施例中未披露的技术细节,请参照本申请方法实施例的描述。
本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同媒体内容,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例提供的方法及相关装置是参照本申请实施例提供的方法流程图和/或结构示意图来描述的,具体可由计算机程序指令实现方法流程图和/或结构示意图的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。这些计算机程序指令可提供到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或结构示意图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或结构示意一个方框或多个方框中指定的功能的步骤。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (14)
1.一种数据处理方法,其特征在于,包括:
获取虚拟对象对应的三维网格模型,以及获取所述三维网格模型中的模型顶点对应的初始蒙皮权重;
将所述三维网格模型中的第一形状多边形对合并为第二形状多边形,移除所述第二形状多边形的对角线,得到候选网格模型;所述第一形状多边形对中所包含的两个第一形状多边形,在所述三维网格模型中具有共享的边;
获取所述候选网格模型对应的半边结构数据,对所述半边结构数据中的半边进行遍历处理,获取所述三维网格模型中的共线顶点路径;
根据所述共线顶点路径在所述半边结构数据中的路径方向,对所述共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
根据所述三维网格模型中的模型顶点对应的蒙皮更新权重,对所述虚拟对象进行蒙皮处理。
2.根据权利要求1所述的方法,其特征在于,所述将所述三维网格模型中的第一形状多边形对合并为第二形状多边形,包括:
在所述三维网格模型中确定第一形状多边形集合,获取所述第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数;所述第二形状评估系数用于衡量候选多边形为矩形的程度;
获取每一个候选多边形中的两个第一形状多边形之间的二面角,将二面角大于角度阈值的候选多边形组成第一候选多边形集合;
将与所述第一候选多边形集合中的候选多边形q存在重叠区域的候选多边形组合为第二候选多边形集合;所述第二候选多边形集合为所述第一候选多边形集合的子集;
若所述候选多边形q对应的第二形状评估系数大于系数阈值,且所述候选多边形q对应的第二形状评估系数大于所述第二候选多边形集合中所包含的候选多边形对应的第二形状评估系数,则将所述候选多边形q确定为由第一形状多边形对合并而成的第二形状多边形。
3.根据权利要求2所述的方法,其特征在于,所述在所述三维网格模型中确定第一形状多边形集合,包括:
在所述虚拟对象的蒙皮处理页面中,显示所述三维网格模型和模型区域选择控件;
响应针对所述模型区域选择控件的触发操作,将所述触发操作所选中的模型区域确定为所述三维网格模型中的待处理顶点区域;
将所述待处理顶点区域所包含的第一形状多边形组合为所述第一形状多边形集合。
4.根据权利要求2所述的方法,其特征在于,所述获取所述第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形对应的第二形状评估系数,包括:
将所述第一形状多边形集合中的每一组第一形状多边形对所组成的候选多边形添加至第三候选多边形集合;所述第三候选多边形集合包括所述第一候选多边形集合;
获取所述第三候选多边形集合中的候选多边形q对应的顶点集合,获取由所述顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数;所述第一形状评估系数用于衡量第一形状多边形为等边多边形的程度;
根据由所述顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定所述候选多边形q对应的第二形状评估系数。
5.根据权利要求4所述的方法,其特征在于,所述获取由所述顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,包括:
在由所述顶点集合所包含的模型顶点所构成的多个第一形状多边形中获取第一形状多边形j;
获取所述第一形状多边形j对应的多边形面积,以及获取所述第一形状多边形j对应的边长平方和;
根据所述多边形面积与所述边长平方和之间的比值,确定所述第一形状多边形j对应的第一形状评估系数。
6.根据权利要求4所述的方法,其特征在于,所述候选多边形q为四边形,由所述顶点集合中的模型顶点所构成的多个第一形状多边形包括三角形t1、三角形t2、三角形t3以及三角形t4;
所述根据由所述顶点集合中的模型顶点所构成的多个第一形状多边形对应的第一形状评估系数,确定所述候选多边形q对应的第二形状评估系数,包括:
获取所述三角形t1对应的第一形状评估系数与所述三角形t2对应的第一形状评估系数之间的第一系数乘积,获取所述三角形t3对应的第一形状评估系数与所述三角形t4对应的第一形状评估系数之间的第二系数乘积;
将第二系数乘积与所述第一系数乘积之间的比值,确定为所述候选多边形q对应的第二形状评估系数;
其中,所述三角形t1和所述三角形t2所对应的第一形状评估系数,大于或等于所述三角形t3和所述三角形t4所对应的第一形状评估系数。
7.根据权利要求1所述的方法,其特征在于,所述获取所述候选网格模型对应的半边结构数据,对所述半边结构数据中的半边进行遍历处理,获取所述三维网格模型中的共线顶点路径,包括:
将所述候选网格模型中的边转化为具有相反方向的两条半边,生成所述候选网格模型对应的半边结构数据,在所述半边结构数据的边界半边中确定起始半边,按照所述起始半边的方向获取所述起始半边在所述半边结构数据中的第一邻接半边集合;
若所述第一邻接半边集合中存在与所述起始半边共线的第一邻接半边,则将所述起始半边和所述第一邻接半边确定为初始共线路径,按照所述第一邻接半边的方向获取所述第一邻接半边在所述半边结构数据中的第二邻接半边集合;
若所述第二邻接半边集合中不存在与所述第一邻接半边共线的第二邻接半边,或者所述第二邻接半边集合中与所述第一邻接半边共线的第二邻接半边为所述起始半边,则将所述初始共线路径确定为所述半边结构数据中的候选共线路径;
为所述候选共线路径所包含的半边设置已遍历标识,直至所述半边结构数据所包含的半边均携带已遍历标识,得到所述半边结构数据中的多条候选共线路径;
若所述多条候选共线路径中存在起始半边共线的候选共线路径L1和候选共线路径L2,则将所述候选共线路径L1和所述候选共线路径L2合并为共线顶点路径。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
将所述第一邻接半边集合中与所述起始半边具有最小夹角的半边确定为第一邻接半边;
若所述起始半边与所述第一邻接半边之间的夹角余弦大于余弦阈值,则确定所述起始半边和所述第一邻接半边共线;
若所述起始半边与所述第一邻接半边之间的夹角余弦小于或等于所述余弦阈值,则确定所述起始半边和所述第一邻接半边不共线。
9.根据权利要求1所述的方法,其特征在于,所述根据所述共线顶点路径在所述半边结构数据中的路径方向,对所述共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取所述三维网格模型对应的平滑窗口;
根据所述共线顶点路径在所述半边结构数据中的路径方向,在所述共线顶点路径上滑动所述平滑窗口,获取所述平滑窗口所覆盖的模型顶点对应的初始蒙皮权重的权重平均值;
将所述权重平均值确定为所述平滑窗口所覆盖的中心顶点对应的蒙皮更新权重。
10.根据权利要求1所述的方法,其特征在于,所述根据所述共线顶点路径在所述半边结构数据中的路径方向,对所述共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重,包括:
获取所述三维网格模型对应的平滑滤波器,以及获取所述共线顶点路径所包含的各个模型顶点对应的邻域;所述邻域中的顶点数量与所述平滑滤波器的尺寸相关联;
根据所述共线顶点路径在所述半边结构数据中的路径方向,通过所述平滑滤波器对所述共线顶点路径中的模型顶点p对应的初始蒙皮权重,以及所述模型顶点p的邻域中的模型顶点对应的初始蒙皮权重进行滤波处理,得到加权平均权重;
将所述加权平均权重确定为所述共线顶点路径所包含的模型顶点p对应的蒙皮更新权重。
11.根据权利要求1所述的方法,其特征在于,所述根据所述三维网格模型中的模型顶点对应的蒙皮更新权重,对所述虚拟对象进行蒙皮处理,包括:
获取所述虚拟对象对应的对象骨骼,以及获取所述对象骨骼所包含的骨骼关节对应的骨骼变换参数;
根据所述三维网格模型中的模型顶点对应的初始顶点位置、所述蒙皮更新权重以及所述骨骼变换参数,确定所述三维网格模型中的模型顶点对应的顶点更新位置;
根据所述三维网格模型中的模型顶点对应的顶点更新位置,将所述对象骨骼与所述三维网格模型进行绑定,得到所述虚拟对象对应的蒙皮结果。
12.一种数据处理装置,其特征在于,包括:
模型获取单元,用于获取虚拟对象对应的三维网格模型,以及获取所述三维网格模型中的模型顶点对应的初始蒙皮权重;
多边形合并单元,用于将所述三维网格模型中的第一形状多边形对合并为第二形状多边形,移除所述第二形状多边形的对角线,得到候选网格模型;所述第一形状多边形对中所包含的两个第一形状多边形,在所述三维网格模型中具有共享的边;
共线顶点获取单元,用于获取所述候选网格模型对应的半边结构数据,对所述半边结构数据中的半边进行遍历处理,获取所述三维网格模型中的共线顶点路径;
权重平滑处理单元,用于根据所述共线顶点路径在所述半边结构数据中的路径方向,对所述共线顶点路径所包含的模型顶点的初始蒙皮权重进行平滑处理,得到蒙皮更新权重;
蒙皮处理单元,用于根据所述三维网格模型中的模型顶点对应的蒙皮更新权重,对所述虚拟对象进行蒙皮处理。
13.一种计算机设备,其特征在于,包括存储器和处理器;
所述存储器与所述处理器相连,所述存储器用于存储计算机程序,所述处理器用于调用所述计算机程序,以使得所述计算机设备执行权利要求1至11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序适于由处理器加载并执行,以使得具有所述处理器的计算机设备执行权利要求1至11任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310672720.1A CN116402989B (zh) | 2023-06-08 | 2023-06-08 | 数据处理方法、装置、设备以及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310672720.1A CN116402989B (zh) | 2023-06-08 | 2023-06-08 | 数据处理方法、装置、设备以及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116402989A CN116402989A (zh) | 2023-07-07 |
CN116402989B true CN116402989B (zh) | 2023-08-08 |
Family
ID=87014604
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310672720.1A Active CN116402989B (zh) | 2023-06-08 | 2023-06-08 | 数据处理方法、装置、设备以及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116402989B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112802161A (zh) * | 2021-01-27 | 2021-05-14 | 青岛联合创智科技有限公司 | 一种三维虚拟角色智能蒙皮方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106960459B (zh) * | 2016-12-26 | 2019-07-26 | 北京航空航天大学 | 角色动画中基于扩展位置动力学的蒙皮技术及权重重定位的方法 |
CN112437950A (zh) * | 2018-05-22 | 2021-03-02 | 奇跃公司 | 用于对虚拟头像制作动画的骨架系统 |
-
2023
- 2023-06-08 CN CN202310672720.1A patent/CN116402989B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112802161A (zh) * | 2021-01-27 | 2021-05-14 | 青岛联合创智科技有限公司 | 一种三维虚拟角色智能蒙皮方法 |
Non-Patent Citations (1)
Title |
---|
"Virtual hand skinning using volumetric shape";Abderrazzak Ait Mouhou 等;《Computer Aided Engineering and Technology》;第77-96页 * |
Also Published As
Publication number | Publication date |
---|---|
CN116402989A (zh) | 2023-07-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112200896B (zh) | 虚拟对象风动画的渲染方法及装置、存储介质、电子装置 | |
JP3461980B2 (ja) | 高速描画方法および装置 | |
CN111382618B (zh) | 一种人脸图像的光照检测方法、装置、设备和存储介质 | |
US9056247B2 (en) | System and method for efficient character animation | |
CN113379932B (zh) | 人体三维模型的生成方法和装置 | |
CN115018992A (zh) | 发型模型的生成方法、装置、电子设备及存储介质 | |
CN108379841A (zh) | 游戏特效的处理方法、装置和终端 | |
CN101082951A (zh) | 一种利用3d技术提供网络游戏反外挂图像来源的方法 | |
CN116402989B (zh) | 数据处理方法、装置、设备以及介质 | |
CN116228951B (zh) | 一种数字虚拟对象的表情数据处理方法和装置 | |
CN113313796B (zh) | 场景生成方法、装置、计算机设备和存储介质 | |
Galbraith et al. | BlobTree trees | |
CN114359469A (zh) | 生成主控对象投影的方法、装置、设备及介质 | |
Liu | Complex Scene Loading Optimization Based On Virtual Reality Algorithm | |
CN117808949B (zh) | 一种场景渲染方法 | |
CN116342771B (zh) | 一种数据处理方法、装置、设备及存储介质 | |
CN117576280B (zh) | 一种基于3d数字人的智能端云一体化生成方法及系统 | |
CN116310011B (zh) | 数据处理方法、装置、设备及存储介质 | |
CN117649477B (zh) | 图像处理方法、装置、设备以及存储介质 | |
CN116206035B (zh) | 人脸重建方法、装置、电子设备以及存储介质 | |
CN115953553B (zh) | 虚拟形象生成方法、装置、电子设备以及存储介质 | |
CN116486108B (zh) | 一种图像处理方法、装置、设备及存储介质 | |
CN116958365A (zh) | 虚拟地形的处理方法、装置、设备、介质和程序产品 | |
CN107134009B (zh) | 一种基于骨架球的3d建模方法和系统 | |
Grigore et al. | Real-time Guided Procedural Terrain Generation |
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: 40088863 Country of ref document: HK |