技术新讯 > 计算推算,计数设备的制造及其应用技术 > 动画数据缓存方法及动画渲染方法与流程  >  正文

动画数据缓存方法及动画渲染方法与流程

  • 国知局
  • 2024-10-09 14:36:27

本说明书一个或多个实施方式涉及动画制作,尤其涉及一种动画数据缓存方法及动画渲染方法。

背景技术:

1、动画缓存是三维数字内容制作软件中的一种数据存储方式,在动画制作中,粒子系统的仿真结果或其他动画数据可以以缓存的形式预计算存储起来,从而在动画渲染时可以直接读取并利用这些缓存中的数据来加速渲染动画,避免每次都需要重复仿真粒子的行为,节省计算资源和时间的消耗。

2、但是,随着人们对高端视觉效果的需求不断提升,亟需大规模的物体粒子动画特效,导致缓存数据文件大小呈指数级增长,不可避免会导致缓存文件单体臃肿、加载缓慢,管理困难,并增加开发人员的无效等待时长和软件崩溃的概率。

技术实现思路

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、在一些实施方式中,在所述粒子动画播放过程中,基于所述缓存管理对象文件从所述粒子动画对应的缓存文件集中读取并加载各个缓存包,包括:

33、在所述粒子动画播放过程中,对于缓存文件集中的任意一个缓存包,解析所述缓存包的配置数据,得到所述缓存包的缓存反序列化重建配置信息中包括的版本号信息;

34、基于所述版本号信息确定所述缓存包中待读取的动画数据,并读取和加载所述待读取的动画数据。

35、在一些实施方式中,响应于用户操作指令,将粒子动画对应的缓存管理对象文件导入处理引擎,包括:

36、响应于用户操作指令,在所述处理引擎的操作界面上添加缓存动画录播轨道,并基于所述缓存管理对象文件将所述粒子动画对应的动画序列放置在所述缓存动画录播轨道上。

37、在一些实施方式中,本说明书示例的方法还包括:

38、在所述粒子动画播放过程中,响应于检测到用户在所述缓存动画录播轨道上选择的播放进度,基于所述播放进度确定待播放的目标缓存包;

39、读取并加载所述目标缓存包,并跳转至所述目标缓存包中与所述播放进度对应的缓存帧开始进行渲染播放。

40、在一些实施方式中,本说明书示例的方法还包括:

41、在所述粒子动画播放过程中,响应于检测到用户在所述缓存动画录播轨道上选择的缓存区间段,基于所述缓存区间段确定待导出的一个或多个缓存包;

42、响应于检测到用户导出指令,导出所述一个或多个缓存包。

43、第三方面,本说明书一个或多个实施方式提供了一种动画数据缓存装置,包括:

44、参数获取模块,被配置为获取预设缓存参数,所述预设缓存参数包括单包容量阈值,所述单包容量阈值用于配置粒子动画的单个缓存包的存储容量;

45、分包缓存模块,被配置为在对所述粒子动画进行缓存录制的过程中,在当前录制的缓存包中已缓存的动画数据的存储容量达到所述单包容量阈值时,生成缓存包,所述缓存包包含所述已缓存的动画数据和配置数据,所述配置数据用于指示所述缓存包的包体信息;

46、文件缓存模块,被配置为将生成的所述缓存包存储至预设文件夹中,并启动下一个缓存包的录制,直至所述粒子动画对应的所有缓存包全部存储完毕,得到所述粒子动画对应的缓存文件集。

47、在一些实施方式中,所述配置数据包括缓存包对应的文件格式校验值和缓存反序列化重建配置信息,所述文件格式校验值用于验证所述缓存包的文件格式,所述缓存反序列化重建配置信息用于记录所述缓存包的包头数据。

48、在一些实施方式中,所述包头数据包括所述缓存包的版本号信息、所述粒子动画的缓存管理对象文件路径、所述缓存包中的动画数据的单帧粒子信息;

49、所述已缓存的动画数据包括,每帧动画对应的粒子位置信息,和/或,每帧动画对应的粒子速度信息。

50、在一些实施方式中,所述文件缓存模块被配置为:

51、在开始对所述粒子动画进行缓存录制时,基于所述粒子动画的缓存管理对象文件路径创建所述预设文件夹;

52、在对所述粒子动画进行缓存录制过程中,将所述粒子动画对应的缓存包存储至所述预设文件夹中,并基于预设命名规则次序命名各个缓存包。

53、在一些实施方式中,所述分包缓存模块被配置为:

54、基于每个缓存包对应的动画数据生成所述缓存包对应的信息散列值;

55、将各个缓存包对应的所述信息散列值配置在所述粒子动画的缓存管理对象文件中。

56、在一些实施方式中,所述分包缓存模块被配置为:

57、将所述粒子动画对应的动画序列配置在缓存动画录播轨道上;

58、在对所述粒子动画进行缓存录制的过程中,控制游标在所述动画序列上逐帧滑动,并将所述游标指示的每一帧动画对应的动画数据缓存在当前录制的缓存包中。

