一种选择抗锯齿算法的方法、装置、设备及可读存储介质制造方法及图纸

技术编号:33640468 阅读:23 留言:0更新日期:2022-06-02 20:15
本申请实施例公开了一种选择抗锯齿算法的方法、装置、设备及可读存储介质,用于动态选择适合当前图像场景的抗锯齿算法,以提高抗锯齿效果,提高画质。本申请实施例方法包括:CPU获取用于调用应用程序接口API的至少一个指令,该至少一个指令中携带M个模型各自的渲染信息,且M个模型属于同一帧图像,M为正整数;然后基于M个模型各自的渲染信息从多种抗锯齿算法中选择一种抗锯齿算法作为目标抗锯齿算法;CPU向图形处理器GPU发送指示信息,使得GPU基于目标抗锯齿算法对至少一帧图像进行渲染。于目标抗锯齿算法对至少一帧图像进行渲染。于目标抗锯齿算法对至少一帧图像进行渲染。

【技术实现步骤摘要】
一种选择抗锯齿算法的方法、装置、设备及可读存储介质


[0001]本申请实施例涉及计算机
,尤其涉及一种选择抗锯齿算法的方法、装置、设备及可读存储介质。

技术介绍

[0002]在信号处理以及相关领域中,走样(Aliasing)是指在对不同的信号进行采样时,采样结果显示信号相同的现象。
[0003]在图像领域,走样可以包括几何体走样、着色走样以及时间走样。以几何体走样为例,几何体走样通常表现为锯齿现象。锯齿现象是指显示器中显示的图像边缘会出现凹凸锯齿。例如,一条直线如图1所示,将图1所示的直线放大,放大后的直线图像如图2所示,可以看出,这条直线两侧均出现了凹凸锯齿。
[0004]由于锯齿现象会影响图像的显示效果,所以诞生了抗锯齿(Anti

Aliasing,AA)技术。抗锯齿也可以称为反走样边缘柔化、消除混叠、抗图像折叠有损等,是一种能够消除图像边缘出现的凹凸锯齿的技术。例如,在渲染直线的过程中采用抗锯齿技术进行处理,则直线的显示结果如图3所示。对比图2和图3可知,抗锯齿技术将锯齿柔化,使得直线显示地更加平滑。
[0005]抗锯齿技术有很多算法。但在现有的游戏中,通常会选择一种固定的抗锯齿算法对游戏中的所有图像进行抗锯齿处理。由于每种抗锯齿算法都有不同的适用场景,所以以固定的一种抗锯齿算法进行处理,会导致部分图像的抗锯齿效果较差。

技术实现思路

