一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

蒙皮穿插修复方法、系统及计算机设备与流程

2021-12-01 01:54:00 来源:中国专利 TAG:


1.本技术涉及计算机图形、图像、动画处理及三维虚拟数字相关技术领域,具体而言,涉及一种蒙皮穿插修复方法、系统及计算机设备。


背景技术:

2.在基于计算机图形图像技术的三维动画设计或三维虚拟数字技术的相关应用场景中,蒙皮绑定是极为重要且关键的一个环节。以三维虚拟数字人物的动画角色设计为例,三维虚拟数字人物角色的蒙皮绑定需要投入大量的精力和时间来获得符合要求的动画效果,即使是专业的美术人员也无法保证绑定的效果。特别地,在蒙皮绑定的过程中,蒙皮绑定的好坏会直接影响动画的效果,而在蒙皮绑定的过程中,蒙皮穿插问题是影响最终动画效果的一种非常常见的技术问题。基于此,如何有效解决蒙皮穿插的问题是本领域技术人员急需解决的技术问题。


技术实现要素:

3.基于以上内容,第一方面,本技术实施例提供一种蒙皮穿插修复方法,所述方法包括:
4.从三维动画中确定待进行穿插区域检测的目标动画帧;
5.针对每个所述目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据,其中,所述第一蒙皮模型与所述第二蒙皮模型邦定以形成所述三维动画中显示的所述目标虚拟角色;
6.根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域;
7.根据检测到的各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合;
8.对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复。
9.基于第一方面的一种可替代的实施方式,所述根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,包括:
10.根据所述第一模型数据以及所述第二模型数据分别将所述第一蒙皮模型中的网格面片转化成第一三角网格面片以及将所述第二蒙皮模型中的网格面片转化成第二三角网格面片;
11.检测所述第一蒙皮模型中的第一三角网格面片与所述第二蒙皮模型中的第二三角网格面片存在交集的三角网格面片对;
12.根据检测到的存在交集的三角网格面片对获得所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域。
13.基于第一方面的一种可替代的实施方式,检测所述第一蒙皮模型中的第一三角网格面片与所述第二蒙皮模型中的第二三角网格面片存在交集的三角网格面片对,包括:
14.根据所述第一蒙皮模型的第一三角网格面片获得所述第一蒙皮模型对应的第一层次包围体,所述第一层次包围体包括多个层次的第一包围体,每个层次内的各第一包围体内包括至少一个第一三角网格面片;
15.根据所述第二蒙皮模型的第二三角网格面片获得所述第二蒙皮模型对应的第二层次包围体,所述第二层次包围体包括多个层次的第二包围体,每个层次内的各第二包围体内包括至少一个第二三角网格面片;
16.按照所述第一层次包围体以及所述第二层次包围体的层次关系,分别建立所述第一层次包围体对应的第一包围体拓扑结构以及所述第二层次包围体对应的第二包围体拓扑结构;
17.按照自顶而下的顺序依次遍历所述第一包围体拓扑结构和所述第二包围体拓扑结构中的各拓扑节点,将所述第一包围体拓扑结构中的各拓扑节点对应的第一包围体与所述第二包围体拓扑结构中对应的第二包围体进行比对分析;
18.针对每次遍历过程,判断当前遍历过程中的第一包围体与第二包围体是否相交,若相交,则进入下一拓扑节点的比对分析过程,直到分析到相交的第一三角网格面片和第二三角网格面片,得到存在交集的三角网格面片对;若不相交,则结束当前遍历的所述第一包围体以及所述第二包围体对应的拓扑节点下其他各拓扑节点的遍历过程。
19.基于第一方面的一种可替代的实施方式,检测所述第一蒙皮模型中的第一三角网格面片与所述第二蒙皮模型中的第二三角网格面片存在交集的三角网格面片对,包括:
20.根据所述第一蒙皮模型中的各第一三角网格面片与所述第二蒙皮模型中的各第二三角网格面片之间的邻接关系,将各所述第一三角网格面片分别与对应的一个第二三角网格面片进行绑定形成三角网格面片对;
21.依次遍历每个所述三角网格面片对,检测所述三角网格面片对中的第一三角网格面片和第二三角网格面片是否存在交集。
22.基于第一方面的一种可替代的实施方式,根据检测到的存在交集的三角网格面片对获得所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,包括:
23.获取检测到的各三角网格面片对中的第一三角网格面片和第二三角网格面片的交点作为穿插边界点,其中,每个穿插边界点是一个第一三角网格面片与对应的第二三角网格面片的边界的交点;
24.根据各三角网格面片对之间的邻接关系,根据上述获取到的各所述穿插边界点获得所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域。
25.基于第一方面的一种可替代的实施方式,所述对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复,包括:
26.针对所述顶点集合中的每个目标蒙皮顶点,确定所述目标蒙皮顶点所对应的穿插模型上的目标三角网格面片,其中,当所述目标蒙皮顶点位于所述第一蒙皮模型时,所述穿插模型为所述第二蒙皮模型,当所述目标蒙皮顶点位于所述第二蒙皮模型时,所述穿插模型为所述第一蒙皮模型;
27.根据所述目标蒙皮顶点与所述目标三角网格面片之间的距离关系,计算得到所述
目标蒙皮顶点的权重优化系数;
28.根据所述权重优化系数以及所述目标三角网格面片对应的蒙皮顶点的权重,优化得到所述目标蒙皮顶点的权重值。
29.基于第一方面的一种可替代的实施方式,所述根据所述目标蒙皮顶点与所述目标三角网格面片之间的距离关系,计算得到所述目标蒙皮顶点的权重优化系数,包括:
30.当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片内时,根据所述投影点分别与所述目标距离确定所述目标蒙皮顶点的权重优化系数;
31.当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片之外时,根据所述目标蒙皮顶点分别与所述目标三角网格面片的各个顶点之间的距离确定所述目标蒙皮顶点的权重优化系数。
32.基于第一方面的一种可替代的实施方式,当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片内时,所述目标蒙皮顶点的权重值根据以下公式计算得到:
[0033][0034]
其中,w
i
为所述权重优化系数,i取值为1、2、3时,p
i
分别代表所述目标三角网格面片三个蒙皮顶点对应的权重值,dist(a

a
i
)为所述投影点与所述目标三角网格面片对应的蒙皮顶点a
i
之间的距离;
[0035]
当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片之外时,所述目标蒙皮顶点的权重值根据以下公式计算得到:
[0036][0037]
其中,w
i
为所述权重优化系数,i取值为1、2、3时,p
i
分别代表所述目标三角网格面片三个蒙皮顶点对应的权重值,dist(aa
i
)为所述目标蒙皮顶点与所述目标三角网格面片对应的蒙皮顶点a
i
之间的距离。
[0038]
第二方面,本技术还提供一种蒙皮穿插修复系统,所述蒙皮穿插修复系统包括:
[0039]
动画帧确定模块,用于从三维动画中确定待进行穿插区域检测的目标动画帧;
[0040]
模型数据获取模块,用于针对每个所述目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据,其中,所述第一蒙皮模型与所述第二蒙皮模型邦定以形成所述三维动画中显示的所述目标虚拟角色;
[0041]
穿插区域检测模块,用于根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域;
[0042]
顶点集合获得模块,用于根据检测到的各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合;
[0043]
顶点权重优化模块,用于对所述顶点集合中的各蒙皮顶点进行权重优化,以实现
对所述三维动画的蒙皮穿插修复。
[0044]
第三方面,本技术还提供一种计算机设备,包括机器可读存储介质以及一个或多个处理器,所述机器可读存储介质存储有机器可执行指令,所述机器可执行指令在被所述一个或多个处理器执行时,实现上述的方法。
[0045]
基于本技术实施例的上述内容,相对于现有技术而言,本技术实施例提供的蒙皮穿插修复方法、系统及计算机设备,针对三维动画中进行穿插区域检测的每个目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据,然后根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合,最后对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复。如此,可以在检测到三维动画中的目标虚拟角色的蒙皮模型出现蒙皮穿插时,对蒙皮穿插区域内的蒙皮顶点进行自动权重优化,以实现蒙皮穿插问题的自动修复,可大大减小人工修复的工作量,并显著减少目标虚拟角色的绑定工作量,获得更好的蒙皮驱动效果,降低目标虚拟角色的绑定成本和门槛。
附图说明
[0046]
为了更清楚地说明本技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0047]
图1是本技术实施例提供的蒙皮穿插修复方法的流程示意图。
[0048]
图2是图1中步骤s300的子步骤流程示意图。
[0049]
图3是图2中步骤s320的子步骤流程示意图。
[0050]
图4是本技术实施例提供的一种第一层次包围体的一个层次化结构的示意图。
[0051]
图5是本实施例提供的一种第二层次包围体的一个层次化结构的示意图。
[0052]
图6是申请本实施例提供的一种第一包围体拓扑结构的示例性示意图。
[0053]
图7是申请本实施例提供的一种第二包围体拓扑结构的示例性示意图。
[0054]
图8本技术实施例提供的所检测到的一个穿插区域的模型面片的局部示意图。
[0055]
图9是本技术实施例提供的用于实现上述蒙皮穿插修复方法的计算机设备的示意图。
[0056]
图10是本技术实施例提供的蒙皮穿插修复系统的功能模块示意图。
具体实施方式
[0057]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本技术实施例的组件可以以各种不同的配置来布置和设计。
[0058]
因此,以下对在附图中提供的本技术的实施例的详细描述并非旨在限制要求保护的本技术的范围,而是仅仅表示本技术的选定实施例。基于本技术中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0059]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0060]
在本技术的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0061]
在本技术的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本技术中的具体含义。
[0062]
在一些特定的应用场合下,三维虚拟数字技术具有得天独厚的优势在行业中得到较好的运用。例如,在传染病导致的疫情传播的情况下,三维虚拟数字技术逐渐受到各行各业的青睐。利用虚拟的客服来减少人员之间的接触、提高非接触场景下的服务质量和教学水平,是每一个领域都关注的重点。例如,在传统的服装行业,也正探索如何将虚拟数字人与本领域的服务内容结合起来,创造出独树一帜的虚拟形象和高质量的服务体验。虚拟数字人的可复制性、可定制性的能力,大大提升了服务的水平和业务体验,简化了服务流程,进而降低了服务的成本。未来,数字人可以作为一种快捷载体,结合人工智能和虚拟现实技术赋予行业更个性化和智能化的服务内容。然而,要创造出一个虚拟的数字形象需要经过复杂的步骤,比如三维虚拟形象的建模、三维骨骼的人工绑定、三维角色的动画以及场景的规划和渲染等。其中,三维虚拟形象骨骼绑定和动画,是虚拟数字人制作过程中必不可少的环节。例如,针对实时的虚拟直播场景下,蒙皮绑定是虚拟角色动画必不可少的环节之一。随着用户对服装款式和虚拟主播形象的个性化需求,多层服装或者肢体的蒙皮绑定成为了硬性需求。
[0063]
基于前述背景技术中所提及的问题,发明人经研究发现,蒙皮绑定方式,通常包括人工绑定和自动蒙皮两种。人工绑定一般是由专业的动画师人工调整骨骼的影响范围和权重,来达到好的动画效果。而自动蒙皮通常借助于体素或者热力图等方式处理蒙皮权重。对于动画质量要求比较高的场景下,一般采用人工绑定的方式,比如影视特效等。自动蒙皮一般应用于对动画质量要求不高的场景下,比如游戏等。不管上述两种哪种方式,都会遇到蒙皮权重不一致导致的蒙皮穿插的问题,严重影响动画的效果。现有的现有的蒙皮穿插问题,大多需要通过人工修复的方式进行解决,而人工修复的方式需要投入大量的人力和物力来保证修复的效果,且需要耗费较多修复时间。
[0064]
基于上述问题的发现,为了解决蒙皮穿插的技术问题,本技术实施例提供一种蒙皮穿插检测的方法检测出蒙皮穿插区域,并根据穿插区域确定需要进行权重优化调整的蒙皮顶点集合。最后,针对需要蒙皮调整的顶点集合,进行蒙皮权重的统一调整。
[0065]
如图1所示,是本技术实施例提供的蒙皮穿插修复方法的流程示意图。本实施例中,所述方法可以由计算机设备执行并实现。所述计算机设备可以是用于实现三维动画设计的个人计算机、或者后台服务器等。例如,作为一种示例,所述计算机设备可以是用于提供通过虚拟角色进行直播互动的直播服务器。又或者,所述计算机设备可以是动画工程设
计人员的个人电脑,通过设计好相应的动画角色模型之后上传到所述直播服务器,使所述直播服务器可以基于所述动画角色模型实现相应的虚拟角色直播服务。
[0066]
详细地,如图1所示,所述蒙皮穿插修复方法可以包括下述的步骤s100

