【技术实现步骤摘要】
数据渲染方法、装置、计算机及可读存储介质
[0001]本申请涉及计算机
,尤其涉及一种数据渲染方法、装置、计算机及可读存储介质。
技术介绍
[0002]目前,在对游戏进行渲染时,一般是通过在前端处理线程中全量遍历组件树,计算组件的位置和尺寸等,再对组件树进行逻辑更新和重新绘制,进行渲染数据和资源的准备,进而在渲染线程中基于渲染数据和资源进行渲染。通过该方式,需要在每一帧中,对所有的组件进行位置计算、逻辑更新及重新绘制,计算量巨大,导致数据渲染所需处理的数据量较大,进而使得数据渲染效率较低。
技术实现思路
[0003]本申请实施例提供了一种数据渲染方法、装置、计算机及可读存储介质,可以提高数据渲染效率。
[0004]本申请实施例一方面提供了一种数据渲染方法,该方法包括:在前端处理线程中,读取第一频率数据,整合交互组件所对应的组件交互信息,得到第二频率数据;所述第二频率数据的更新频率大于所述第一频率数据的更新频率;所述第二频率数据是指在每一个渲染帧中均进行更新的数据;在渲染线程中,将所述第一频率数据及所述第二频率数据,组合生成第一渲染资源,将所述第一渲染资源传输至图形处理器;通过所述图形处理器,将所述第一渲染资源转换成目标显示界面所对应的第二渲染资源,在所述目标显示界面中渲染所述第二渲染资源。
[0005]本申请实施例一方面提供了一种数据渲染装置,该装置包括:数据读取模块,用于在前端处理线程中,读取第一频率数据;数据整合模块,用于整合交互组件所对应的组件交互信息,得到第二频率数据;第 ...
【技术保护点】
【技术特征摘要】
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所述的方法,其特征在于,所述基于所述数据缓存数组中所包括的第二频率数据,确定线程帧间隔,包括:获取所述数据缓存数组中,未携带渲染标识的第二频率数据的第二数据数量,将所述第二数据数量确定为线程帧间隔;所述方法还包括:基于所述渲染线程,为所述第一渲染资源在所述数据缓存数组中所对应的第...
【专利技术属性】
技术研发人员:李永泽,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。