[0006]本申请实施例提供了一种选择抗锯齿算法的方法、装置、设备及可读存储介质,该方法能够动态选择适合当前图像场景的抗锯齿算法,从而可以提高抗锯齿效果,提高画质。
[0007]本申请实施例第一方面提供了一种选择抗锯齿算法的方法,可以应用于中央处理器CPU,包括:获取用于调用应用程序接口API的至少一个指令,至少一个指令中携带M个模型各自的渲染信息,该渲染信息包括但不限于顶点数据、模型的标识、模型对应的VBO的ID以及模型对应的EBO的ID,M个模型属于同一帧图像,M为正整数;基于M个模型各自的渲染信息从多种抗锯齿算法中选择一种抗锯齿算法作为目标抗锯齿算法,多种抗锯齿算法可以包括SSAA算法、MSAA算法、CSAA算法、CFAA算法、FXAA算法、TXAA算法和DLAA算法中的至少两种;向图形处理器GPU发送指示信息,指示信息指示GPU基于目标抗锯齿算法对至少一帧图像进行渲染。
[0008]应理解的是,这里选择出来的抗锯齿算法应用的所述“至少一帧图像”可以包括所述M个模型所属的那一帧,也可能来不及应用于这一帧,而是应用于这一帧后续的一帧或多帧。
[0009]由于M个模型属于同一帧图像,所以M个模型各自的渲染信息能够反映出该帧图像的具体场景,那么基于M个模型各自的渲染信息确定目标抗锯齿算法则能够实现对目标抗
锯齿算法的动态选择,且能得到适用于当前图像场景的目标抗锯齿算法,以提高抗锯齿效果,提高画质。
[0010]作为一种实现方式,多种抗锯齿算法包括快速近似抗锯齿FXAA算法,相应地,基于M个模型各自的渲染信息从多种抗锯齿算法中选择一种抗锯齿算法作为目标抗锯齿算法包括:从M个模型中确定渲染信息包含纹理信息的N个模型,纹理信息指示在渲染模型的过程中使用纹理数据,N为小于或等于M的正整数;计算N个模型各自的顶点重复度,顶点重复度可以采用顶点重复使用的次数表示,也可以用顶点的总数与顶点重复使用的次数表示,具体地,顶点重复度可以等于模型中顶点重复使用的次数与和的比值,该和为顶点的总数与顶点重复使用的次数的和;基于N个模型中顶点重复度小于目标重复度的K个模型满足条件,选择FXAA算法作为目标抗锯齿算法,条件可以的内容可以有多种,例如可以包括模型的数量阈值,K为小于或等于N的正整数。
[0011]基于FXAA算法适用于通过纹理贴图绘制且顶点重复度较小的模型的渲染过程,所以在该实现方式中,从M个模型中先筛选得到通过纹理贴图绘制的N个模型,再从N个模型中筛选得到顶点重复度小于目标重复度的K个模型,最终当K个模型满足目标条件时选择FXAA算法,从而保证FXAA算法适用于M个模型所属的图像的场景。
[0012]作为一种实现方式,条件包括K个模型在屏幕空间中的投影面积与屏幕面积的比例大于目标比例,目标比例的取值可以根据经验、游戏应用程序的种类以及具体的游戏场景进行设定,例如,目标比例可以设置为1/3、2/5或1/2。
[0013]该实现方式提供了条件的另一种示例,由于FXAA算法适用于通过纹理贴图绘制且顶点重复度较小的模型的渲染过程,所以当通过纹理贴图绘制且顶点重复度较小的K个模型占屏幕面积的比例较大时,选择FXAA算法作为目标抗锯齿算法,能够保证当前帧图像具有较好的抗锯齿效果。
[0014]作为一种实现方式,在计算N个模型各自的顶点重复度之后,在基于N个模型中顶点重复度小于目标重复度的K个模型满足条件,选择FXAA算法作为目标抗锯齿算法之前,方法还包括:计算K个模型在屏幕空间中的投影面积与屏幕面积的比例,计算比例的方法有多种。
[0015]计算K个模型在屏幕空间中的投影面积与屏幕面积的比例,当该比例大于目标比例时,选择FXAA算法作为目标抗锯齿算法,能够保证当前帧图像具有较好的抗锯齿效果。
[0016]作为一种实现方式,计算K个模型在屏幕空间中的投影面积与屏幕面积的比例包括:获取包围K个模型的P个包围盒,每个包围盒为包围K个模型中至少一个模型的几何体,一个包围盒可以对应一个模型,也可以对应多个模型;包围盒的形状可以有多种,例如为长方体、正方体、球体等;基于转换矩阵计算P个包围盒在屏幕空间中的投影面积,转换矩阵用于将P个包围盒从模型空间投影到屏幕空间,不同包围盒可以对应不同的转换矩阵;计算P个包围盒在屏幕空间中的投影面积与屏幕面积的比例,并将P个包围盒在屏幕空间中的投影面积与屏幕面积的比例,作为K个模型在屏幕空间中的投影面积与屏幕面积的比例。
[0017]由于模型本身通常为不规则几何体,因此如果直接计算模型在屏幕空间中的投影面积与屏幕面积的比例,则计算过程会较为繁琐;所以在该实现方式中,先获取包围K个模型的P个包围盒,然后计算P个包围盒在屏幕空间中的投影面积与屏幕面积的比例,并将P个包围盒在屏幕空间中的投影面积与屏幕面积的比例,作为K个模型在屏幕空间中的投影面
积与屏幕面积的比例的近似值,能够简化比例的计算过程,提高比例的计算效果,从而可以提高确定出目标抗锯齿算法的效率。
[0018]作为一种实现方式,M个模型各自的渲染信息还包括M个模型各自对应的顶点缓冲对象VBO,相应地,获取包围K个模型的P个包围盒包括:从K个模型各自对应的顶点缓冲对象VBO中获取K个模型各自对应的顶点数据,其中,顶点数据可以包括顶点坐标、顶点法向量;基于K个模型各自对应的顶点数据确定P个包围盒,具体地,可以基于K个模型各自的顶点坐标,便可以确定每个模型在各个方向对应的最大坐标值和最小坐标值,然后再确定P个包围盒。
[0019]在该实现方式中,基于K个模型各自对应的顶点数据确定P个包本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种选择抗锯齿算法的方法,其特征在于,包括:获取用于调用应用程序接口API的至少一个指令,所述至少一个指令中携带M个模型各自的渲染信息,所述M个模型属于同一帧图像,M为正整数;基于所述M个模型各自的渲染信息从多种抗锯齿算法中选择一种抗锯齿算法作为目标抗锯齿算法;向图形处理器GPU发送指示信息,所述指示信息指示所述GPU基于所述目标抗锯齿算法对至少一帧图像进行渲染。2.根据权利要求1所述的方法,其特征在于,所述多种抗锯齿算法包括快速近似抗锯齿FXAA算法;所述基于所述M个模型各自的渲染信息从多种抗锯齿算法中选择一种抗锯齿算法作为目标抗锯齿算法包括:从所述M个模型中确定渲染信息包含纹理信息的N个模型,所述纹理信息指示在渲染模型的过程中使用纹理数据,N为小于或等于M的正整数;计算所述N个模型各自的顶点重复度;基于所述N个模型中顶点重复度小于目标重复度的K个模型满足条件,选择所述FXAA算法作为目标抗锯齿算法,K为小于或等于N的正整数。3.根据权利要求2所述的方法,其特征在于,所述条件包括所述K个模型在屏幕空间中的投影面积与屏幕面积的比例大于目标比例。4.根据权利要求2或3所述的方法,其特征在于,在所述计算所述N个模型各自的顶点重复度之后,在基于所述N个模型中顶点重复度小于目标重复度的K个模型满足条件,选择所述FXAA算法作为目标抗锯齿算法之前,所述方法还包括:计算所述K个模型在屏幕空间中的投影面积与屏幕面积的比例。5.根据权利要求4所述的方法,其特征在于,所述计算K个模型在屏幕空间中的投影面积与屏幕面积的比例包括:获取包围K个模型的P个包围盒,每个包围盒为包围所述K个模型中至少一个模型的几何体;基于转换矩阵计算所述P个包围盒在屏幕空间中的投影面积,所述转换矩阵用于将所述P个包围盒从模型空间投影到所述屏幕空间;计算所述P个包围盒在所述屏幕空间中的投影面积与屏幕面积的比例,并将所述P个包围盒在所述屏幕空间中的投影面积与屏幕面积的比例,作为所述K个模型在屏幕空间中的投影面积与屏幕面积的比例。6.根据权利要求5所述的方法,其特征在于,所述M个模型各自的渲染信息还包括所述M个模型各自对应的顶点缓冲对象VBO;获取包围K个模型的P个包围盒包括:从所述K个模型各自对应的顶点缓冲对象VBO中获取所述K个模型各自对应的顶点数据;基于所述K个模型各自对应的顶点数据确定P个包围盒。7.根据权利要求2至6中任一项所述的方法,其特征在于,所述N个模型包含...

【专利技术属性】
技术研发人员:姜泽成颜锦罗备
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1