步骤s500,下面结合图1对各所述步骤的具体内容进行示例性介绍。
[0067]
步骤s100,从三维动画中确定待进行穿插区域检测的目标动画帧。
[0068]
本实施例中,所述三维动画可以是任何类型的具有需要进行蒙皮绑定的三维虚拟角色的三维动画。例如,所述三维动画可以是针对某个特定的虚拟游戏人物角色的三维动画,也可以是针对虚拟服装仿真的三维虚拟数字人的三维动画,还可以是具有三维虚拟动物角色的三维动画,本技术对三维动画的具体呈现方式及其包括的具体内容不做限定。进一步地,所述目标动画帧可以是事先确定的需要进行穿插区域检测的至少一个动画帧。作为一种示例,考虑到蒙皮穿插问题的出现基本上是在三维动画中的相关目标虚拟角色在执行较大幅度的动作时而产生,因此,所述目标动画帧可以是预先确定的在所述目标虚拟角色执行特定动作时对应的动画帧。例如,所述目标动画帧可以是所述三维动画中所述目标虚拟角色执行踢腿、跳跃、抬手等动作而对应的动画帧。
[0069]
步骤s200,针对每个所述目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据。
[0070]
详细地,本实施例中,所述第一蒙皮模型与所述第二蒙皮模型邦定以形成所述三维动画中显示的所述目标虚拟角色。其中,所述第一模型数据可以包括,但不限于,所述第一蒙皮模型中各蒙皮顶点的顶点数据(如顶点权重、顶点之间的拓扑顺序)、网片面片数据(如网格面片对应的蒙皮顶点以及网格面片对应的拓扑数据)等。进一步地,所述第一蒙皮模型和所述第二蒙皮模型可以是所述三维动画中的所述目标虚拟角色的骨骼模型上覆盖的不同层的蒙皮模型。例如,作为一种示例,所述目标虚拟角色可以是一种三维虚拟人物,所述第一蒙皮模型则可以是所述三维虚拟人物的人体服装三维网格模型,所述第二蒙皮模型可以是所述虚拟人物的人体皮肤三维网格模型。所述人体皮肤三维网格模型可以绑定在人体骨骼模型上,所述人体服装三维网格模型可以绑定在所述人体皮肤三维网格模型上。如此,通过人体骨骼模型、人体皮肤三维网格模型以及人体服装三维网格模型可以构成所述目标虚拟角色的三维动画模型。
[0071]
步骤s300,根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域。
[0072]
其中,在本技术实施例的一种可能的实施方案中,所述穿插区域可以包括所述第一蒙皮模型上的第一穿插区域和/或所述第二蒙皮模型上的第二穿插区域。或者,所述穿插区域可以是所述第一蒙皮模型上以及所述第二蒙皮模型上的其中任意一者上所检测到的发生了蒙皮穿插的相关面片区域。
[0073]
如图2所示,在本实施例的一种可替代的实现方式中,步骤s300可以通过下述的步骤s310

