数据处理方法及装置制造方法及图纸

技术编号:25992022 阅读:34 留言:0更新日期:2020-10-20 19:00
本申请实施例提供一种数据处理方法及装置,涉及计算机应用技术领域。其中,将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;按照多个子区域的嵌套关系,构建四叉树;在四叉树的每个节点中存储其对应子区域的实例缓存数据,其中,实例缓存数据包括子区域中的各个对象实例的渲染数据;该四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域,确定位于视野范围内的目标子区域,并基于目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合实例缓存数据进行对象实例渲染。本申请实施例提供的技术方案提高了渲染效率。

【技术实现步骤摘要】
数据处理方法及装置
本申请实施例涉及计算机应用
,尤其涉及一种数据处理方法及装置。
技术介绍
随着图像处理技术的不断提升,很多场景中的物体可以在显示设备中进行渲染显示。对于场景中重复数量较多、密度较大的物体,如草、石块等,以草为例,进行草地渲染时是将草地均匀划分为多个草地块,CPU根据每个草地块中包含的草实例的渲染数据生成一次绘制命令,以调用GPU基于该渲染数据进行一次草实例的渲染。由于草地块的数量较多,每一个草地块对应一次绘制命令,导致绘制命令的数量较多。而大量的绘制命令会造成CPU过载,进而影响渲染效率。
技术实现思路
本申请实施例提供一种数据处理方法及装置、渲染方法及装置,用以解决现有技术中渲染数量较多、密度较大的物体时,CPU发起绘制命令的数量较多,导致CPU过载,影响渲染效率的问题。本专利技术的第一方面提供了一种数据处理方法,该方法包括:将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;按照所述多个子区域的嵌套关系,构建所述四叉树;在所述四叉树的每个节点中存储其对应子区域的实例缓存数据,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域,确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术的第二方面提供了一种数据处理方法,该方法包括:将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;按照所述多个子区域的嵌套关系,构建所述四叉树;在所述四叉树的每个节点中存储其对应子区域的实例缓存数据的缓存地址,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域以确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的缓存地址索引的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术的第三方面提供了一种渲染方法,该方法包括:确定待渲染区域对应的四叉树;其中,所述待渲染区域预先按照所述四叉树的树形结构进行网格划分获得多个子区域;所述四叉树基于所述多个子区域的嵌套关系构建生成,并在每个节点中存储其对应子区域的实例缓存数据或者所述缓存数据对应的缓存地址,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;遍历所述四叉树中每个节点对应的子区域,确定位于视野范围内的目标子区域;基于每个目标子区域对应的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术的第四方面提供了一种数据处理装置,该装置包括:划分模块,用于将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;构建模块,用于按照所述多个子区域的嵌套关系,构建所述四叉树;第一存储模块,用于在所述四叉树的每个节点中存储其对应子区域的实例缓存数据,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域,确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术的第五方面提供了一种数据处理装置,该装置包括:划分模块,用于将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;构建模块,用于按照所述多个子区域的嵌套关系,构建所述四叉树;第二存储模块,用于在所述四叉树的每个节点中存储其对应子区域的实例缓存数据的缓存地址,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域以确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的缓存地址索引的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术的第六方面提供了一种渲染装置,该装置包括:第三确定模块,用于确定待渲染区域对应的四叉树;其中,所述待渲染区域预先按照所述四叉树的树形结构进行网格划分获得多个子区域;所述四叉树基于所述多个子区域的嵌套关系构建生成,并在每个节点中存储其对应子区域的实例缓存数据或者所述缓存数据对应的缓存地址,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;第三遍历模块,用于遍历所述四叉树中每个节点对应的子区域,确定位于视野范围内的目标子区域;第三发送模块,用于基于每个目标子区域对应的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。本专利技术中,构建四叉树,并在四叉树的每个节点中存储其对应子区域的实例缓存数据,也即若某一节点有连接的孩子节点时,该节点中可以存储其连接的各孩子节点中所存储的实例缓存数据。在进行对象实例渲染时,遍历该四叉树中每个节点对应的子区域以确定位于视野范围内的目标子区域,基于目标子区域对应节点存储的实例缓存数据,发起一次绘制命令。通过将实例缓存数据进行合并存储,若遍历得到的目标子区域对应的节点还连接有孩子节点,则无需再逐一针对该节点下的孩子节点分别对应的子区域进行渲染,减少了绘制命令的次数,避免发生CPU过载的情况,提高了渲染效率。本专利技术的这些方面或其他方面在以下实施例的描述中会更加简明易懂。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例的一种数据处理方法的一个实施例的流程图;图1-1是本专利技术实施例的四叉树划分空间示意图;图1-2是本专利技术实施例的四叉树构建示意图;图2是本专利技术实施例的一种渲染方法的一个实施例的流程图;图2-1是本专利技术实施例的四叉树的一个遍历示意图;图2-2是本专利技术实施例的四叉树的另一个遍历示意图;图3是本专利技术实施例的一种数据处理方法的另一个实施例的流程图;图4是本专利技术实施例的一种渲染方法的另一个实施例的流程图;图5是本专利技术实施例的一种渲染方式的另一个实施例的流程图;图6是本专利技术实施例的一种渲染方法的另一个实施例的流程图;图7是本专利技术实施例的一种数据处理装置的一个实施例的结构示意图;图8是本专利技术实施例的一种渲染装置的一个实施例的结构示意图;图9是本专利技术实施例的一种数据处理装置的另一个实施例的结构示意图;图10是本专利技术实施例的一种渲染装置的另一个实施例的结构示意图;图11是本专利技术实施本文档来自技高网...

