【技术实现步骤摘要】
一种图形渲染方法及其相关设备
[0001]本申请涉及图像处理
,并且更具体地,涉及一种图形渲染方法、装置和计算机可读存储介质。
技术介绍
[0002]图形处理器(graphics processing unit,GPU)是一种专门用于图像运算的微处理器,常被用于进行图形渲染。
[0003]传统方案在进行图形渲染时,一般是由GPU来执行图像渲染的整个过程。但是,在GPU的负载量过大的情况下,例如,图形渲染的运算量较大(如重度图形显示的情况)或者GPU需要处理的其它运算较多(如GPU在进行图形渲染的同时还参与了大型科学计算)时,采用传统方案进行图形渲染方法会导致GPU的负载过高,进而影响GPU进行图像渲染时的性能。
技术实现思路
[0004]本申请提供一种图形渲染方法、装置和计算机可读存储介质,以减轻GPU进行图形渲染时的负载。
[0005]第一方面,本申请提供了一种图形渲染方法,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:获取N个待渲染顶点的顶点数据;本申请实施例中,终端设备中的CPU可以获取多个第一绘制命令draw call,所述多个第一draw call用于调用N个待渲染顶点的顶点数据,待渲染顶点的顶点数据可以包括但不限于顶点位置、法线、UV坐标、索引等;其中,draw call指令是指图形程序接口指令,draw call指令的数目与跨平台的图形程序接口的图形描绘次数相同,draw call指令具体可以包括但不限于glDrawArrays、glDra ...
【技术保护点】
【技术特征摘要】
1.一种图形渲染方法,其特征在于,所述方法应用于终端设备,所述终端设备包括图形处理器GPU,所述方法包括:获取N个待渲染顶点的顶点数据,所述N为正整数;若所述GPU的负载量大于预设值,则根据所述N个待渲染顶点的顶点数据,从所述N个待渲染顶点中获取M个待渲染顶点,其中,所述M个待渲染顶点为在用户视角范围内可见的顶点;所述M为小于所述N的正整数;以及,将所述M个待渲染顶点的顶点数据传递到所述GPU,以便所述GPU进行图形渲染。2.根据权利要求1所述的方法,其特征在于,所述N个待渲染顶点用于组成多个待渲染的模型网格,每个待渲染的模型网格包括多个三角形网络,每个三角形网络的顶点由所述N个待渲染顶点中的多个待渲染顶点组成,所述根据所述N个待渲染顶点的顶点数据,从所述N个待渲染顶点中获取M个待渲染顶点,包括:根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,剔除所述多个待渲染的模型网格中全部或部分顶点在用户视角范围内不可见的模型网格,以得到剔除后的多个模型网格,所述剔除后的多个模型网格包括所述M个待渲染顶点。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:获取当前中央处理器CPU可用的计算资源;基于所述计算资源确定所述多个待渲染的模型网格中每个待渲染的模型网格包括的三角形网络数量;其中,若所述计算资源越多,则每个待渲染的模型网格包括的三角形网络数量越多,若所述计算资源越少,则每个待渲染的模型网格包括的三角形网络数量越少。4.根据权利要求2或3所述的方法,其特征在于,所述根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,剔除所述多个待渲染的模型网格中全部或部分顶点在用户视角范围内不可见的模型网格,包括:根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,通过背面剔除、视锥体剔除以及遮挡剔除中的至少一种,剔除所述多个待渲染的模型网格中全部或部分顶点在用户视角范围内不可见的模型网格。5.根据权利要求1至4任一所述的方法,其特征在于,所述GPU的负载量与如下的至少一种有关:所述GPU渲染一帧图像时所需要处理的绘制命令draw call的数量;所述GPU渲染一帧图像时所需要处理的待渲染顶点的数量;所述GPU渲染一帧图像时所需要处理的待渲染纹理的数量;或者所述GPU的频点占用。6.根据权利要求1至5任一所述的方法,其特征在于,所述获取N个待渲染顶点的顶点数据,包括:获取多个第一绘制命令draw call,所述多个第一draw call用于调用N个待渲染顶点的顶点数据;相应的,所述将所述M个待渲染顶点的顶点数据传递至到所述GPU,包括:根据所述M个待渲染顶点的顶点数据,更新所述多个第一draw call,以得到多个第二draw call,所述多个第二draw call用于调用所述M个待渲染顶点的顶点数据;将所述多个第二draw call传递至到所述GPU。7.一种图形渲染方法,其特征在于,所述方法应用于终端设备,所述终端设备包括CPU和GPU,所述方法包括:
所述CPU获取多个第一draw call,所述多个第一draw call用于调用N个待渲染顶点的顶点数据;若所述CPU的负载量大于预设值,则所述CPU将所述多个第一draw call传递至所述GPU;所述GPU根据所述N个待渲染顶点的顶点数据,从所述N个待渲染顶点中获取M个待渲染顶点,其中,所述M个待渲染顶点为在用户视角范围内可见的顶点;所述M为小于所述N的正整数;所述GPU根据所述M个待渲染顶点的顶点数据,更新所述多个第一draw call,以得到多个第二draw call,所述多个第二draw call用于调用所述M个待渲染顶点的顶点数据;以及,所述GPU根据所述多个第二draw call进行图形渲染。8.根据权利要求7所述的方法,其特征在于,每个第一draw call包括函数名,所述方法还包括:所述CPU根据所述N个draw call的函数名以及调用的待渲染顶点的顶点数据,生成P个目标draw call,其中所述P个目标draw call用于表示所述N个draw call,且每个目标draw call用于表示所述N个draw call中的一部分draw call,所述一部分draw call的函数名以及调用的待渲染顶点的顶点数据相同;所述CPU将每个目标draw call传递至一个第一缓存器buffer,并基于计算着色器调用(compute shader调用)来触发所述GPU从P个第一buffer中获取所述P个目标draw call,其中,每次compute shader调用可触发所述GPU从一个第一buffer中获取一个目标draw call。9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:所述GPU将所述M个待渲染顶点的顶点数据写入至非直接渲染缓存器(indirect draw buffer);相应的,所述GPU根据所述多个第二draw call进行图形渲染,包括:所述CPU基于非直接渲染调用(indirect draw调用)触发所述GPU从所述indirect draw buffer中获取所述M个待渲染顶点的顶点数据,以便所述CPU根据所述多个第二draw call进行图形渲染。10.根据权利要求7至9任一所述的方法,其特征在于,所述N个待渲染顶点用于组成多个待渲染的模型网格,每个待渲染的模型网格包括多个三角形网络,每个三角形网络的顶点由所述N个待渲染顶点中的多个待渲染顶点组成,所述根据所述N个待渲染顶点的顶点数据,从所述N个待渲染顶点中获取M个待渲染顶点,包括:根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,剔除所述多个待渲染的模型网格中全部或部分顶点在用户视角范围内不可见的模型网格,以得到剔除后的多个模型网格,所述剔除后的多个模型网格包括M个待渲染顶点。11.根据权利要求10所述的方法,其特征在于,所述根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,剔除所述多个待渲染的模型网格中全部或部分顶点在用户视角范围内不可见的模型网格,包括:根据每个待渲染的模型网格中三角形网络的顶点的顶点数据,通过背面剔除、视锥体剔除以及遮挡剔除中的至少一种,剔除所述多个待渲染的模型网格中全部或部分顶点在用
户视角范围内不可见的模型网格。12.根据权利要求7至11任一所述的方法,其特征在于,所述CPU的负载量与如下的至少一种有关:所述CPU进行一帧图像的渲染处理所需的时间;所述CPU进行一帧图像的渲染处理时所需要处理的API调用的数量;所述CPU的频点占用。13.一种图形渲染装置,其特征在于,所述装置应用于终端设备,所述终端设备包括图形处...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。