s330具体实现。
[0074]
步骤s310,根据所述第一模型数据以及所述第二模型数据分别将所述第一蒙皮模型中的网格面片转化成第一三角网格面片以及将所述第二蒙皮模型中的网格面片转化成第二三角网格面片。
[0075]
详细地,本实施例中,所述第一蒙皮模型以及所述第二蒙皮模型在进行模型数字
化之后,一般是通过多边形的网格面片(如三角形网格面片、四边形网格面片、五边形网格面片等等)的方式进行表示。本实施例中,可以首先将第一蒙皮模型和第二蒙皮模型中的网格面片转化为对应的三角网格面片。其中,应当理解,若对应的网格面片已经为三角网格面片,则不进行转化,若对应的网格面片为包括四条边或四条边以上的多边形网格面片,则可以根据所述第一蒙皮模型以及所述第二蒙皮模型中的各蒙皮顶点以及各网格面片的拓扑顺序转化成相应的三角网格面片。
[0076]
步骤s320,检测所述第一蒙皮模型中的第一三角网格面片与所述第二蒙皮模型中的第二三角网格面片存在交集的三角网格面片对。
[0077]
具体地,本实施例中,为了提高对各所述三角网格面片对的检测速度,可以采用层次包围体来实现所述第一蒙皮模型中的第一三角网格面片与所述第二蒙皮模型中的第二三角网格面片存在交集的三角网格面片对的检测。
[0078]
详细地,如图3所示,所述步骤s320可以包括以下s3201

