数据渲染方法、装置、计算机及可读存储介质制造方法及图纸

技术编号:37052144 阅读:7 留言:0更新日期:2023-03-29 19:29
本申请实施例公开了一种数据渲染方法、装置、计算机及可读存储介质,该方法包括:在前端处理线程中,读取第一频率数据,整合交互组件所对应的组件交互信息,得到第二频率数据;第二频率数据的更新频率大于第一频率数据的更新频率;第二频率数据是指在每一个渲染帧中均进行更新的数据;在渲染线程中,将第一频率数据及第二频率数据,组合生成第一渲染资源,将第一渲染资源传输至图形处理器;通过图形处理器,将第一渲染资源转换成目标显示界面所对应的第二渲染资源,在目标显示界面中渲染第二渲染资源。采用本申请,可以提高数据渲染效率。可以提高数据渲染效率。可以提高数据渲染效率。

【技术实现步骤摘要】
数据渲染方法、装置、计算机及可读存储介质


[0001]本申请涉及计算机
,尤其涉及一种数据渲染方法、装置、计算机及可读存储介质。

技术介绍

[0002]目前,在对游戏进行渲染时,一般是通过在前端处理线程中全量遍历组件树,计算组件的位置和尺寸等,再对组件树进行逻辑更新和重新绘制,进行渲染数据和资源的准备,进而在渲染线程中基于渲染数据和资源进行渲染。通过该方式,需要在每一帧中,对所有的组件进行位置计算、逻辑更新及重新绘制,计算量巨大,导致数据渲染所需处理的数据量较大,进而使得数据渲染效率较低。

技术实现思路

