CN108717354B - 手机游戏渲染数据的采集方法、装置及存储设备 - Google Patents
手机游戏渲染数据的采集方法、装置及存储设备 Download PDFInfo
- Publication number
- CN108717354B CN108717354B CN201810476312.8A CN201810476312A CN108717354B CN 108717354 B CN108717354 B CN 108717354B CN 201810476312 A CN201810476312 A CN 201810476312A CN 108717354 B CN108717354 B CN 108717354B
- Authority
- CN
- China
- Prior art keywords
- rendering
- function
- sub
- data
- acquisition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
Abstract
本发明公开了一种手机游戏渲染数据的采集方法,涉及游戏开发领域,该方法包括步骤:将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;获取所述采集子函数进行统计得到的统计数据;根据获取到的所述统计数据,生成相应的统计结果。本发明实施例还提供了手机游戏渲染数据的采集装置及存储设备,能有效提高手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
Description
技术领域
本发明涉及游戏开发领域,尤其涉及一种手机游戏渲染数据的采集方法、装置及存储设备。
背景技术
随着智能手机在日常生活中的普及,以及智能手机性能和娱乐性的逐步提升,人们对手机游戏的画面品质需求也日益提高。而画面品质较高的手机游戏,对渲染性能有极高的要求,如果渲染性能不足,可能导致游戏卡顿等影响玩家游戏体验的问题。因此,对游戏渲染的优化是手机游戏开发过程中十分重要的环节,其中,采集手机游戏的渲染数据更是重中之重。
现有技术中,手机游戏渲染数据的采集方法一般是通过游戏的渲染引擎提供调试工具或数据接口,开发人员手工调试并记录游戏的渲染数据。在实施本发明的过程中,发明人发现,现有的采集方法依赖于渲染引擎提供的调试工具或数据接口,需要配合不同的渲染引擎进行对应的数据采集工作,采集的效率和准确度存在较大缺陷,同时部分渲染引擎未提供配合数据采集的调试工具或数据接口,导致数据采集工作无法进行,极大降低了手机游戏渲染开发的工作效率。
发明内容
本发明实施例的目的是提供一种手机游戏渲染数据的采集方法、装置及存储设备,能有效提高手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
为实现上述目的,本发明实施例提供了一种手机游戏渲染数据的采集方法,包括步骤:
将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;
获取所述采集子函数进行统计得到的统计数据;
根据获取到的所述统计数据,生成相应的统计结果。
作为上述方案的改进,所述将待采集的游戏进程关联的渲染函数替换为自定义渲染函数,包括:
将自定义渲染函数的代码注入待采集的游戏进程;
将所述游戏进程与渲染函数的地址关联修改为所述游戏进程与所述自定义渲染函数的地址关联。
作为上述方案的改进,所述渲染子函数为调用所述渲染函数的回调函数。
作为上述方案的改进,所述渲染子函数包括对应函数glDrawArrays的第一渲染子函数和对应函数glDrawElements的第二渲染子函数;所述采集子函数包括与所述第一渲染子函数配合的第一采集子函数以及与所述第二渲染子函数配合的第二采集子函数。
作为上述方案的改进,所述第一采集子函数的统计过程包括:
统计从当前帧开始时,所述第一渲染子函数被调用的次数;
根据对当前帧进行渲染需绘制的顶点数量C,统计场景内三角形的数量的统计值增加量A=C-2。
作为上述方案的改进,所述第二采集子函数的统计过程包括:
统计从当前帧开始时,所述第二渲染子函数被调用的次数;
根据对当前帧进行渲染需绘制的绘制类型和顶点数量C,统计场景内三角形的数量的统计值增加量A;绘制类型为GL_POINTS,则A=C*2;绘制类型为GL_LINES/GL_LINE_LOOP/GL_LINE_STRIP,则A=C;绘制类型为GL_TRIANGLES,则A=C/3;绘制类型为GL_TRIANGLES_FAN/GL_TRIANGLES_STRIP,则A=C-2。
作为上述方案的改进,所述采集子函数进行统计得到的统计数据包括被采集的每个帧的渲染子函数被调用的次数和场景内三角形的数量。
本发明实施例还提供了一种手机游戏渲染数据的采集装置,包括:
函数替换模块,用于将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;
数据获取模块,用于获取所述采集子函数进行统计得到的统计数据;
统计输出模块,用于根据获取到的所述统计数据,生成相应的统计结果。
本发明实施例还提供了一种手机游戏渲染数据的采集装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上任意一项所述的手机游戏渲染数据的采集方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如上任意一项所述的手机游戏渲染数据的采集方法。
与现有技术相比,本发明实施例公开的手机游戏渲染数据的采集方法、装置和存储介质,通过采用包括采集子函数的和渲染子函数的自定义渲染函数代替原有的渲染函数,在启动游戏进程后,由所述渲染子函数正常完成渲染工作,并且所述采集子函数在所述游戏进程的运行过程中统计渲染子函数被调用的次数和场景内三角形的数量,从而得到包括渲染子函数被调用次数和场景内三角形数量在内的渲染数据的统计结果。通过所述采集子函数在游戏进程运行的过程中即时采集所述渲染数据,摆脱了对渲染数据的采集方法对渲染引擎的依赖,解决了现有技术中采集渲染数据的效率低下和准确度不高的技术问题,有效地提高了手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
附图说明
图1是本发明实施例提供的一种手机游戏渲染数据的采集方法的流程示意图。
图2是如图1所示的采集方法的采集过程的具体流程示意图。
图3是本发明实施例提供的另一种手机游戏渲染数据的采集方法的流程示意图。
图4是如图3所示的采集方法的步骤S220的具体流程示意图。
图5是如图3所示的采集方法的步骤S240的具体流程示意图。
图6是本发明实施例提供的一种手机游戏渲染数据的采集装置的结构示意图。
图7是本发明实施例提供的另一种手机游戏渲染数据的采集装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,是本发明实施例提供的一种手机游戏渲染数据的采集方法的流程示意图。该采集方法包括如下步骤S110至步骤S130。
S110、将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量。
优选地,可以预先通过代码注入的方式将所述自定义渲染函数注入到所述游戏进程中,再将所述游戏进程关联的渲染函数替换为所述自定义渲染函数。更进一步地,可以是将所述游戏进程与渲染函数的地址关联修改为所述游戏进程与所述自定义渲染函数的地址关联,如修改所述游戏进程所关联的渲染函数的地址,将所述地址修改为所述自定义渲染函数的地址,从而实现所述自定义渲染函数对所述渲染函数的替换。
作为一个优选实施方式,在所述自定义渲染函数中,所述渲染子函数可以是调用所述渲染函数回调函数,所述游戏进程在调用所述渲染子函数时,所述渲染子函数调用所述渲染函数,在降低开发难度和工作量的基础上,保证了所述游戏进程的渲染工作的正常进行,从而提高了游戏开发的工作效率。所述采集子函数的执行与所述渲染子函数的执行相互独立。
更进一步地,所述渲染函数可以包括函数glDrawArrays和函数glDrawElements中的一项或两项。相应的,所述渲染子函数可以是调用函数glDrawArrays或函数glDrawElements其中之一的回调函数,也可以是包括对应函数glDrawArrays的第一渲染子函数和对应函数glDrawElements的第二渲染子函数;所述采集子函数可以是同时对所述第一渲染子函数和所述第二子函数进行统计,也可以是包括与所述第一渲染子函数配合的第一采集子函数以及与所述第二渲染子函数配合的第二采集子函数,均不影响本发明可取得的有益效果。
具体地,参见图2,所述采集子函数的采集过程包括如下步骤S111至步骤S112。
S111、统计从当前帧开始时,所述渲染子函数被调用的次数。
具体地,可以是在所述渲染子函数被调用时计数值加一,或是在所述渲染子函数执行时计数值加一,均不影响本发明可取得的有益效果。
在所述采集子函数包括所述第一采集子函数和所述第二采集子函数的情况下,可以是所述第一采集子函数和所述第二采集子函数分别对所述第一渲染子函数和所述第二渲染子函数进行统计。
S112、获取对当前帧进行渲染需要绘制的顶点数量,根据场景内三角形的数量的统计值增加量与所述顶点数量之间的函数关系,计算所述统计增加量。
更具体地,当所述采集子函数包括所述第一采集子函数和所述第二采集子函数,且所述第一渲染子函数对应于函数glDrawArrays,所述第二渲染子函数对应于函数glDrawElements的情况下,设所述顶点数量为C,所述第一采集子函数得到的统计增加量为A_1,与顶点数量C的函数关系A_1=F(C);所述第二采集子函数得到的统计增加量为A_2,与顶点数量C的函数关系A_2=G(C)。
其中,所述F(C)=C-2,即A_1=C-2;所述G(C)根据进行渲染需绘制的绘制类型不同而具有不同的函数式,包括:
绘制类型为GL_POINTS时,G(C)=C*2;
绘制类型为GL_LINES/GL_LINE_LOOP/GL_LINE_STRIP时,G(C)=C;
绘制类型为GL_TRIANGLES,则G(C)=C/3时;
绘制类型为GL_TRIANGLES_FAN/GL_TRIANGLES_STRIP时,G(C)=C-2。
S120、获取所述采集子函数进行统计得到的统计数据。
其中,可以是在所述游戏进程结束之后,从所述采集子函数中获取所述采集子函数对所述渲染子函数被调用的次数和场景内三角形的数量进行统计的统计数据;也可以是在所述游戏进程中,通过调取所述采集子函数从而获取所述统计数据,均不影响本发明可取得的有益效果。
优选地,所述统计数据还可以是包括了被采集的每个帧的渲染子函数被调用的次数和场景内三角形的数量。
S130、根据获取到的所述统计数据,生成相应的统计结果。
具体地,所述统计结果可以是采用图表的形式呈现,或是直接以数据的形式呈现。
优选地,所述统计结果还可以是根据采集到的包括多个帧的统计数据,对所述包括多个帧的统计数据进行统计分析,从而得到的统计报告。
本发明实施例公开的手机游戏渲染数据的采集方法,通过采用包括采集子函数的和渲染子函数的自定义渲染函数代替原有的渲染函数,在启动游戏进程后,由所述渲染子函数正常完成渲染工作,并且所述采集子函数在所述游戏进程的运行过程中统计渲染子函数被调用的次数和场景内三角形的数量,从而得到包括渲染子函数被调用次数和场景内三角形数量在内的渲染数据的统计结果。通过所述采集子函数在游戏进程运行的过程中即时采集所述渲染数据,摆脱了对渲染数据的采集方法对渲染引擎的依赖,解决了现有技术中采集渲染数据的效率低下和准确度不高的技术问题,有效地提高了手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
参见图3,本发明实施例提供的另一种手机游戏渲染数据的采集方法的流程示意图。该采集方法包括如下步骤S210至步骤S240。
S210、启动待采集的游戏进程。
以运行在安卓系统下的游戏程序为例,可以是通过安卓系统adb shell环境提供的应用启动接口,实现游戏应用程序的自动化启动,从而启动所述游戏进程,如通过脚本执行命令行操作:“adb shell am start NAME”,其中,NAME为游戏应用程序的程序活动名。
S220、将预先定义的自定义渲染函数注入所述游戏进程中。
继续上述举例,参见图4,步骤S220还可以通过包括步骤S221至步骤S227。
S221、在安卓内核提供的ptrace函数中传入所述游戏进程的进程PID。
通过ptrace函数将所述游戏进程变为可被监视和调试的进程,以便后续骤的处理。
S222、通过ARM架构提供的协处理命令,获取所述游戏应用程序的当前线程的线程本地存储的存储地址。
S223、从所述线程本地存储的存储地址中取出渲染图形库的函数跳转表首地址。
其中,所述函数跳转表中存储了所述渲染图形库的所有开放接口的入口地址,上层应用在调用渲染函数时,通过所述函数跳转表跳转到相应的渲染函数。
S224、获取函数glDrawArrays和函数glDrawElements在所述函数跳转表中的偏斜值。
具体地,可以是通过查询所述游戏应用程序对应的渲染图形库的源码中的接口函数定义表,获取函数glDrawArrays和函数glDrawElements在所述接口函数定义表中的接口偏斜值,再将获取到的所述接口偏斜值乘以指针长度,得到函数glDrawArrays和函数glDrawElements在所述函数跳转表中的偏斜值。
S225、根据所述偏斜值,提取函数glDrawArrays和函数glDrawElements在所述函数跳转表中存储的指针地址。
优选地,对所述指针地址进行保存。
S226、根据所述指针地址导入所述自定义渲染函数的渲染子函数。
其中,所述渲染子函数包括第一渲染子函数和第二渲染子函数,所述第一渲染子函数为调用函数glDrawArrays的回调函数,所述第二渲染子函数为调用函数glDrawElements,所述第一渲染子函数和所述第二渲染子函数通过所述指针地址实现对函数glDrawArrays或函数glDrawElements的调用。
S227、将所述函数跳转表中对函数glDrawArrays和函数glDrawElements的指向修改为对所述自定义渲染函数的指向。
通过修改所述函数跳转表中的函数指向,当上层应用通过所述函数跳转表希望调用函数glDrawArrays或函数glDrawElements时,会转而调用所述自定义渲染函数,并由所述第一渲染子函数完成函数glDrawArrays所需完成的渲染工作,并由所述采集子函数进行统计,或是由所述第二渲染子函数完成函数glDrawElements所需完成的渲染工作,并由所述采集子函数进行统计。更优选地,所述采集子函数还可以包括第一采集子函数和第二采集子函数,所述第一采集子函数配合所述第一渲染子函数进行工作,所述第二采集子函数配合所述第二渲染子函数进行工作。
所述采集子函数对函数执行过程中的每一帧的统计数据进行保存。
S230、结束游戏进程,从所述自定义渲染函数中获取统计数据。
继续以运行在安卓系统下的游戏进程为例,可以是通过安卓系统adb shell环境提供的应用关闭接口,实现游戏应用程序的自动化关闭,从而结束所述游戏进程,如通过脚本执行命令行操作:“shell am force-stop NAME”,其中,NAME为游戏应用程序的程序活动名。
S240、获取到的统计数据进行相应的分析,从而得到统计结果。
具体地,可以是分别对渲染子函数被调用的次数和场景中三角形的数量进行显示,以作为统计结果。
优选地,参见图5,步骤S240还可以包括如下步骤S241至步骤S24。
S241、计算获取到的统计数据的不同类型数据的统计参数。
其中,所述获取到的统计数据包括所述采集字函数采集到的每一帧的统计数据;所述不同类型数据包括渲染子函数被调用的次数和场景中三角形的数量;所述统计参数包括累加值、平均值、峰谷值等。
S242、根据计算出的所述统计参数和不同帧的前后顺序,生成相应的图表。
具体地,可以是以不同帧的时间顺序为横轴,以所述统计参数为纵轴,生成所述统计数据变化的走势曲线图,即为渲染数据变化的走势曲线图。
本发明实施例公开的另一种手机游戏渲染数据的采集方法,通过采用包括采集子函数的和渲染子函数的自定义渲染函数代替原有的渲染函数,在启动游戏进程后,由所述渲染子函数正常完成渲染工作,并且所述采集子函数在所述游戏进程的运行过程中统计渲染子函数被调用的次数和场景内三角形的数量,从而得到包括渲染子函数被调用次数和场景内三角形数量在内的渲染数据的统计结果。通过所述采集子函数在游戏进程运行的过程中即时采集所述渲染数据,摆脱了对渲染数据的采集方法对渲染引擎的依赖,解决了现有技术中采集渲染数据的效率低下和准确度不高的技术问题,有效地提高了手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
参见图6,本发明实施例还提供了一种手机游戏渲染数据的采集装置。所述采集装置30包括函数替换模块31、数据获取模块32和统计输出模块33。
所述函数替换模块31,用于将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;所述数据获取模块32,用于获取所述采集子函数进行统计得到的统计数据;所述统计输出模块33,用于根据获取到的所述统计数据,生成相应的统计结果。
所述采集装置30的工作过程如上述任一手机游戏渲染数据的采集方法,在此不作赘述。
本发明实施例公开的一种手机游戏渲染数据的采集装置,通过采用包括采集子函数的和渲染子函数的自定义渲染函数代替原有的渲染函数,在启动游戏进程后,由所述渲染子函数正常完成渲染工作,并且所述采集子函数在所述游戏进程的运行过程中统计渲染子函数被调用的次数和场景内三角形的数量,从而得到包括渲染子函数被调用次数和场景内三角形数量在内的渲染数据的统计结果。通过所述采集子函数在游戏进程运行的过程中即时采集所述渲染数据,摆脱了对渲染数据的采集方法对渲染引擎的依赖,解决了现有技术中采集渲染数据的效率低下和准确度不高的技术问题,有效地提高了手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
本发明实施例还提供了另一种手机游戏渲染数据的采集装置,如图7所示,手机游戏渲染数据的采集装置40包括:处理器41、存储器42以及存储在所述存储器中并可在所述处理器上运行的计算机程序,例如手机游戏渲染数据的采集程序。所述处理器41执行所述计算机程序时实现上述各个采集方法实施例中的步骤,例如图1所示的步骤S120。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块的功能,例如上述实施例中所述的手机游戏渲染数据的采集装置。
示例性的,所述计算机程序可以被分割成一个或多个模块,所述一个或者多个模块被存储在所述存储器42中,并由所述处理器41执行,以完成本发明。所述一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述所述计算机程序在所述手机游戏渲染数据的采集装置40中的执行过程。例如,所述计算机程序可以被分割成函数替换模块、数据获取模块和统计输出模块,各模块具体功能如下:所述函数替换模块,用于将待采集的游戏进程关联的渲染函数替换为自定义渲染函数;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;所述数据获取模块,用于获取所述采集子函数进行统计得到的统计数据;所述统计输出模块,用于根据获取到的所述统计数据,生成相应的统计结果。
所述手机游戏渲染数据的采集装置40可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述手机游戏渲染数据的采集装置40可包括,但不仅限于,处理器41、存储器42。本领域技术人员可以理解,所述示意图仅仅是手机游戏渲染数据的采集装置的示例,并不构成对手机游戏渲染数据的采集装置40的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述手机游戏渲染数据的采集装置40还可以包括输入输出设备、网络接入设备、总线等。
所称处理器41可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,所述处理器41是所述手机游戏渲染数据的采集装置40的控制中心,利用各种接口和线路连接整个手机游戏渲染数据的采集装置40的各个部分。
所述存储器42可用于存储所述计算机程序和/或模块,所述处理器41通过运行或执行存储在所述存储器42内的计算机程序和/或模块,以及调用存储在存储器42内的数据,实现所述手机游戏渲染数据的采集装置40的各种功能。所述存储器42可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器42可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
其中,所述手机游戏渲染数据的采集装置40集成的模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
本发明实施例公开的一种手机游戏渲染数据的采集装置,通过采用包括采集子函数的和渲染子函数的自定义渲染函数代替原有的渲染函数,在启动游戏进程后,由所述渲染子函数正常完成渲染工作,并且所述采集子函数在所述游戏进程的运行过程中统计渲染子函数被调用的次数和场景内三角形的数量,从而得到包括渲染子函数被调用次数和场景内三角形数量在内的渲染数据的统计结果。通过所述采集子函数在游戏进程运行的过程中即时采集所述渲染数据,摆脱了对渲染数据的采集方法对渲染引擎的依赖,解决了现有技术中采集渲染数据的效率低下和准确度不高的技术问题,有效地提高了手机游戏渲染数据采集方法的适用性,提高采集手机游戏渲染数据的工作效率和采集的准确度,从而提高手机渲染开发的工作效率。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
Claims (9)
1.一种手机游戏渲染数据的采集方法,其特征在于,包括步骤:
将待采集的游戏进程关联的渲染函数替换为自定义渲染函数,包括:
将自定义渲染函数的代码注入待采集的游戏进程;
将所述游戏进程与渲染函数的地址关联修改为所述游戏进程与所述自定义渲染函数的地址关联;
所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;
获取所述采集子函数进行统计得到的统计数据;
根据获取到的所述统计数据,生成相应的统计结果。
2.如权利要求1所述的采集方法,其特征在于,所述渲染子函数为调用所述渲染函数的回调函数。
3.如权利要求1所述的采集方法,其特征在于,所述渲染子函数包括对应函数glDrawArrays的第一渲染子函数和对应函数glDrawElements的第二渲染子函数;所述采集子函数包括与所述第一渲染子函数配合的第一采集子函数以及与所述第二渲染子函数配合的第二采集子函数。
4.如权利要求3所述的采集方法,其特征在于,所述第一采集子函数的统计过程包括:
统计从当前帧开始时,所述第一渲染子函数被调用的次数;
根据对当前帧进行渲染需绘制的顶点数量C,统计场景内三角形的数量的统计值增加量A=C-2。
5.如权利要求3所述的采集方法,其特征在于,所述第二采集子函数的统计过程包括:
统计从当前帧开始时,所述第二渲染子函数被调用的次数;
根据对当前帧进行渲染需绘制的绘制类型和顶点数量C,统计场景内三角形的数量的统计值增加量A;绘制类型为GL_POINTS,则A=C*2;绘制类型为GL_LINES/GL_LINE_LOOP/GL_LINE_STRIP,则A=C;绘制类型为GL_TRIANGLES,则A=C/3;绘制类型为GL_TRIANGLES_FAN/GL_TRIANGLES_STRIP,则A=C-2。
6.如权利要求1所述的采集方法,其特征在于,所述采集子函数进行统计得到的统计数据包括被采集的每个帧的渲染子函数被调用的次数和场景内三角形的数量。
7.一种手机游戏渲染数据的采集装置,其特征在于,包括:
函数替换模块,用于将待采集的游戏进程关联的渲染函数替换为自定义渲染函数,包括:将自定义渲染函数的代码注入待采集的游戏进程;将所述游戏进程与渲染函数的地址关联修改为所述游戏进程与所述自定义渲染函数的地址关联;所述自定义渲染函数为预先定义,且包括渲染子函数和采集子函数;所述渲染子函数与所述渲染函数具有相同的输入参数和输出参数,所述采集子函数用于统计所述渲染子函数被调用的次数和统计场景内三角形的数量;
数据获取模块,用于获取所述采集子函数进行统计得到的统计数据;
统计输出模块,用于根据获取到的所述统计数据,生成相应的统计结果。
8.一种手机游戏渲染数据的采集装置,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至6中任意一项所述的手机游戏渲染数据的采集方法。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行如权利要求1至6中任意一项所述的手机游戏渲染数据的采集方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810476312.8A CN108717354B (zh) | 2018-05-17 | 2018-05-17 | 手机游戏渲染数据的采集方法、装置及存储设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810476312.8A CN108717354B (zh) | 2018-05-17 | 2018-05-17 | 手机游戏渲染数据的采集方法、装置及存储设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108717354A CN108717354A (zh) | 2018-10-30 |
CN108717354B true CN108717354B (zh) | 2021-12-17 |
Family
ID=63899856
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810476312.8A Active CN108717354B (zh) | 2018-05-17 | 2018-05-17 | 手机游戏渲染数据的采集方法、装置及存储设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108717354B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109523618B (zh) * | 2018-11-15 | 2022-02-22 | 广东趣炫网络股份有限公司 | 一种3d场景的优化方法、装置、设备及介质 |
CN110362375A (zh) * | 2019-07-11 | 2019-10-22 | 广州虎牙科技有限公司 | 桌面数据的显示方法、装置、设备和存储介质 |
CN111831284B (zh) * | 2020-07-29 | 2023-08-08 | 网易(杭州)网络有限公司 | 渲染调试方法、装置及设备 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6952215B1 (en) * | 1999-03-31 | 2005-10-04 | International Business Machines Corporation | Method and system for graphics rendering using captured graphics hardware instructions |
US20030117398A1 (en) * | 2001-12-21 | 2003-06-26 | Hubrecht Alain Yves Nestor | Systems and methods for rendering frames of complex virtual environments |
US7002586B2 (en) * | 2003-08-29 | 2006-02-21 | Sun Microsystems, Inc. | Method and apparatus for vertex splitting in a graphics system |
JP4157569B2 (ja) * | 2006-05-11 | 2008-10-01 | 株式会社東芝 | 描画装置、描画方法及び描画プログラム |
CN101894363B (zh) * | 2009-05-20 | 2012-06-06 | 新奥特(北京)视频技术有限公司 | 一种面片化的garbage mask边界渲染方法 |
CN102520951B (zh) * | 2011-12-13 | 2014-06-18 | 天津大学 | 基于Flash的三维游戏场景管理系统 |
CN103543998A (zh) * | 2012-07-17 | 2014-01-29 | 上海互基信息科技有限公司 | 基于html5的web3d图形引擎生成方法 |
CN103617027B (zh) * | 2013-10-29 | 2015-07-29 | 合一网络技术(北京)有限公司 | 基于安卓系统的图像渲染引擎构建方法及系统 |
GB2524047A (en) * | 2014-03-12 | 2015-09-16 | Samsung Electronics Co Ltd | Improvements in and relating to rendering of graphics on a display device |
CN105787865B (zh) * | 2016-03-01 | 2018-09-07 | 西华大学 | 基于游戏引擎和gpu并行处理的分形图生成与渲染方法 |
CN106339300A (zh) * | 2016-08-12 | 2017-01-18 | 武汉斗鱼网络科技有限公司 | 一种第三方游戏的fps获取方法及获取系统 |
CN106780698A (zh) * | 2016-12-23 | 2017-05-31 | 深圳市刑天科技开发有限公司 | 基于图形处理器加速的地形渲染方法 |
-
2018
- 2018-05-17 CN CN201810476312.8A patent/CN108717354B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN108717354A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108717354B (zh) | 手机游戏渲染数据的采集方法、装置及存储设备 | |
CN108717393B (zh) | 一种应用程序测试方法及移动终端 | |
CN108721898B (zh) | 帧率的确定方法和装置、存储介质、电子装置 | |
CN108874470B (zh) | 一种信息处理方法及服务器、计算机存储介质 | |
CN105511962A (zh) | 渲染方法和装置 | |
CN111447239A (zh) | 视频流播放控制方法、设备及存储介质 | |
CN110851297B (zh) | 一种接口抖动状态的处理方法、装置、系统及介质 | |
CN111290960B (zh) | 应用程序的流畅度检测方法、装置、终端及存储介质 | |
CN113609101A (zh) | 实时数据任务的发布方法、装置、电子设备及存储介质 | |
WO2021056823A1 (zh) | 系统调用方法、装置和电子设备 | |
CN111708704A (zh) | 一种云真机测试方法、装置、终端及存储介质 | |
CN115061837B (zh) | 一种调度跟踪和获取用户空间调用栈的方法和装置 | |
CN111367799A (zh) | 定位源代码崩溃位置的方法、装置、介质及电子设备 | |
CN114238107A (zh) | 一种跟踪调试方法、系统及计算机可读存储介质 | |
CN113282290A (zh) | 一种对象渲染方法、装置、设备及存储介质 | |
CN113766212A (zh) | 一种视频解码功能的测试方法、测试装置及测试设备 | |
CN112463626A (zh) | 内存泄漏定位方法、装置、计算机设备及存储介质 | |
CN110865937A (zh) | 一种应用测试方法、装置和存储介质 | |
CN112528291B (zh) | 一种基于知识图谱的代码审计方法及装置 | |
CN112370789B (zh) | 模型三角形网格合适度的检测方法及系统 | |
CN116431518B (zh) | 一种基于仿真平台的多层级、多模式软件故障注入方法 | |
CN108628714B (zh) | 移动终端的测试方法及系统 | |
CN112181834B (zh) | 基于gdb调试lua的方法、装置、设备及存储介质 | |
CN113521745B (zh) | Fps游戏的ai模型训练架构的数据存储方法、装置和设备 | |
CN108549553B (zh) | 一种基于三维模型云制作的3ds Max进程守护方法与装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |