一种检测美术资源动态性能的方法和系统
技术领域
本发明涉及网络游戏领域,尤其涉及一种检测美术资源动态性能的方法和系统。
背景技术
美术资源在游戏至关重要,其性能直接影响着游戏的性能,如果大量的美术资源本身性能过差,那么程序的优化并不能很好地提高游戏性能,因此要从根本上控制美术资源的性能和标准。
目前主流的美术资源性能标准都只涉及到面数、材质数等静态的性能指标,但是没有动态的实时性能标准,比如FPS,占用内存等,但是单个资源的FPS既没有横向对比性也没有纵向对比性。
因此,需要一种检测美术资源动态性能的方法,给出美术资源动态性能指标,便于检测当前美术资源性能,为优化美术资源提供指导方案。
发明内容
本申请的目的是解决现有技术的不足,提供一种检测美术资源动态性能的方法和系统,能够获得当前美术资源动态性能指标,进一步判断当前美术资源的性能。
为了实现上述目的,本申请采用以下的技术方案。
首先,本申请提出一种检测美术资源动态性能的方法,包括以下步骤:
S100)根据用户给定的资源目录,自动获取待检测的资源列表;
S200)在固定的测试场景内,按顺序对资源列表内的资源进行压测,以获取当前资源的性能指标;
S300)制定性能标准,将低于性能标准的美术资源进行优化和回测。
进一步地,在本申请的上述方法中,所述步骤S100还包括以下子步骤:
S101)接收用户输入的版本号;
S102)向版本服务器发送请求消息,其中,所述请求消息中包含所述版本号;
S103)接收服务器根据所述请求消息返回的美术资源文件集合。
进一步地,在本申请的上述方法中,所述步骤S200还包括以下子步骤:
S201)在一段固定的播放时间内,每隔一段预设时间开始循环播放一次当前的美术资源;
S202)计算当前美术资源在所述固定的播放时间内的平均FPS;
S203)记录在在所述固定的播放时间内当前美术资源相应的发射粒子数最大值、静态性能指标drawcall和面数。
进一步地,在本申请的上述方法中,所述步骤S300还包括以下子步骤:
S301)将所述平均FPS、发射粒子数最大值、静态性能指标drawcall和面数存储到统计软件中;
S302)针对不同的性能类型设定不同的权重,根据相应的权重计算当前美术资源的最终性能数值;
S303)预设标准性能数值,将低于所述标准性能数值的美术资源进行优化并回测。
进一步地,在本申请的上述方法中,在检测结束时,根据每个美术资源所对应的性能数据以及最终性能数值生成测试报告。
其次,本申请还公开了一种检测美术资源动态性能的系统,包括以下模块:获取模块,用于根据用户给定的资源目录,自动获取待检测的资源列表;压测模块,用于在固定的测试场景内,按顺序对资源列表内的资源进行压测,以获取当前资源的性能指标;检测模块,制定性能标准,将低于性能标准的美术资源进行优化和回测。
进一步地,在本申请的上述系统中,获取模块还包括以下模块:输入模块,用于接收用户输入的版本号;发送模块,用于向版本服务器发送请求消息,其中,所述请求消息中包含所述版本号;接收模块,用于接收服务器根据所述请求消息返回的美术资源文件集合。
进一步地,在本申请的上述系统中,压测模块还包括以下模块:播放模块,用于在一段固定的播放时间内,每隔一段预设时间开始循环播放一次当前的美术资源;计算模块,用于计算当前美术资源在所述固定的播放时间内的平均FPS;记录模块,用于记录在在所述固定的播放时间内当前美术资源相应的发射粒子数最大值、静态性能指标drawcall和面数。
进一步地,在本申请的上述系统中,检测模块还包括以下模块:存储模块,用于将所述平均FPS、发射粒子数最大值、静态性能指标drawcall和面数存储到统计软件中;计算模块,用于针对不同的性能类型设定不同的权重,根据相应的权重计算当前美术资源的最终性能数值;判定模块,用于预设标准性能数值,将低于所述标准性能数值的美术资源进行优化并回测。
最后,本申请还提出一种计算机可读存储介质,其上存储有计算机指令。上述指令被处理器执行时,执行如下步骤:
S100)根据用户给定的资源目录,自动获取待检测的资源列表;
S200)在固定的测试场景内,按顺序对资源列表内的资源进行压测,以获取当前资源的性能指标;
S300)制定性能标准,将低于性能标准的美术资源进行优化和回测。
进一步地,在处理器执行上述指令时,所述步骤S100还包括以下子步骤:
S101)接收用户输入的版本号;
S102)向版本服务器发送请求消息,其中,所述请求消息中包含所述版本号;
S103)接收服务器根据所述请求消息返回的美术资源文件集合。
进一步地,在处理器执行上述指令时,所述步骤S200还包括以下子步骤:
S201)在一段固定的播放时间内,每隔一段预设时间开始循环播放一次当前的美术资源;
S202)计算当前美术资源在所述固定的播放时间内的平均FPS;
S203)记录在在所述固定的播放时间内当前美术资源相应的发射粒子数最大值、静态性能指标drawcall和面数。
进一步地,在处理器执行上述指令时,所述步骤S300还包括以下子步骤:
S301)将所述平均FPS、发射粒子数最大值、静态性能指标drawcall和面数存储到统计软件中;
S302)针对不同的性能类型设定不同的权重,根据相应的权重计算当前美术资源的最终性能数值;
S303)预设标准性能数值,将低于所述标准性能数值的美术资源进行优化并回测。
本申请的有益效果为:能够有效的检查出性能差的游戏美术资源,有利于优化性能差的资源,同时有利于回测优化结果。
附图说明
图1所示为本申请所公开的检测美术资源动态性能的方法流程图;
图2所示为在本申请的一个方法实施例中的子方法的流程图;
图3所示为在本申请的一个方法实施例中的子方法的流程图;
图4所示为在本申请的一个方法实施例中的子方法的流程图;
图5所示为本申请所公开的检测美术资源动态性能的系统结构图。
具体实施方式
以下将结合实施例和附图对本申请的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本申请的目的、方案和效果。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,如无特殊说明,当某一特征被称为“固定”、“连接”在另一个特征,它可以直接固定、连接在另一个特征上,也可以间接地固定、连接在另一个特征上。此外,本申请中所使用的上、下、左、右等描述仅仅是相对于附图中本申请各组成部分的相互位置关系来说的。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本申请。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的组合。
应当理解,尽管在本申请中可能采用术语第一、第二、第三等来描述各种元件,但这些元件不应限于这些术语。这些术语仅用来将同一类型的元件彼此区分开。例如,在不脱离本申请范围的情况下,第一元件也可以被称为第二元件,类似地,第二元件也可以被称为第一元件。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”。
参照图1所示的方法流程图,在本申请的一个或多个实施例中,本申请提出一种检测美术资源动态性能的方法,包括以下步骤:
S100)根据用户给定的资源目录,自动获取待检测的资源列表;
S200)在固定的测试场景内,按顺序对资源列表内的资源进行压测,以获取当前资源的性能指标;
S300)制定性能标准,将低于性能标准的美术资源进行优化和回测。
具体地,在运行游戏程序的过程中,根据给定的美术资源目录,选取一个固定的游戏场景,加载目录中的美术资源,其中美术资源包括:场景类、特效类、模型类、动作类。在加载过程中,采集性能数据,如内存消耗、CPU消耗、帧数值等,将这些性能数据与美术资源数据关联在一起,从而进一步判断当前测试的美术资源的性能是否达到预期目标,在检测结束时,根据每个美术资源所对应的性能数据以及最终性能数值生成测试报告。
参照图2所示的子方法流程图,在本申请的一个或多个实施例中,上述步骤S100)可以通过以下子步骤实现:
S101)接收用户输入的版本号;
S102)向版本服务器发送请求消息,其中,所述请求消息中包含所述版本号;
S103)接收服务器根据所述请求消息返回的美术资源文件集合。
具体地,服务器响应来自测试端的请求信息,对用户输入的版本号进行检索,如果用户输入的版本号不是当前游戏最新的版本,则提示用户并将最新游戏版本的美术资源文件集合发送至测试端。游戏中的美术资源文件可以包括但不限于以下至少之一:场景文件、模型文件、动画文件、特效文件以及贴图文件,具体地,模型文件主要由以下部分组成:gim模型文件、mesh网格文件、gis动画文件、mtg材质文件、ags挂接信息文件;特效文件主要由以下部分组成:sfx文件、dds文件;贴图文件主要包括:tga、bmp、png等。
参照图3所示的子方法流程图,在本申请的一个或多个实施例中,上述步骤S200还包括以下子步骤:
S201)在一段固定的播放时间内,每隔一段预设时间开始循环播放一次当前的美术资源;
S202)计算当前美术资源在所述固定的播放时间内的平均FPS;
S203)记录在在所述固定的播放时间内当前美术资源相应的发射粒子数最大值、静态性能指标drawcall和面数。
具体地,在本申请的一个实施例中,检测的资源是特效类型的资源时,设置一段固定的播放时长固定播放时长为10s,播放数量是100个,即在10秒钟内每隔0.1秒开始循环播放一个特效,一直重复播放到100个相同的特效,最后取这10s钟内的该特效的平均FPS,作为给该特效的性能平均值FPS,同时记录在这10s钟内的该特效发射粒子数的最大值,作为该特效的发射粒子数,并记录该特效静态性能指标drawcall、面数等。本实施例中,对于美术资源的压测具有有益效果:当多个相同特效在等距时间循环播放,每个时间点均平均分布着多个不同播放状态的相同特效,表现出的性能消耗更加稳定,同时每个时间点的特效均在等距时间循环播放,可以避免由于不同特效播放时长带来统计上的不便,使得统计的FPS具有可比性。
参照图4所示的子方法流程图,在本申请的一个或多个实施例中,上述步骤S300还包括以下子步骤:
S301)将所述平均FPS、发射粒子数最大值、静态性能指标drawcall和面数存储到统计软件中;
S302)针对不同的性能类型设定不同的权重,根据相应的权重计算当前美术资源的最终性能数值;
S303)预设标准性能数值,将低于所述标准性能数值的美术资源进行优化并回测。
具体地,在上述实施例中,对特效资料进行压测处理之后,将所有资源的平均值FPS、发射的粒子数、面数、drawCall数等所有播放时的动态和静态的性能指标存储在Excel表格内,针对不同的性能类型设定不同的权重,例如,平均值FPS权重为0.5、发射的粒子数权重为0.2、面数权重为0.1、drawCall数权重为0.2,然后对以上性能指标进行归一化处理,处理后的数值分别为A、B、C、D,则当前检测的特效资源的最终性能数值P=0.5*A+0.2*B+0.1*C+0.2*D。
参照图5所示的模块结构图,在本申请的一个或多个实施例中,本申请还公开了包括以下模块:获取模块,用于根据用户给定的资源目录,自动获取待检测的资源列表;压测模块,用于在固定的测试场景内,按顺序对资源列表内的资源进行压测,以获取当前资源的性能指标;检测模块,制定性能标准,将低于性能标准的美术资源进行优化和回测。
具体地,在运行游戏程序的过程中,根据给定的美术资源目录,选取一个固定的游戏场景,加载目录中的美术资源,其中美术资源包括:场景类、特效类、模型类、动作类。在加载过程中,采集性能数据,如内存消耗、CPU消耗、帧数值等,将这些性能数据与美术资源数据关联在一起,从而进一步判断当前测试的美术资源的性能是否达到预期目标。
进一步地,在本申请的上述系统中,获取模块还包括以下模块:输入模块,用于接收用户输入的版本号;发送模块,用于向版本服务器发送请求消息,其中,所述请求消息中包含所述版本号;接收模块,用于接收服务器根据所述请求消息返回的美术资源文件集合。
具体地,服务器响应来自测试端的请求信息,对用户输入的版本号进行检索,如果用户输入的版本号不是当前游戏最新的版本,则提示用户并将最新游戏版本的美术资源文件集合发送至测试端。游戏中的美术资源文件可以包括但不限于以下至少之一:场景文件、模型文件、动画文件、特效文件以及贴图文件,具体地,模型文件主要由以下部分组成:gim模型文件、mesh网格文件、gis动画文件、mtg材质文件、ags挂接信息文件;特效文件主要由以下部分组成:sfx文件、dds文件;贴图文件主要包括:tga、bmp、png等。
进一步地,在本申请的上述系统中,压测模块还包括以下模块:播放模块,用于在一段固定的播放时间内,每隔一段预设时间开始循环播放一次当前的美术资源;计算模块,用于计算当前美术资源在所述固定的播放时间内的平均FPS;记录模块,用于记录在在所述固定的播放时间内当前美术资源相应的发射粒子数最大值、静态性能指标drawcall和面数。
具体地,在本申请的一个实施例中,检测的资源是特效类型的资源时,设置一段固定的播放时长固定播放时长为10s,播放数量是100个,即在10秒钟内每隔0.1秒开始循环播放一个特效,一直重复播放到100个相同的特效,最后取这10s钟内的该特效的平均FPS,作为给该特效的性能平均值FPS,同时记录在这10s钟内的该特效发射粒子数的最大值,作为该特效的发射粒子数,并记录该特效静态性能指标drawcall、面数等。
进一步地,在本申请的上述系统中,检测模块还包括以下模块:存储模块,用于将所述平均FPS、发射粒子数最大值、静态性能指标drawcall和面数存储到统计软件中;计算模块,用于针对不同的性能类型设定不同的权重,根据相应的权重计算当前美术资源的最终性能数值;判定模块,用于预设标准性能数值,将低于所述标准性能数值的美术资源进行优化并回测。
具体地,在上述实施例中,对特效资料进行压测处理之后,将所有资源的平均值FPS、发射的粒子数、面数、drawCall数等所有播放时的动态和静态的性能指标存储在Excel表格内,针对不同的性能类型设定不同的权重,例如,平均值FPS权重为0.5、发射的粒子数权重为0.2、面数权重为0.1、drawCall数权重为0.2,然后对以上性能指标进行归一化处理,处理后的数值分别为A、B、C、D,则当前检测的特效资源的最终性能数值P=0.5*A+0.2*B+0.1*C+0.2*D。
应当认识到,本申请的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。该方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
进一步地,该方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本申请的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文该步骤的指令或程序时,本文所述的申请包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本申请所述的方法和技术编程时,本申请还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本申请优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
因此,应以说明性意义而不是限制性意义来理解本说明书和附图。然而,将明显的是:在不脱离如权利要求书中阐述的本申请的更宽广精神和范围的情况下,可以对本申请做出各种修改和改变。
其他变型在本申请的精神内。因此,尽管所公开的技术可容许各种修改和替代构造,但在附图中已示出并且在上文中详细描述所示的其某些实施例。然而,应当理解,并不意图将本申请局限于所公开的一种或多种具体形式;相反,其意图涵盖如所附权利要求书中所限定落在本申请的精神和范围内的所有修改、替代构造和等效物。