59、第四方面,本说明书实施方式提供了一种动画渲染装置,包括:

60、缓存导入模块,被配置为响应于用户操作指令,将粒子动画对应的缓存管理对象文件导入处理引擎;

61、缓存加载模块,被配置为在所述粒子动画播放过程中,基于所述缓存管理对象文件从所述粒子动画对应的缓存文件集中读取并加载各个缓存包,每个缓存包包含所述粒子动画的部分动画数据,以及所述缓存包对应的配置数据,所述配置数据用于指示所述缓存包的包体信息;

62、动画渲染模块,被配置为基于所述缓存文件集中的各个所述缓存包,渲染播放所述粒子动画。

63、在一些实施方式中,所述缓存加载模块被配置为:

64、在所述粒子动画播放过程中,基于所述缓存管理对象文件从所述粒子动画对应的缓存文件集中,多线程并行读取和加载第一缓存包和第二缓存包,所述第二缓存包与所述第一缓存包相邻且位于第一缓存包下行;

65、所述动画渲染模块,包括:

66、响应于所述第一缓存包渲染播放完成,缓存管理对象文件从所述缓存文件集中读取并加载第三缓存包,所述第三缓存包与所述第二缓存包相邻且位于所述第二缓存包下行,直至所述缓存文件集中所有次序的缓存包渲染播放完成。

67、在一些实施方式中,所述缓存加载模块被配置为:

68、在所述粒子动画播放过程中,对于缓存文件集中的任意一个缓存包,解析所述缓存包的配置数据,得到所述缓存包对应的文件格式校验值;

69、响应于所述文件格式校验值通过验证,基于解析得到的所述缓存包中存储的动画数据确定第一信息散列值;

70、基于所述粒子动画对应的缓存管理对象文件确定所述缓存包对应的第二信息散列值;

71、响应于所述第一信息散列值和所述第二信息散列值匹配通过,读取并加载所述缓存包。

72、在一些实施方式中,所述缓存加载模块被配置为:

73、在所述粒子动画播放过程中,对于缓存文件集中的任意一个缓存包,解析所述缓存包的配置数据,得到所述缓存包的缓存反序列化重建配置信息中包括的版本号信息;

74、基于所述版本号信息确定所述缓存包中待读取的动画数据,并读取和加载所述待读取的动画数据。

75、在一些实施方式中,所述缓存导入模块被配置为:

76、响应于用户操作指令,在所述处理引擎的操作界面上添加缓存动画录播轨道,并基于所述缓存管理对象文件将所述粒子动画对应的动画序列放置在所述缓存动画录播轨道上。

77、在一些实施方式中,所述动画渲染模块被配置为:

78、在所述粒子动画播放过程中,响应于检测到用户在所述缓存动画录播轨道上选择的播放进度,基于所述播放进度确定待播放的目标缓存包;

79、读取并加载所述目标缓存包,并跳转至所述目标缓存包中与所述播放进度对应的缓存帧开始进行渲染播放。

80、在一些实施方式中,所述动画渲染模块被配置为:

81、在所述粒子动画播放过程中,响应于检测到用户在所述缓存动画录播轨道上选择的缓存区间段,基于所述缓存区间段确定待导出的一个或多个缓存包;

82、响应于检测到用户导出指令,导出所述一个或多个缓存包。

83、第五方面,本说明书实施方式提供了一种电子设备,包括:

84、处理器;和

85、存储器,存储有计算机指令,所述计算机指令用于使处理器执行前述任意实施方式所述的方法。

86、第六方面,本说明书实施方式提供了一种存储介质,存储有计算机指令,所述计算机指令用于使计算机执行前述任意实施方式所述的方法。

87、第七方面,本说明书实施方式提供了一种计算机程序产品,所述计算机程序产品在运行时实现前述任意实施方式所述的方法。

88、本说明书实施方式的动画数据缓存方法,包括获取预设缓存参数,在粒子动画缓存过程中,每当检测到当前缓存包中已缓存的动画数据的存储容量达到单包容量阈值,基于已缓存的动画数据和配置数据生成缓存包,并将生成的缓存包存储至预设文件夹中,直至粒子动画对应的所有缓存包全部存储完毕,得到所述粒子动画对应的缓存文件集。通过对缓存数据进行分包管理,由单个的大体积缓存文件切分为多个小体积的缓存数据包,从而在后续渲染过程中,每次仅需加载单个缓存包数据,极大降低对系统内存空间的占用,提升同屏渲染对象数目,减少缓存读取的时长及软件崩溃概率,提升动画制作效率。同时在缓存包内部设置缓存包头的配置数据,可在任意数字内容制作dcc软件上实现缓存数据的完整性校验和内容反序列化重建,从而为外部软件修复缓存穿插提供解决途径。

本文地址:https://www.jishuxx.com/zhuanli/20241009/305831.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。