一种蒙皮模型的网格合并方法及装置与流程
未命名
10-25
阅读:68
评论:0
1.本技术涉及三维渲染技术领域,特别涉及一种蒙皮模型的网格合并方法及装置、计算设备和计算机可读存储介质。
背景技术:
2.在现有技术中,在进行三维应用的开发时,通常采用合并网格(mesh)的方式来减少drawcall从而提升整个应用的渲染效率。但是,在合并蒙皮模型的网格时,现有的工具无法合并带有blendshape的模型,强行合并时会发生blendshape信息丢失等情况,导致网格合并失败,从而影响了整个应用的渲染效率。
技术实现要素:
3.有鉴于此,本技术实施例提供了一种蒙皮模型的网格合并方法及装置、计算设备和计算机可读存储介质,以解决现有技术中存在的技术缺陷。
4.根据本技术实施例的第一方面,提供了一种蒙皮模型的网格合并方法,包括:
5.提取待合并的第一网格;
6.对所述第一网格进行合并得到目标网格;
7.将所述第一网格中的blendshape数据复制到所述目标网格;
8.修改animation组件对blendshape数据的引用属性。
9.根据本技术实施例的第二方面,提供了一种蒙皮模型的网格合并装置,包括:
10.提取单元,用于提取待合并的第一网格;
11.合并单元,用于对所述第一网格进行合并得到目标网格;
12.拷贝单元,用于将所述第一网格中的blendshape数据复制到所述目标网格;
13.编辑单元,用于修改animation组件对blendshape数据的引用属性。
14.根据本技术实施例的第三方面,提供了一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述蒙皮模型的网格合并方法的步骤。
15.根据本技术实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现所述蒙皮模型的网格合并方法的步骤。
16.本技术实施例中实现了带有blendshape数据的蒙皮模型的网格合并,根据材质的类型对网格合并得到合并后的目标网格,在删除原有的网格之前,获取原有网格中所包含的blendshape数据,并将这些blendshape数据逐帧合并复制到目标网格中,同时改变animation组件对原有blendshape数据的引用,使其指向目标网络,从而在保留blendshape数据的基础上完成了蒙皮模型的网格合并,在渲染阶段只需渲染合并之后的网格,减少了drawcall的数量,提高了蒙皮模型的渲染性能。
附图说明
17.图1是本技术实施例提供的计算设备的结构框图;
18.图2是本技术实施例提供的一种蒙皮模型的网格合并方法的示意图;
19.图3是本技术实施例提供的一种蒙皮模型的网格合并装置的结构示意图。
具体实施方式
20.在下面的描述中阐述了很多具体细节以便于充分理解本技术。但是本技术能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本技术内涵的情况下做类似推广,因此本技术不受下面公开的具体实施的限制。
21.在本技术一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术一个或多个实施例。在本技术一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本技术一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
22.应当理解,尽管在本技术一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“响应于确定”。
23.在本技术中,提供了一种蒙皮模型的网格合并方法及装置、计算设备和计算机可读存储介质,在下面的实施例中逐一进行详细说明。
24.图1示出了根据本技术实施例的计算设备100的结构框图。该计算设备100的部件包括但不限于存储器110和处理器120。处理器120与存储器110通过总线130相连接,数据库150用于保存数据。
25.计算设备100还包括接入设备140,接入设备140使得计算设备100能够经由一个或多个网络160通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备140可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
26.在本技术的一个实施例中,计算设备100的上述部件以及图1中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图1所示的计算设备结构框图仅仅是出于示例的目的,而不是对本技术范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
27.计算设备100可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备100还可以是移动式或静止式的服务器。
28.在现有技术中,除了普通的三维模型外,还包括用于展示动画的蒙皮模型,蒙皮模型中包括骨架和蒙皮网格两部分,其中蒙皮网格称之为skinmesh,在skinmesh中每个mesh的顶点会受到若干个骨骼的影响,并配以一定的权重比例。例如,在unity的开发中,一个人物角色模型一般需要将身体分成多个部位,比如脸、手和衣服等,每一个部位是一个单独类型的mesh需要消耗一个drawcall和添加一个skinnedmeshrender组件,在实现人脸表情时,常见的方法就是使用blendshape(混合形状)技术来实现逼真的效果,例如在skinnedmeshrender组件中导入blendshape数据。为了提高效率,会对这些mesh进行合并减少drawcall的数量,但是现有技术中在合并mesh时没有对blendshape数据进行合并的工具,导致这类mesh无法合并。
29.因此,为了解决上述问题,在本技术实施例中提出了一种蒙皮模型的网格合并方法,参见图2,该方法包括步骤202至步骤208。
30.步骤202:提取待合并的第一网格。
31.在一种可行的实施方式中,在开发工程中对蒙皮模型使用的材质进行分类,并根据模型使用的材质提取待合并的网格mesh,通常提取使用相同材质的网格进行合并。
32.步骤204:对所述第一网格进行合并得到目标网格。
33.在该步骤中,对步骤202提取的第一网格进行合并,得到合并后的目标网格,示意代码如下,
34.35.本领域技术人员应当知晓,合并功能通过在节点上挂载脚本实现,在此不再赘述。
36.步骤206:将第一网格中的blendshape数据复制到目标网格。
37.在该步骤中,为了解决蒙皮模型的网格在合并时丢失blendshape数据的问题,将第一网格中的所有blendshape数据逐一复制到合并后的目标网格。
38.在一种可行的实施方式中,遍历第一网格中所有网格的每一帧blendshape数据,将其合并到一个帧后复制到目标网格上。
39.具体地,遍历第一网格,获取每个网格的skinnedmeshrenderer组件,得到其中每个skinnedmeshrenderer组件中的blendshape数据。
40.int length=skinmeshes.count;
41.for(int i=0;i《length;i++)
42.{
43.skinnedmeshrenderer onerender=skinmeshes[i];//获取每个网格的skinnedmeshrenderer组件
[0044]
int blenshapecount=onerender.sharedmesh.blendshapecount;//获取每个skinnedmeshrenderer组件中blendshape数量
[0045]
}
[0046]
进一步地,对于每个blendshape数据,获取其包含的帧数,
[0047]
int framecount=onerender.sharedmesh.getblendshapeframecount(m);
[0048]
对于每帧blendshape数据,获取其权重数据以及增量顶点数组、增量顶点法线数组以及增量顶点切线数组。
[0049]
for(int j=0;j《framecount;j++)
[0050]
将每帧blendshape数据的权重数据、增量顶点数组、增量顶点法线数组以及增量顶点切线数组按顺序添加到目标网格中;
[0051]
其中,将增量顶点数组、增量顶点法线数组以及增量顶点切线数组按顺序分别添加到对应的新数组后,进而添加到目标网格中,新数组的长度等于目标网格的顶点数量,示意代码如下:
[0052][0053][0054]
currentlength+=onerender.sharedmesh.vertexcount;//进行下一个合并前,将各个新数组的下标前移
[0055]
步骤208:修改animation组件对blendshape数据的引用。
[0056]
在使用了blendshape技术的项目中,根据特定组合的blendshape数据制作成动画animation,比如眉毛上抬,眼睛睁大,嘴巴张开等表情。因此,当blendshape数据被添加到目标网格后,animation组件中对blendshape数据的引用需要重新调整。
[0057]
在一种可行的实施方式中,修改已经完成的animation组件,将其中对第一网格中blendshape数据的引用改为合并后的目标网格中blendshape数据的引用。
[0058][0059][0060]
在本技术的上述实施例中,为了实现带有blendshape数据的蒙皮模型的网格合并,首先根据材质的类型对网格合并得到合并后的目标网格,在删除原有的网格之前,获取这些网格中skinnedmeshrenderer组件所包含的blendshape数据,并将这些blendshape数据逐帧合并复制到目标网格中,同时改变animation组件对原有blendshape数据的引用,使其指向目标网络,从而在保留blendshape数据的基础上完成了蒙皮模型的网格合并,在渲染阶段仅需渲染合并之后的网格,减少了渲染时的drawcall数量,提高了蒙皮模型的渲染性能。
[0061]
与上述方法实施例相对应,本技术还提供了提供了一种蒙皮模型的网格合并装置,如图3所示,该装置包括:
[0062]
提取单元,用于提取待合并的第一网格;
[0063]
合并单元,用于对所述第一网格进行合并得到目标网格;
[0064]
拷贝单元,用于将所述第一网格中的blendshape数据复制到所述目标网格;
[0065]
编辑单元,用于修改animation组件对blendshape数据的引用属性。
[0066]
上述为本实施例的一种蒙皮模型的网格合并装置的示意性方案。需要说明的是,该装置的技术方案与上述的一种蒙皮模型的网格合并方法的技术方案属于同一构思,该装置的技术方案未详细描述的细节内容,均可以参见上述一种蒙皮模型的网格合并方法的技术方案的描述。
[0067]
本技术一实施例中还提供一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,所述处理器执行所述指令时实现所述的一种蒙皮模型的网格合并方法的步骤。
[0068]
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的一种蒙皮模型的网格合并方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述一种蒙皮模型的网格合并方法的技术方案的描述。
[0069]
本技术一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时实现如前所述一种蒙皮模型的网格合并方法的步骤。
[0070]
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的一种蒙皮模型的网格合并方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述一种蒙皮模型的网格合并方法的技术方案的描述。
[0071]
上述对本技术特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
[0072]
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0073]
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本技术并不受所描述的动作顺序的限制,因为依据本技术,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本技术所必须的。
[0074]
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
[0075]
以上公开的本技术优选实施例只是用于帮助阐述本技术。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本技术的内容,可作很多的修改和变化。本技术选取并具体描述这些实施例,是为了更好地解释本技术的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本技术。本技术仅受权利要求书及其全部范围和等效物的限制。
技术特征:
1.一种蒙皮模型的网格合并方法,其特征在于,包括:提取待合并的第一网格;对所述第一网格进行合并得到目标网格;将所述第一网格中的blendshape数据复制到所述目标网格;修改animation组件对blendshape数据的引用属性。2.根据权利要求1所述的方法,其中,所述提取待合并的第一网格包括:根据模型使用的材质提取待合并的多个网格。3.根据权利要求1所述的方法,其中,将所述第一网格中的blendshape数据复制到所述目标网格包括:遍历所述第一网格,将第一网格中每个网格的blendshape数据按顺序合并后复制到所述目标网格上。4.根据权利要求3所述的方法,其中,将第一网格中每个网格的blendshape数据按顺序合并后复制到所述目标网格上包括:获取第一网格中每个网格的skinnedmeshrenderer组件,进而获取该组件的blendshape数据;遍历所述blendshape数据,将所述blendshape数据中每一帧数据合并后复制到所述目标网格上。5.根据权利要求4所述的方法,其中,将所述blendshape数据中每一帧数据合并后复制到所述目标网格上包括:获取每帧blendshape数据的权重、增量顶点数组、增量顶点法线数组以及增量顶点切线数组,按顺序添加到目标网格中。6.根据权利要求5所述的方法,其中,该方法进一步包括:将增量顶点数组、增量顶点法线数组以及增量顶点切线数组按顺序分别添加到对应的新数组后,进而添加所述新数组到所述目标网格中完成blendshape数据的合并;其中,所述新数组的长度等于目标网格的顶点数量。7.根据权利要求1所述的方法,其中,修改animation组件对blendshape数据的引用属性包括:修改animation组件中节点的路径和节点的blendshape属性,使其指向所述目标网格。8.一种蒙皮模型的网格合并装置,其特征在于,包括:提取单元,用于提取待合并的第一网格;合并单元,用于对所述第一网格进行合并得到目标网格;拷贝单元,用于将所述第一网格中的blendshape数据复制到所述目标网格;编辑单元,用于修改animation组件对blendshape数据的引用属性。9.一种计算设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机指令,其特征在于,所述处理器执行所述指令时实现权利要求1-7任意一项所述方法的步骤。10.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
技术总结
本申请提供一种蒙皮模型的网格合并方法及装置,其中,在该方法中,提取工程中待合并的第一网格,对第一网格进行合并得到目标网格;进而将第一网格中的Blendshape数据复制到所述目标网格,最后修改Animation组件对Blendshape数据的引用属性,从而在保留Blendshape数据的基础上完成了蒙皮模型的网格合并,在渲染阶段只需要渲染合并之后的网格,减少了Drawcall的数量,提高了蒙皮模型的渲染性能。渲染性能。渲染性能。
技术研发人员:李书波 张金洋 李建良 郭子文 乐坚强 何雨泉 林逸 杨东 杨利华 袁冠鹏
受保护的技术使用者:北京云游互动网络科技有限公司
技术研发日:2023.07.24
技术公布日:2023/10/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:一种磁吸收纳盒的制作方法 下一篇:一种防水光纤连接器的制作方法