s3207的内容,下面进行示例性说明。
[0079]
步骤s3201,根据所述第一蒙皮模型的第一三角网格面片获得所述第一蒙皮模型对应的第一层次包围体。其中,所述第一层次包围体包括多个层次的第一包围体,每个层次内的各第一包围体内包括至少一个第一三角网格面片。
[0080]
本实施例中,如图4所示,是本实施例提供的一种第一层次包围体的一个层次化结构的示意图。针对一个动画帧的第一蒙皮模型可以由一个包围体a进行表示,该包围体a下可以包括下一层次的多个不同的包围体,如包围体a1、a2,相应地,a1和a2又可以分别包括位于a1和a2所在层次的下一次层次的包围体,如a11、a12、a21、a22等。一般而言,上一层次的包围体和其下一层次的包围体之间为包含关系,即上一层次的包围体大于下一次层次的包围体。作为一种示例,可以事先设定位于上一层次的第一包围体只能包含下一层次的设定数量(如2个)的第一包围体,最后一层次的第一包围体可以包括一个第一三角网格面片。
[0081]
步骤s3202,根据所述第二蒙皮模型的第二三角网格面片获得所述第二蒙皮模型对应的第二层次包围体。其中,所述第二层次包围体包括多个层次的第二包围体,每个层次内的各第二包围体内包括至少一个第二三角网格面片。
[0082]
本实施例中,如图5所示,是本实施例提供的一种第二层次包围体的一个层次化结构的示意图。本实施例中,针对一个动画帧的第二蒙皮模型可以由一个包围体b进行表示,该包围体b下可以包括下一层次的多个不同的包围体,如包围体b1、b2,相应地,b1和b2又可以分别包括位于b1和b2所在层次的下一次层次的包围体,如b11、b12、b21、b22等。与第一层次包围体相类似,同样可以事先设定位于上一层次的第二包围体只能包含下一层次的设定数量(如2个)的第二包围体,最后一层次的第二包围体可以包括一个第二三角网格面片。
[0083]
步骤s3203,按照所述第一层次包围体以及所述第二层次包围体的层次关系,分别建立所述第一层次包围体对应的第一包围体拓扑结构以及所述第二层次包围体对应的第二包围体拓扑结构。
[0084]
本实施例中,如图6所示,是本实施例提供的一种第一包围体拓扑结构的示例性示意图。本实施例中,针对图4所示的第一层次包围体的层次结构,可以根据各个第一包围体所在的不同层次,建立与第一蒙皮模型的第一层次包围体对应的第一包围体拓扑结构。例如,所述第一包围体拓扑结构可以包括多个拓扑节点,非最后一个层次的第一包围体对应
的节点具有至少一个叶子节点,每个叶子节点与一个最后一个层次的第一包围体相对应,最后一个层次的第一包围体可以包括一个第一三角网格面片。进一步地,所述第一包围体可以是具有特定形状的层次包围盒(如正多面体结构)或层次包围球,具体不进行限定。
[0085]
相对应,本实施例中,如图7所示,是本实施例提供的一种第二包围体拓扑结构的示例性示意图。本实施例中,针对图5所示的第二层次包围体的层次结构,可以根据各个第二包围体所在的不同层次,建立与第二蒙皮模型的第二层次包围体对应的第二包围体拓扑结构。例如,所述第二包围体拓扑结构可以包括多个拓扑节点,非最后一个层次的第二包围体对应的节点具有至少一个叶子节点,每个叶子节点与一个最后一个层次的第二包围体相对应,最后一个层次的第二包围体可以包括一个第二三角网格面片。进一步地,所述第二包围体可以是具有特定形状的层次包围盒(如正多面体结构)或层次包围球,具体不进行限定。
[0086]
示例性地,所述第一包围体以及所述第二包围体可以是,但不限于,轴对齐包围盒(aabb)或有向包围体(obb)。
[0087]
步骤s3024,按照自顶而下的顺序依次遍历所述第一包围体拓扑结构和所述第二包围体拓扑结构中的各拓扑节点,将所述第一包围体拓扑结构中的各拓扑节点对应的第一包围体与所述第二包围体拓扑结构中对应的第二包围体进行比对分析。
[0088]
步骤s3205,针对每次遍历过程,判断当前遍历过程中的第一包围体与第二包围体是否相交,若相交,则进入步骤s3206,进行下一拓扑节点的比对分析过程,直到分析到相交的第一三角网格面片和第二三角网格面片,得到存在交集的三角网格面片对;若不相交,则进入步骤s3207,结束当前遍历的所述第一包围体以及所述第二包围体对应的拓扑节点下其他各拓扑节点的遍历过程。
[0089]
例如,以图6和图7所示的第一包围体拓扑结构和第二包围体拓扑结构为例。在进行拓扑节点遍历时,首先,将包围体a与包围体b进行比对分析,判断包围体a和包围体b是否相交,若不相交,则表明所述第一蒙皮模型与所述第二蒙皮模型之间不存在交集,也就不存在穿插问题,因此可直接结束遍历过程。若包围体a和包围体b相交,则表明第一蒙皮模型和第二蒙皮模型之间可能存在穿插问题,则进一步将包围体a1和包围体b1进行比较,并将包围体a2和包围体b2进行比较。如果包围体a1和包围体b1存在交集,则进一步进行包围体a1下一层次的包围体与包围体b1的下一层次的包围体的比较,如此依序执行,直到遍历到叶子节点的包围体并确定存在交集的最后一个层次的第一包围体和第二包围体(例如包围体a111和包围体b111、以及包围体a112与包围体b112等),进而可以确定存在交集的包围体所对应的三角网格面片对,例如,位于包围体a111内的第一三角网格面片和位于包围体b111内的第二三角网格面片则为一个三角网格面片对。如果包围体a1和包围体b1不存在交集,则结束包围体a1与包围体b1之后所有层次的包围体的遍历过程。同样,针对包围体a2和包围体b2之间的处理过程,与包围体a1和包围体b2之间的处理过程相同,此处不再一一赘述。如此,通过上述过程,引入层次包围体的方式,可以加速穿插区域的确定过程,极大的减少三角网格面片的穿插检测时间,节省计算机设备的运算资源。
[0090]
进一步地,在另一种可替代的实施方式中,针对步骤s320,还可以通过以下的方法实现。
[0091]
首先,根据所述第一蒙皮模型中的各第一三角网格面片与所述第二蒙皮模型中的
各第二三角网格面片之间的邻接关系,将各所述第一三角网格面片分别与对应的一个第二三角网格面片进行绑定形成三角网格面片对;然后,依次遍历每个所述三角网格面片对,检测所述三角网格面片对中的第一三角网格面片和第二三角网格面片是否存在交集。
[0092]
步骤s330,根据检测到的存在交集的三角网格面片对获得所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域。
[0093]
在本实施例中,所述穿插区域可以是所述第一蒙皮模型穿插到所述第二蒙皮模型中的区域,也可以是所述第二蒙皮模型穿插到所述第一蒙皮模型中的区域,或者也可以同时包括所述第一蒙皮模型穿插到所述第二蒙皮模型中的区域以及述第二蒙皮模型穿插到所述第一蒙皮模型中的区域。本实施例中,所述穿插区域可以是一个区域也可以是多个区域。例如,图8所示,是本实施例提供的所检测到的一个穿插区域的模型面片的局部示意图,本实施例中,所述穿插区域可以包括彼此存在穿插的第一三角网格面片和第二三角网格面片之间的区域,还可以包括不存在穿插的三角网格面片的区域,例如图8所示,所述穿插边界为存在穿插的三角网格面片的边界点彼此连接而形成,对应的穿插边界(图8中的虚线框)界定的穿插区域内同样还可能包括未发生穿插的三角网格面片。
[0094]
作为一种示例,可首先获取检测到的各三角网格面片对中的第一三角网格面片和第二三角网格面片的交点作为穿插边界点,其中,每个穿插边界点是一个第一三角网格面片与对应的第二三角网格面片的边界的交点;然后,根据各三角网格面片对之间的邻接关系,基于上述获取到的各所述穿插边界点获得所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,例如可以将各所述穿插边界点首尾相连得到所述穿插区域。
[0095]
步骤s400,根据检测到的各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合。
[0096]
本实施例中,所述穿插区域内的各蒙皮顶点可以包括发生了穿插的蒙皮顶点,也可以包括未发生穿插的蒙皮顶点。本技术实施例,为了方便穿插区域的蒙皮权重修复,将位于所述穿插区域内的所有蒙皮顶点均加入所述顶点集合中,方便后续针对所述穿插区域进行统一的蒙皮顶点优化,以实现针对所述三维动画的蒙皮穿插修复。例如图8所示,当确定穿插区域为cr时,那么可以该穿插区域cr内的所有蒙皮顶点(如abcdef等)加入所述顶点集合中,以进行后续的蒙皮顶点的权重优化。
[0097]
步骤s500,对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复。
[0098]
详细地,针对步骤s500,本技术实施例可以可以利用欧式距离或者测地线等方式,确定权重的优化比例实现对所述顶点集合中的各蒙皮顶点的权重优化。如此,本实施例通过上述穿插区域的确定方式检测得到对应的穿插区域之后,将该穿插区域之内的各模型顶点的权重进行统一优化调整,可以使得顶点权重的优化过程更为快捷,同时可以使得蒙皮穿插问题的修复效果更好。
[0099]
进一步地,本实施例中,针对穿插区域内的各蒙皮顶点进行统一的权重优化,由于三维模型表面的蒙皮顶点之间存在连接关系,相较于传统的针对单个穿插点的权重优化,忽略了这种联通关系,会引起相邻穿插点权重的不连续,影响蒙皮动画的质量和效果。而本实施例将穿插区域内的所有蒙皮顶点统一进行权重的优化,利用了待优化的各顶点之间的连接关系,能够获得更为平滑的蒙皮权重数值。
[0100]
本实施例中,所述蒙皮顶点的权重可以是指所述目标虚拟角色的所述蒙皮顶点受到所述目标虚拟角色的每个骨骼的影响程度的量化参数。距离而言,若所述目标虚拟角色包括b1、b2、...、bn等多个骨骼,那么所述蒙皮顶点的权重可以表示为w={w1、w2、...、wn},其中,所述w1、w2、...、wn分别代表所述蒙皮顶点骨骼b1、b2、...、bn的影响程度的量化参数值。
[0101]
在本实施例的一种可能的实施方式中,针对步骤s500,可以通过以下s510

