骨骼数据的合批处理方法、装置、电子设备及计算机介质制造方法及图纸

技术编号:37308439 阅读:13 留言:0更新日期:2023-04-21 22:52
本公开涉及一种骨骼数据的合批处理方法、装置、电子设备及计算机可读介质,属于图像处理技术领域。该方法包括:获取当前帧所有角色的骨骼数据,并将角色模型和模型材质相同的骨骼数据放入同一个骨骼数据数组中;根据每个角色的骨骼数据占用的内存,将骨骼数据数组拆分为多个骨骼数据子数组,其中,每个骨骼数据子数组中的骨骼数据占用的内存小于或等于合批内存阈值;将同一骨骼数据子数组中的骨骼数据合并为一个批次传输至图形处理器。本公开通过将模型和材质相同的骨骼数据放入同一个骨骼数据数组中,并根据合批内存阈值拆分为多个骨骼数据子数组,将同一骨骼数据子数组中的骨骼数据合并为一个批次进行传输,可以提高绘制的帧率和流畅度。帧率和流畅度。帧率和流畅度。

【技术实现步骤摘要】
骨骼数据的合批处理方法、装置、电子设备及计算机介质


[0001]本公开涉及图像处理
,具体而言,涉及一种骨骼数据的合批处理方法、骨骼数据的合批处理装置、电子设备及计算机可读介质。

技术介绍

[0002]在PC(personal computer,个人计算机)、手机等智能设备上进行图像绘制时,CPU(Central Processing Unit,中央处理器)会将准备好的顶点数据、ConstantBuffer(常量缓冲区)、贴图、shader(着色器)、渲染状态设置等数据统一准备好后以DrawCall的形式通过图形API(Application Programming Interface,应用程序接口)通知显卡进行绘制,在这个过程中,一个DrawCall称之为一个批次。
[0003]对于CPU和显卡来说,一个批次意味着一次数据同步还有大量的内存传输,因此这是一个非常消耗的操作,批次的数量往往严重影响着运行效率,进而制约着游戏/App(应用软件)的帧率和流畅度。
[0004]鉴于此,本领域亟需一种能够提高动画绘制的帧率和流畅度的方法。
[0005]需要说明的是,在上述
技术介绍
部分公开的信息仅用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

技术实现思路