[0003]本申请实施例提供了一种数据渲染方法、装置、计算机及可读存储介质,可以提高数据渲染效率。
[0004]本申请实施例一方面提供了一种数据渲染方法,该方法包括:在前端处理线程中,读取第一频率数据,整合交互组件所对应的组件交互信息,得到第二频率数据;所述第二频率数据的更新频率大于所述第一频率数据的更新频率;所述第二频率数据是指在每一个渲染帧中均进行更新的数据;在渲染线程中,将所述第一频率数据及所述第二频率数据,组合生成第一渲染资源,将所述第一渲染资源传输至图形处理器;通过所述图形处理器,将所述第一渲染资源转换成目标显示界面所对应的第二渲染资源,在所述目标显示界面中渲染所述第二渲染资源。
[0005]本申请实施例一方面提供了一种数据渲染装置,该装置包括:数据读取模块,用于在前端处理线程中,读取第一频率数据;数据整合模块,用于整合交互组件所对应的组件交互信息,得到第二频率数据;第二频率数据的更新频率大于第一频率数据的更新频率;第二频率数据是指在每一个渲染帧中均进行更新的数据;资源生成模块,用于在渲染线程中,将第一频率数据及第二频率数据,组合生成第一渲染资源;资源传输模块,用于将第一渲染资源传输至图形处理器;资源转换模块,用于通过图形处理器,将第一渲染资源转换成目标显示界面所对应的第二渲染资源;资源渲染模块,用于在目标显示界面中渲染第二渲染资源。
[0006]其中,第一频率数据包括容器组件索引、根组件索引、组件索引树及渲染指令;交互组件包括交互根容器组件及交互根组件;该装置还包括:
组件获取模块,用于获取目标应用中的交互根容器组件及交互根组件;索引分配模块,用于为交互根容器组件分配容器组件索引,为交互根组件分配根组件索引;索引构建模块,用于基于交互根容器组件及交互根组件之间的组件架构,将交互根容器组件的容器组件索引及交互根组件的根组件索引,构建为组件索引树;指令生成模块,用于根据组件索引树生成渲染指令。
[0007]其中,该索引分配模块,包括:第一检测单元,用于获取交互根容器组件所对应的容器索引缓存及容器索引缓存的第一首位索引,基于第一首位索引确定容器索引缓存中的容器空闲位置;第一分配单元,用于基于容器空闲位置为交互根容器组件分配容器组件索引;第二检测单元,用于获取交互根组件所对应的组件索引缓存及组件索引缓存的第二首位索引,基于第二首位索引确定组件索引缓存中的组件空闲位置;第二分配单元,用于基于组件空闲位置为交互根组件分配根组件索引。
[0008]其中,该装置还包括:第一更新模块,用于基于容器空闲位置,从容器索引缓存中查找容器更新位置,将容器更新位置赋值给第一首位索引;第二更新模块,用于基于组件空闲位置,从组件索引缓存中查找组件更新位置,将组件更新位置赋值给第二首位索引。
[0009]其中,交互根组件的数量为N,交互根容器组件包括N个交互根组件;N为正整数;该索引构建模块,包括:虚拟关联单元,用于为交互根容器组件关联中间虚拟组件,将N个交互根组件通过中间虚拟组件关联至交互根容器组件,生成组件架构树;每个交互根组件关联一个中间虚拟组件;索引关联单元,用于将交互根容器组件的容器组件索引关联至组件架构树中的交互根容器组件,将N个交互根组件分别对应的根组件索引分别关联至组件架构树中所对应的交互根组件,得到组件索引树;该装置还包括:数据删除模块,用于当检测到针对第一交互根组件的删除操作时,删除组件索引树中的第一交互根组件,删除与第一交互根组件所关联的第一中间虚拟组件相关的数据;N个交互根组件包括第一交互根组件。
[0010]其中,该指令生成模块,包括:指令获取单元,用于获取初始渲染指令;属性获取单元,用于根据组件索引树采集交互组件的组件渲染数据,获取初始渲染指令的视图属性信息;指令更新单元,用于若视图属性信息为公共属性信息,则基于交互组件的组件渲染数据更新初始渲染指令,生成渲染指令;渲染指令不包括视图属性信息;该指令更新单元,还用于若视图属性信息为专属属性信息,则基于交互组件的组件渲染数据及视图属性信息更新初始渲染指令,生成渲染指令;渲染指令包括视图属性信息。
[0011]其中,该数据整合模块,包括:数组构建单元,用于构建初始交互数据数组,从第一频率数据中获取组件索引树;组件索引树用于管理交互组件的组件索引;位置确定单元,用于从组件索引树中获取交互组件的组件索引,基于交互组件的组件索引确定交互组件在初始交互数据数组中的组件数据位置;信息存储单元,用于将交互组件的组件交互信息添加至初始交互数据数组中的组件数据位置处,得到交互数据数组;该装置还包括:数据获取模块,用于在渲染线程中,基于交互组件的组件索引,读取交互数据数组。
[0012]其中,交互组件包括交互根容器组件及交互根组件;初始交互数据数组是指交互根容器组件所对应的数组;该装置还包括:信息融合模块,用于获取交互根组件的第一交互信息,以及交互根组件所包括的交互叶子组件的第二交互信息,将第二交互信息与第一交互信息进行整合处理,得到交互根组件的组件交互信息。
[0013]其中,该数据整合模块,包括:数据缓存单元,用于针对第i个渲染帧,整合交互组件所对应的组件交互信息i,得到第二频率数据i,将第二频率数据i添加至数据缓存数组中;i为正整数;间隔确定单元,用于基于数据缓存数组中所包括的第二频率数据,确定线程帧间隔;线程帧间隔用于表示前端处理线程所处理的第二频率数据的渲染帧,与渲染线程所处理的第二频率数据的渲染帧之间的帧数;该数据缓存单元,还用于若线程帧间隔小于帧间隔阈值,则针对第(i+1)个渲染帧,整合交互组件所对应的组件交互信息(i+1),得到第二频率数据(i+1),将第二频率数据(i+1)添加至数据缓存数组中;线程等待单元,用于若线程帧间隔大于或等于帧间隔阈值,则暂停前端处理线程,在线程帧间隔小于帧间隔阈值时,重启前端处理线程。
[0014]其中,该间隔确定单元,包括:第一确定子单元,用于获取数据缓存数组中所包括的第二频率数据的第一数据数量,将第一数据数量确定为线程帧间隔;该装置还包括:渲染删除模块,用于基于渲染线程,删除第一渲染资源在数据缓存数组中所对应的第二频率数据。
[0015]其中,该间隔确定单元,包括:第二确定子单元,用于获取数据缓存数组中,未携带渲染标识的第二频率数据的第二数据数量,将第二数据数量确定为线程帧间隔;该装置还包括:渲染标记模块,用于基于渲染线程,为第一渲染资源在数本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据渲染方法,其特征在于,所述方法包括:在前端处理线程中,读取第一频率数据,整合交互组件所对应的组件交互信息,得到第二频率数据;所述第二频率数据的更新频率大于所述第一频率数据的更新频率;所述第二频率数据是指在每一个渲染帧中均进行更新的数据;在渲染线程中,将所述第一频率数据及所述第二频率数据,组合生成第一渲染资源,将所述第一渲染资源传输至图形处理器;通过所述图形处理器,将所述第一渲染资源转换成目标显示界面所对应的第二渲染资源,在所述目标显示界面中渲染所述第二渲染资源。2.如权利要求1所述的方法,其特征在于,所述第一频率数据包括容器组件索引、根组件索引、组件索引树及渲染指令;所述交互组件包括交互根容器组件及交互根组件;所述方法还包括:获取目标应用中的所述交互根容器组件及所述交互根组件,为所述交互根容器组件分配所述容器组件索引,为所述交互根组件分配所述根组件索引;基于所述交互根容器组件及所述交互根组件之间的组件架构,将所述交互根容器组件的容器组件索引及所述交互根组件的根组件索引,构建为所述组件索引树;根据所述组件索引树生成所述渲染指令。3.如权利要求2所述的方法,其特征在于,所述为所述交互根容器组件分配所述容器组件索引,为所述交互根组件分配所述根组件索引,包括:获取所述交互根容器组件所对应的容器索引缓存及所述容器索引缓存的第一首位索引,基于所述第一首位索引确定所述容器索引缓存中的容器空闲位置;基于所述容器空闲位置为所述交互根容器组件分配所述容器组件索引;获取所述交互根组件所对应的组件索引缓存及所述组件索引缓存的第二首位索引,基于所述第二首位索引确定所述组件索引缓存中的组件空闲位置;基于所述组件空闲位置为所述交互根组件分配所述根组件索引。4.如权利要求3所述的方法,其特征在于,所述方法还包括:基于所述容器空闲位置,从所述容器索引缓存中查找容器更新位置,将所述容器更新位置赋值给所述第一首位索引;基于所述组件空闲位置,从所述组件索引缓存中查找组件更新位置,将所述组件更新位置赋值给所述第二首位索引。5.如权利要求2所述的方法,其特征在于,所述交互根组件的数量为N,所述交互根容器组件包括N个交互根组件;N为正整数;所述基于所述交互根容器组件及所述交互根组件之间的组件架构,将所述交互根容器组件的容器组件索引及所述交互根组件的根组件索引,构建为所述组件索引树,包括:为所述交互根容器组件关联中间虚拟组件,将所述N个交互根组件通过所述中间虚拟组件关联至所述交互根容器组件,生成组件架构树;每个交互根组件关联一个中间虚拟组件;将所述交互根容器组件的容器组件索引关联至所述组件架构树中的所述交互根容器组件,将所述N个交互根组件分别对应的根组件索引,分别关联至所述组件架构树中所对应的交互根组件,得到组件索引树;
所述方法还包括:当检测到针对第一交互根组件的删除操作时,删除所述组件索引树中的所述第一交互根组件,删除与所述第一交互根组件所关联的第一中间虚拟组件相关的数据;所述N个交互根组件包括所述第一交互根组件。6.如权利要求2所述的方法,其特征在于,所述根据所述组件索引树生成所述渲染指令,包括:获取初始渲染指令;根据所述组件索引树采集所述交互组件的组件渲染数据,获取所述初始渲染指令的视图属性信息;若所述视图属性信息为公共属性信息,则基于所述交互组件的组件渲染数据更新所述初始渲染指令,生成所述渲染指令;所述渲染指令不包括所述视图属性信息;若所述视图属性信息为专属属性信息,则基于所述交互组件的组件渲染数据及所述视图属性信息更新所述初始渲染指令,生成所述渲染指令;所述渲染指令包括所述视图属性信息。7.如权利要求1所述的方法,其特征在于,所述第二频率数据包括交互数据数组;所述整合交互组件所对应的组件交互信息,得到第二频率数据,包括:构建初始交互数据数组,从所述第一频率数据中获取组件索引树;所述组件索引树用于管理所述交互组件的组件索引;从所述组件索引树中获取所述交互组件的组件索引,基于所述交互组件的组件索引确定所述交互组件在所述初始交互数据数组中的组件数据位置;将所述交互组件的组件交互信息添加至所述初始交互数据数组中的所述组件数据位置处,得到所述交互数据数组;所述方法还包括:在所述渲染线程中,基于所述交互组件的组件索引,读取所述交互数据数组。8.如权利要求1所述的方法,其特征在于,所述整合交互组件所对应的组件交互信息,得到第二频率数据,包括:针对第i个渲染帧,整合交互组件所对应的组件交互信息i,得到第二频率数据i,将所述第二频率数据i添加至数据缓存数组中;i为正整数;基于所述数据缓存数组中所包括的第二频率数据,确定线程帧间隔;所述线程帧间隔用于表示所述前端处理线程所处理的第二频率数据的渲染帧,与所述渲染线程所处理的第二频率数据的渲染帧之间的帧数;若所述线程帧间隔小于帧间隔阈值,则针对第(i+1)个渲染帧,整合交互组件所对应的组件交互信息(i+1),得到第二频率数据(i+1),将所述第二频率数据(i+1)添加至数据缓存数组中;若所述线程帧间隔大于或等于所述帧间隔阈值,则暂停所述前端处理线程,在所述线程帧间隔小于所述帧间隔阈值时,重启所述前端处理线程。9.如权利要求8所述的方法,其特征在于,所述基于所述数据缓存数组中所包括的第二频率数据,确定线程帧间隔,包括:获取所述数据缓存数组中所包括的第二频率数据的第一数据数量,将所述第一数据数
量确定为线程帧间隔;所述方法还包括:基于所述渲染线程,删除所述第一渲染资源在所述数据缓存数组中所对应的第二频率数据。10.如权利要求8所述的方法,其特征在于,所述基于所述数据缓存数组中所包括的第二频率数据,确定线程帧间隔,包括:获取所述数据缓存数组中,未携带渲染标识的第二频率数据的第二数据数量,将所述第二数据数量确定为线程帧间隔;所述方法还包括:基于所述渲染线程,为所述第一渲染资源在所述数据缓存数组中所对应的第...

【专利技术属性】
技术研发人员:李永泽
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1