s530的步骤实现。
[0102]
步骤s510,针对所述顶点集合中的每个目标蒙皮顶点,确定所述目标蒙皮顶点所对应的穿插模型上的目标三角网格面片。其中,本实施例中,当所述目标蒙皮顶点位于所述第一蒙皮模型时,所述穿插模型为所述第二蒙皮模型,当所述目标蒙皮顶点位于所述第二蒙皮模型时,所述穿插模型为所述第一蒙皮模型。所述目标三角网格面片可以是所述穿插模型上与所述蒙皮顶点最近的一个三角网格面片或者是与所述蒙皮顶点所在的三角网格面片存在交集的三角网格面片。
[0103]
步骤s520,根据所述目标蒙皮顶点与所述目标三角网格面片之间的距离关系,计算得到所述目标蒙皮顶点的权重优化系数。
[0104]
作为一种示例,本实施例中,可以根据所述目标蒙皮顶点与所述目标三角网格片面之间的投影关系计算得到所述目标蒙皮顶点的权重优化系数。
[0105]
例如,当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片内时,可以根据所述投影点分别与所述目标三角网格面片的顶点之间的距离确定所述目标蒙皮顶点的权重优化系数;
[0106]
当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片之外时,可以根据所述目标蒙皮顶点分别与所述目标三角网格面片的顶点之间的距离距离确定所述目标蒙皮顶点的权重优化系数。
[0107]
步骤s530,根据所述权重优化系数以及所述目标三角网格面片对应的蒙皮顶点的权重,优化得到所述目标蒙皮顶点的权重值。
[0108]
详细地,在一种可能的实施方式中,当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片内时,所述目标蒙皮顶点的权重值根据以下公式计算得到:
[0109][0110]
其中,w
i
为所述权重优化系数,i取值为1、2、3时,p
i
分别代表所述目标三角网格面片三个蒙皮顶点对应的权重值,dist(a

a
i
)为所述投影点与所述目标三角网格面片对应的蒙皮顶点a
i
之间的距离。当i取值为1、2、3时,a1、a2、a3分别代表所述目标三角网格面片对应的三个蒙皮顶点。
[0111]
当所述目标蒙皮顶点在所述目标三角网格面片所在平面的投影点位于所述目标三角网格面片之外时,所述目标蒙皮顶点的权重值根据以下公式计算得到:
[0112][0113]
其中,w
i
为所述权重优化系数,i取值为1、2、3时,p
i
分别代表所述目标三角网格面片三个蒙皮顶点对应的权重值,dist(aa
i
)为所述目标蒙皮顶点与所述目标三角网格面片对应的蒙皮顶点a
i
之间的距离。当i取值为1、2、3时,a1、a2、a3分别代表所述目标三角网格面片对应的三个蒙皮顶点。
[0114]
此外,本实施例中,在对各所述蒙皮顶点进行权重优化得到相应的优化后的权重值之后,还可以对各所述蒙皮顶点进行权重的平滑处理。例如,利用三角网格片面彼此之间的相邻关系,计算每一个穿插区域内的蒙皮顶点的相邻顶点,本实施例可以将与所述蒙皮顶点具有公共边的其他蒙皮顶点都作为相邻顶点。例如,针对蒙皮顶点p的权重平滑,可以通过相邻顶点的权重adj(p)来实现,例如可以通过下述的公式实现针对各所述蒙皮顶点的权重平滑处理:
[0115][0116]
其中,ω
i
=||p