【技术保护点】
1.一种数据处理方法,其特征在于,包括:/n将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;按照所述多个子区域的嵌套关系,构建所述四叉树;/n在所述四叉树的每个节点中存储其对应子区域的实例缓存数据,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;/n其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域,确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。/n

【技术特征摘要】
1.一种数据处理方法,其特征在于,包括:
将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;按照所述多个子区域的嵌套关系,构建所述四叉树;
在所述四叉树的每个节点中存储其对应子区域的实例缓存数据,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;
其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域,确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。


2.根据权利要求1所述的方法,其特征在于,所述在所述四叉树的每个节点中存储其对应子区域的实例缓存数据之后,所述方法还包括:
遍历所述四叉树中每个节点对应的子区域,确定位于视野范围内的目标子区域;
基于每个目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。


3.根据权利要求2所述的方法,其特征在于,所述实例缓存数据具体包括所述子区域中的各个对象实例的静态渲染数据;
所述基于每个目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染包括:
基于每个目标子区域对应节点存储的实例缓存数据,发起一次绘制命令,调用GPU生成所述目标子区域中每个对象实例的动态渲染数据,并结合每个对象实例的静态渲染数据及动态渲染数据,渲染获得每个对象实例。


4.一种数据处理方法,其特征在于,包括:
将待渲染区域按照四叉树的树形结构进行网格划分,获得多个子区域;
按照所述多个子区域的嵌套关系,构建所述四叉树;
在所述四叉树的每个节点中存储其对应子区域的实例缓存数据的缓存地址,其中,所述实例缓存数据包括所述子区域中的各个对象实例的渲染数据;
其中,所述四叉树用于进行对象实例渲染时,遍历每个节点对应的子区域以确定位于视野范围内的目标子区域,并基于所述目标子区域对应节点存储的缓存地址索引的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。


5.根据权利要求4所述的方法,其特征在于,所述在所述四叉树的每个节点中存储其对应子区域的实例缓存数据的缓存地址之后,所述方法还包括:
遍历所述四叉树中每个节点对应的子区域,确定位于视野范围内的目标子区域;
基于每个目标子区域对应节点存储的缓存地址索引的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染。


6.根据权利要求5所述的方法,其特征在于,所述实例缓存数据具体包括所述子区域中的各个对象实例的静态渲染数据;
所述基于每个目标子区域对应节点存储的缓存地址索引的实例缓存数据,发起一次绘制命令,以调用GPU结合所述实例缓存数据进行对象实例渲染包括:
基于每个目标子...

【专利技术属性】
技术研发人员:姜明余
申请(专利权)人:完美世界北京软件科技发展有限公司
类型:发明
国别省市:北京;11

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

1