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

基于DragonBones的渲染优化方法、装置、设备和存储介质与流程

2022-05-27 01:08:07 来源:中国专利 TAG:

基于dragonbones的渲染优化方法、装置、设备和存储介质
技术领域
1.本发明涉及实时渲染技术领域,尤其涉及一种基于dragonbones的渲染优化方法、装置、设备和存储介质。


背景技术:

2.对于移动端html5(简称h5)网页,webgl允许在canvas中直接渲染3d的内容,通过脚本操纵对象,在canvas中绘制对象并渲染。webgl渲染需要通过dragonbones播放序列帧动画来展现h5丰富多彩的画面质感。相关技术中,由于每帧drawcall(绘制对象)的数量过多,实时渲染过程中会频繁得创建对象,需要大量的javascript计算开销和gpu渲染计算开销,使得移动端设备在运行过程中出现设备发热、帧频降低,导致性能低下。
3.针对相关技术中,实时渲染存在设备发热、帧频降低导致性能低下的问题,目前尚未提出有效的解决方案。


技术实现要素:

4.本技术实施例提供了一种基于dragonbones的渲染优化方法、装置以及存储介质,以至少解决相关技术中,实时渲染存在设备发热、帧频降低导致性能低下的问题。
5.第一方面,本技术实施例提供了一种基于dragonbones的渲染优化方法,所述方法包括:
6.对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池;
7.合并渲染批次大于第二预设阈值的多张图,缓存为目标位图;
8.webgl基于所述局部结构变量和所述结构对象池渲染,并通过dragonbones播放多张所述目标位图形成的序列帧动画。
9.在其中一些实施例中,所述对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池之前,所述方法还包括:增加日志文件获取所述目标接口。
10.在其中一些实施例中,所述局部结构变量包括局部点变量和局部矩形变量,所述结构对象池包括点对象和矩形对象的集合。
11.在其中一些实施例中,使用texture merger合并所述多张图。
12.第二方面,本技术实施例提供了一种基于dragonbones的渲染优化装置,所述装置包括:对象创建优化模块、渲染图合并模块和实时渲染模块;
13.其中,对象创建优化模块用于对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池;
14.渲染图合并模块用于合并渲染批次大于第二预设阈值的多张图,缓存为目标位图;
15.实时渲染模块用于webgl基于所述局部结构变量和所述结构对象池渲染,并通过dragonbones播放多张所述目标位图形成的序列帧动画。
16.在其中一些实施例中,所述装置还包括:目标接口获取模块,用于增加日志文件获取所述目标接口。
17.在其中一些实施例中,所述局部结构变量包括局部点变量和局部矩形变量,所述结构对象池包括点对象和矩形对象的集合。
18.在其中一些实施例中,使用texture merger合并所述多张图。
19.第三方面,本技术实施例提供了一种计算机设备,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的渲染优化方法。
20.第四方面,本技术实施例提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面所述的渲染优化方法。
21.相比相关技术,本技术实施例提供的基于dragonbones的渲染优化方法,通过对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池;合并渲染批次大于第二预设阈值的多张图,缓存为目标位图;webgl基于该局部结构变量和该结构对象池渲染,并通过dragonbones播放多张该目标位图形成的序列帧动画。通过增加局部结构变量及结构对象池,降低了顶点、矩形临时对象的创建频率,并通过合并位图减小了gpu上传数据,可以减轻实时渲染压力,解决了实时渲染存在设备发热、帧频降低导致性能低下的问题。
附图说明
22.此处所说明的附图用来提供对本技术的进一步理解,构成本技术的一部分,本技术的示意性实施例及其说明用于解释本技术,并不构成对本技术的不当限定。在附图中:
23.图1是根据本技术实施例的基于dragonbones的渲染优化方法的流程图;
24.图2是根据本技术实施例的基于dragonbones的渲染优化装置的结构示意图;
25.图3是根据本技术实施例的另一种基于dragonbones的渲染优化装置的结构示意图;
26.图4是根据本技术实施例的电子设备的内部结构示意图。
具体实施方式
27.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。基于本技术提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本技术保护的范围。
28.显而易见地,下面描述中的附图仅仅是本技术的一些示例或实施例,对于本领域的普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图将本技术应用于其他类似情景。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本技术公开的内容相关的本领域的普通技术人员而言,在本技术揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本技术公开的内容不充分。
29.在本技术中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以
包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本技术所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
30.除非另作定义,本技术所涉及的技术术语或者科学术语应当为本技术所属技术领域内具有一般技能的人士所理解的通常意义。本技术所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本技术所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本技术所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本技术所涉及的“多个”是指两个或两个以上。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。本技术所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
31.移动端h5网页渲染模式webgl中,需要通过dragonbones来播放序列帧动画来展现h5丰富多彩的画面质感。webgl允许在canvas中直接渲染3d的内容,而不借助任何插件。webgl同canvas 2d的api一样,都是通过脚本操纵对象,步骤也是基本相似:准备工作上下文,准备数据,在canvas中绘制对象并渲染。dragonbones用于制作和播放骨骼动画。由于每帧drawcall(绘制对象)数量过多以及创建对象频繁,导致移动端设备发热、帧频降低,性能低下。
32.为解决上述问题,本实施例提供了一种基于dragonbones的渲染优化方法,图1是根据本技术实施例的基于dragonbones的渲染优化方法的流程图。如图1所示,该流程包括如下步骤:
33.s110、对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池。
34.步骤s110之前,通过增加日志文件查看频繁创建对象的接口,即创建对象的频率大于第一预设阈值的目标接口。针对目标接口频繁创建临时对象的点(point)和矩阵(rectangle),增加局部结构变量以及结构对象池,来减少临时对象的创建,降低临时对象的创建频率,进而降低渲染带来的高计算量,还可以省去实时渲染的过程,节约计算开销,减缓发热现象。优选地,该局部结构变量包括局部点变量和局部矩阵变量,该结构对象池包括点对象和矩阵对象等类型的集合体。点对象和矩形对象是渲染中常用的类型对象,优化点对象和矩阵对象的创建频率,可以较大程度地减少计算量。
35.s120、合并渲染批次大于第二预设阈值的多张图,缓存为目标位图。
36.drawcall是cpu对底层图形绘制接口的调用命令gpu执行渲染操作,渲染流程采用流水线实现,cpu和gpu并行工作,它们之间通过命令缓冲区连接,cpu向其中发送渲染命令,gpu接收并执行对应的渲染命令。这里drawcall影响绘制的原因主要是因为每次绘制时,cpu都需要调用drawcall而每个drawcall都需要很多准备工作,检测渲染状态、提交渲染数
据、提交渲染状态。而gpu本身具有很强大的计算能力,可以很快就处理完渲染任务。当drawcall过多,cpu就会很多额外开销用于准备工作,cpu本身负载,而这时gpu可能闲置了。过多的drawcall会引起设备发热,造成cpu的性能瓶颈。通过比对判断可以合并的图片,将渲染批次大于第二预设阈值的多张图进行合并,并使之缓存为一张目标位图,进而可以减小gpu上传数据,减轻渲染压力。优选地,使用texture merger对上述多张图,将零散纹理拼合为整图,同时解析swf、gif动画,制作位图文本,导出可使用的配置文件,可以在设计开发中降低程序包体。
37.s130、webgl基于所述局部结构变量和所述结构对象池渲染,并通过dragonbones播放多张所述目标位图形成的序列帧动画。
38.上述实施例增加log文件来查看频繁创建对象的接口,针对频繁创建临时对象的point(点)、rectangle(矩形),增加局部变量point、rectangle以及对象池(point、rectangle等类型的集合体)来减少对象的创建,解决javascript的计算开销和gpu渲染计算开销大的问题。通过比对判断出可以合并的图片,并使用texture merger手动合并需要多批次渲染的图,使之缓存为一张目标位图,进而减小gpu上传数据,减轻渲染压力。在实时渲染过程中可以保证帧率的稳定,大大缓解了设备发热的问题,解决了实时渲染性能低下的问题。
39.本技术实施例提供了一种基于dragonbones的渲染优化装置。图2是根据本技术实施例的基于dragonbones的渲染优化装置的结构示意图,如图2所示,该装置包括对象创建优化模块210、渲染图合并模块220和实时渲染模块230。对象创建优化模块210用于对于创建对象的频率大于第一预设阈值的目标接口,增加局部结构变量及结构对象池。优选地,局部结构变量包括局部点变量和局部矩形变量,结构对象池包括点对象和矩形对象的集合。渲染图合并模块220用于合并渲染批次大于第二预设阈值的多张图,缓存为目标位图。优选地,使用texture merger合并所述多张图。实时渲染模块230用于webgl基于所述局部结构变量和所述结构对象池渲染,并通过dragonbones播放多张所述目标位图形成的序列帧动画。
40.在其他的一些实施例中,图3是根据本技术实施例的另一种基于dragonbones的渲染优化装置的结构示意图,如图3所示,该装置还包括目标接口获取模块340,用于增加日志文件获取所述目标接口。
41.关于基于dragonbones的渲染优化装置的具体限定可以参见上文中对于基于dragonbones的渲染优化方法的限定,在此不再赘述。上述基于dragonbones的渲染优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
42.另外,结合上述实施例中的基于dragonbones的渲染优化方法,本技术实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种基于dragonbones的渲染优化方法。
43.在一个实施例中,图4是根据本技术实施例的电子设备的内部结构示意图,如图4所示,提供了一种电子设备,该电子设备可以是服务器,其内部结构图可以如图4所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的
处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种渲染优化方法。
44.本领域技术人员可以理解,图4中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的电子设备的限定,具体的电子设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
45.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
46.本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
47.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

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

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

相关文献