adj
i
(p)||
‑1,laplacian(p)是利用权重系数组合进行加权平均,u(p)是使穿插区域内所有蒙皮顶点的权重系数保持一致。
[0117]
请参阅图9所示,图9是本技术实施例提供的用于实现上述蒙皮穿插修复方法的计算机设备的示意图。详细地,所述计算机设备可以包括一个或多个处理器110、机器可读存储介质120以及蒙皮穿插修复系统130。处理器110与机器可读存储介质120可经由系统总线通信连接。机器可读存储介质120存储有机器可执行指令,处理器110通过读取并执行机器可读存储介质120中机器可执行指令实现上文描述的蒙皮穿插修复方法。
[0118]
其中,所述机器可读存储介质120可以是,但不限于,随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read

only memory,prom),可擦除只读存储器(erasable programmable read

only memory,eprom),电可擦除只读存储器(electric erasable programmable read

only memory,eeprom)等。其中,机器可读存储介质120用于存储程序,所述处理器110在接收到执行指令后,执行所述程序。
[0119]
所述处理器110可能是一种集成电路芯片,具有信号的处理能力。上述的处理器可以是,但不限于,通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)等。
[0120]
请参照图10,是所述蒙皮穿插修复系统130的功能模块示意图。本实施例中,所述蒙皮穿插修复系统130可以包括一个或多个在所述计算机设备运行的软件功能模块,这些软件功能模块可以计算机程序的形式存储在所述机器可读存储介质120中,以使得这些软件功能模块在被所述处理器130调用并执行时,可以实现本技术实施例所述的蒙皮穿插修复方法。
[0121]
详细地,所述蒙皮穿插修复系统130包括动画帧确定模块131,模型数据获取模块132,穿插区域检测模块133,顶点集合获得模块134,以及顶点权重优化模块135。
[0122]
所述动画帧确定模块131,用于从三维动画中确定待进行穿插区域检测的目标动画帧。本实施例中,所述动画帧确定模块131用于执行上述方法实施例中的步骤s100,关于该动画帧确定模块131的详细内容可以参考上述对该步骤s100的具体内容描述,此处不再一一赘述。
[0123]
所述模型数据获取模块132,用于针对每个所述目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据,其中,所述第一蒙皮模型与所述第二蒙皮模型邦定以形成所述三维动画中显示的所述目标虚拟角色。本实施例中,所述模型数据获取模块132用于执行上述方法实施例中的步骤s200,关于该模型数据获取模块132的详细内容可以参考上述对该步骤s200的具体内容描述,此处不再一一赘述。
[0124]
所述穿插区域检测模块133,用于根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域。本实施例中,所述穿插区域检测模块133用于执行上述方法实施例中的步骤s300,关于该穿插区域检测模块133的详细内容可以参考上述对该步骤s300的具体内容描述,此处不再一一赘述。
[0125]
所述顶点集合获得模块134,用于根据检测到的各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合。本实施例中,所述顶点集合获得模块134用于执行上述方法实施例中的步骤s400,关于该顶点集合获得模块134的详细内容可以参考上述对该步骤s400的具体内容描述,此处不再一一赘述。
[0126]
所述顶点权重优化模块135,用于对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复。本实施例中,所述顶点权重优化模块135用于执行上述方法实施例中的步骤s500,关于该顶点权重优化模块135的详细内容可以参考上述对该步骤s500的具体内容描述,此处不再一一赘述。
[0127]
综上所述,本技术实施例提供的蒙皮穿插修复方法、系统及计算机设备,针对三维动画中进行穿插区域检测的每个目标动画帧,获取所述目标动画帧中的目标虚拟角色的第一蒙皮模型的第一模型数据以及第二蒙皮模型的第二模型数据,然后根据所述第一模型数据以及所述第二模型数据检测各所述目标动画帧中所述第一蒙皮模型与所述第二蒙皮模型之间的穿插区域,得到所述穿插区域中的蒙皮顶点构成的顶点集合,最后对所述顶点集合中的各蒙皮顶点进行权重优化,以实现对所述三维动画的蒙皮穿插修复。如此,可以在检测到三维动画中的目标虚拟角色的蒙皮模型出现蒙皮穿插时,对蒙皮穿插区域内的蒙皮顶点进行自动权重优化,以实现蒙皮穿插问题的自动修复,可大大减小人工修复的工作量,并显著减少目标虚拟角色的绑定工作量,获得更好的蒙皮驱动效果,降低目标虚拟角色的绑定成本和门槛。
[0128]
在本技术所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部
分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0129]
另外,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0130]
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0131]
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0132]
以上所述,仅为本技术的各种实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献