[0006]本公开的目的在于提供一种骨骼数据的合批处理方法、骨骼数据的合批处理装置、电子设备及计算机可读介质,进而至少在一定程度上能够提高动画绘制的帧率和流畅度。
[0007]根据本公开的第一个方面,提供一种骨骼数据的合批处理方法,包括:
[0008]获取当前帧待绘制的所有角色的骨骼数据,并将角色模型和模型材质相同的所述角色的骨骼数据放入同一个骨骼数据数组中;
[0009]根据所述骨骼数据数组中每个所述角色的骨骼数据占用的内存,将所述骨骼数据数组拆分为多个骨骼数据子数组,其中,每个所述骨骼数据子数组中的骨骼数据占用的内存小于或等于合批内存阈值;
[0010]将同一所述骨骼数据子数组中的骨骼数据合并为一个批次,并传输至图形处理器进行绘制。
[0011]根据本公开的第二方面,提供一种骨骼数据的合批处理装置,包括:
[0012]骨骼数组确定模块,用于获取当前帧待绘制的所有角色的骨骼数据,并将角色模型和模型材质相同的所述角色的骨骼数据放入同一个骨骼数据数组中;
[0013]骨骼数组拆分模块,用于根据所述骨骼数据数组中每个所述角色的骨骼数据占用的内存,将所述骨骼数据数组拆分为多个骨骼数据子数组,其中,每个所述骨骼数据子数组中的骨骼数据占用的内存小于或等于合批内存阈值;
[0014]骨骼数据合批模块,用于将同一所述骨骼数据子数组中的骨骼数据合并为一个批
次,并传输至图形处理器进行绘制。
[0015]根据本公开的第三方面,提供一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述任意一项所述的骨骼数据的合批处理方法。
[0016]根据本公开的第四方面,提供一种计算机可读介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的骨骼数据的合批处理方法。
[0017]本公开示例性实施例可以具有以下有益效果:
[0018]本公开示例实施方式的骨骼数据的合批处理方法中,通过将当前帧待绘制的所有角色的骨骼数据中,角色模型和模型材质相同的角色的骨骼数据放入同一个骨骼数据数组中,然后根据骨骼数据数组中每个角色的骨骼数据占用的内存,将骨骼数据数组拆分为多个骨骼数据子数组,每个骨骼数据子数组中的骨骼数据占用的内存小于或等于合批内存阈值,拆分完成后,将同一骨骼数据子数组中的骨骼数据合并为一个批次,并传输至图形处理器进行绘制。本公开示例实施方式中的骨骼数据的合批处理方法,一方面,由于只传输当前帧需要用到的骨骼数据,因此减小了每个批次同步到图形处理器的骨骼数据,大大降低了数据的冗余度,从而大幅度减少内存占用和带宽传输的压力;另一方面,通过将同一模型和材质的骨骼数据放入同一个骨骼数据数组,并对每个骨骼数据数组根据合批内存阈值进行拆分,使每一个骨骼数据子数组占用的内存不超过阈值限制,且其中的骨骼数据的模型和材质都相同,通过合批内存阈值的设置,可以最大限度利用不同设备的硬件条件处理尽可能多的批次,不仅保证了合批的效果,同时也大幅度降低了批次数量,还进一步减小了带宽压力和内存占用,避免了负优化,在降低了批次压力的同时,提高了帧率和流畅度,解决了在移动设备上同时绘制大批量带有动画的角色时,所引起的性能瓶颈问题。
[0019]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
[0020]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0021]图1示出了根据本公开的一个相关实施方式中的支持动画的动态合批方法的数据组织形式的示意图;
[0022]图2示出了根据本公开的一个具体实施方式中的移动平台的三级缓存结构示意图;
[0023]图3示出了本公开示例实施方式的骨骼数据的合批处理方法的流程示意图;
[0024]图4示出了根据本公开的一个具体实施方式中的将相同模型和材质的骨骼数据放置到同一数组中后得到的骨骼数据数组集合的示意图;
[0025]图5示出了根据本公开的一个具体实施方式中的骨骼数据数组及骨骼数据偏移值的示意图;
[0026]图6示出了本公开示例实施方式的将骨骼数据数组拆分为多个骨骼数据子数组的
流程示意图;
[0027]图7示出了根据本公开的一个具体实施方式中的将骨骼数据数组拆分后得到的多个骨骼数据子数组的示意图;
[0028]图8示出了根据本公开的一个具体实施方式中适用于移动平台的支持动画的高性能动态合批处理方法的流程示意图;
[0029]图9示出了本公开示例实施方式的骨骼数据的合批处理装置的框图;
[0030]图10示出了适于用来实现本公开实施方式的电子设备的计算机系统的结构示意图。
具体实施方式
[0031]现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种骨骼数据的合批处理方法,其特征在于,包括:获取当前帧待绘制的所有角色的骨骼数据,并将角色模型和模型材质相同的所述角色的骨骼数据放入同一个骨骼数据数组中;根据所述骨骼数据数组中每个所述角色的骨骼数据占用的内存,将所述骨骼数据数组拆分为多个骨骼数据子数组,其中,每个所述骨骼数据子数组中的骨骼数据占用的内存小于或等于合批内存阈值;将同一所述骨骼数据子数组中的骨骼数据合并为一个批次,并传输至图形处理器进行绘制。2.根据权利要求1所述的骨骼数据的合批处理方法,其特征在于,所述将角色模型和模型材质相同的所述角色的骨骼数据放入同一个骨骼数据数组中,包括:将角色模型和模型材质相同的所述角色的骨骼数据放入同一个骨骼数据数组中,并记录每个所述角色在所述骨骼数据数组中的第一偏移值。3.根据权利要求2所述的骨骼数据的合批处理方法,其特征在于,所述根据所述骨骼数据数组中每个所述角色的骨骼数据占用的内存,将所述骨骼数据数组拆分为多个骨骼数据子数组,包括:对所述骨骼数据数组进行遍历,根据每个所述角色在所述骨骼数据数组中的第一偏移值,依次确定每个所述角色的骨骼数据占用的内存;对所述骨骼数据数组中的每个所述角色的骨骼数据占用的内存进行累加,直到累加值为所述合批内存阈值内的最大值时,将所述骨骼数据数组拆分为多个骨骼数据子数组。4.根据权利要求1所述的骨骼数据的合批处理方法,其特征在于,将所述骨骼数据数组拆分为多个骨骼数据子数组,包括:通过多线程并行处理的方式将所述骨骼数据数组拆分为多个骨骼数据子数组。5.根据权利要求1所述的骨骼数据的合批处理方法,其特征在于,所述方法还包括:根据执行模型绘制操作的移动设备的硬件参数确定所述合批内存阈值。6.根据权利要求1所述的骨骼数据的合批处理方法,其特征在于,所述将同一所述骨骼...

【专利技术属性】
技术研发人员:雷腾
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1