一种虚拟现实软件性能测试方法及终端转让专利

申请号 : CN201711383693.7

文献号 : CN108153656B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘德建黄彬曾捷

申请人 : 福建天晴数码有限公司

摘要 :

本发明涉及数据处理领域,尤其涉及一种虚拟现实软件性能测试方法及终端。本发明通过获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;根据所述第一UI对象集合和所述功能状态集合生成测试报告。实现在无源代码的前提下,提高检测出不合理占用内存的纹理资源的准确度。

权利要求 :

1.一种虚拟现实软件性能测试方法,其特征在于,包括:获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;

获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;

根据所述第一UI对象集合和所述功能状态集合生成测试报告;

获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合,具体为:获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合;

从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合;

获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合,具体为:S1、从所述第一UI对象集合中获取一UI对象;

S2、获取所述一UI对象的材质组件;

S3、获取与所述材质组件对应的着色器;

S4、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;

重复执行所述S1至所述S4,直至所述第一UI对象集合被遍历,得到所述功能状态集合;

根据所述第一UI对象集合和所述功能状态集合生成测试报告,具体为:获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;

根据所述第三UI对象集合生成测试报告。

2.根据权利要求1所述的虚拟现实软件性能测试方法,其特征在于,还包括:获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;

设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。

3.一种虚拟现实软件性能测试终端,其特征在于,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;

获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;

根据所述第一UI对象集合和所述功能状态集合生成测试报告;

获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合,具体为:获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合;

从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合;

获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合,具体为:S1、从所述第一UI对象集合中获取一UI对象;

S2、获取所述一UI对象的材质组件;

S3、获取与所述材质组件对应的着色器;

S4、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;

重复执行所述S1至所述S4,直至所述第一UI对象集合被遍历,得到所述功能状态集合;

根据所述第一UI对象集合和所述功能状态集合生成测试报告,具体为:获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;

根据所述第三UI对象集合生成测试报告。

4.根据权利要求3所述的虚拟现实软件性能测试终端,其特征在于,还包括:获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;

设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。

说明书 :

一种虚拟现实软件性能测试方法及终端

技术领域

[0001] 本发明涉及数据处理领域,尤其涉及一种虚拟现实软件性能测试方法及终端。

背景技术

[0002] 随着虚拟现实技术的发展,越来越多的虚拟现实软件出现在人们的生活中。作为虚拟现实软件,沉浸感一直是用户体验的核心。目前,制约用户感官体验的最大因素就是晕动症,而造成晕动症的最直接原因就是虚拟现实软件的卡顿现象。造成卡顿现象的因素很多,其中就包含了软件的性能因素。
[0003] 虚拟现实软件的性能瓶颈一般分为CPU,GPU,内存三大方面,经过长期的实践证明,目前虚拟现实软件市场上,九成的软件都存在着不同程度的内存使用问题。就目前虚拟现实软件而言,内存的主要开销大致上可以分为:引擎自身对于内存的消耗,软件资源对于内存的占用,托管堆内存占用。
[0004] 据统计,在一个较为复杂的虚拟现实项目中,资源对于内存的占用往往占据了总体内存的70%以上,因此资源使用是否合理,往往决定了资源对于内存的占用情况。在Unity3D引擎中,资源类型分别有如下几种:纹理,网格,动画,材质,音频等,其中纹理资源则占据最大内存开销。
[0005] 现有的测试虚拟现实软件中纹理资源占用内存情况的方法为,通过Unity3D引擎内置的Profiler性能分析器,对资源占用的内存数据进行分析,排查出其中占用内存较高的纹理资源。但是,通过Profiler分析器仅仅能够测试出占用内存较大的纹理资源,而无法测试出占用内存小的纹理资源。再者,需要在拥有源代码的情况下才能通过Profiler性能分析器进行测试,而大部分企业无法提供测试人员软件的源代码,导致在黑盒测试时,测试人员无法对虚拟现实软件中纹理资源占用内存情况进行测试。

发明内容

[0006] 本发明所要解决的技术问题是:如何在无源代码的前提下,提高检测出不合理占用内存的纹理资源的准确度。
[0007] 为了解决上述技术问题,本发明采用的技术方案为:
[0008] 本发明提供一种虚拟现实软件性能测试方法,包括:
[0009] 获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;
[0010] 获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;
[0011] 根据所述第一UI对象集合和所述功能状态集合生成测试报告。
[0012] 本发明还提供一种虚拟现实软件性能测试终端,包括一个或多个处理器及存储器,所述存储器存储有程序,并且被配置成由所述一个或多个处理器执行以下步骤:
[0013] 获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;
[0014] 获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;
[0015] 根据所述第一UI对象集合和所述功能状态集合生成测试报告。
[0016] 本发明的有益效果在于:MipMap是一种针对纹理资源的图形图像技术,在Unity3D引擎中,通过开启纹理贴图的MipMap功能能够有效降低渲染带宽的压力,提升虚拟现实软件的渲染效率。然而,开启MipMap功能将会使纹理资源对于内存的占用提高1.33倍。对于虚拟场景中具有较大纵深感的虚拟现实软件来说,3D场景模型和角色一般是需要开启MipMap功能的,但是对于虚拟场景中的UI对象,则是没有必要的。UI对象开启MipMap功能不仅无法提升渲染效率,反而会增加不必要的内存占用。本发明通过检测虚拟现实软件包含的所有UI对象引用的纹理资源的MipMap功能的状态,从而排查出不合理占用内存的纹理资源,实现在无需虚拟现实软件源代码的前提下提高检测出不合理占用内存的纹理资源的准确度,并形成测试报告,有利于开发工程师根据测试报告精准地对特定纹理资源进行处理,从而降低不必要的纹理资源的内存占用,以改善虚拟现实软件的性能。

附图说明

[0017] 图1为本发明提供的一种虚拟现实软件性能测试方法的具体实施方式的流程框图;
[0018] 图2为本发明提供的一种虚拟现实软件性能测试终端的具体实施方式的结构框图;
[0019] 标号说明:
[0020] 1、处理器;     2、存储器。

具体实施方式

[0021] 为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
[0022] 请参照图1以及图2,
[0023] 如图1所示,本发明提供一种虚拟现实软件性能测试方法,包括:
[0024] 获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;
[0025] 获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;
[0026] 根据所述第一UI对象集合和所述功能状态集合生成测试报告。
[0027] 进一步地,获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合,具体为:
[0028] 获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合;
[0029] 从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合。
[0030] 进一步地,还包括:
[0031] 获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;
[0032] 设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。
[0033] 由上述描述可知,关闭UI对象的MipMap功能不仅不影响渲染效率,而且极大程度上减少了相关纹理资源对内存的占用,提高了虚拟现实软件的性能。
[0034] 进一步地,获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合,具体为:
[0035] S1、从所述第一UI对象集合中获取一UI对象;
[0036] S2、获取所述一UI对象的材质组件;
[0037] S3、获取与所述材质组件对应的着色器;
[0038] S4、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;
[0039] 重复执行所述S1至所述S4,直至所述第一UI对象集合被遍历,得到所述功能状态集合。
[0040] 进一步地,根据所述第一UI对象集合和所述功能状态集合生成测试报告,具体为:
[0041] 获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;
[0042] 根据所述第三UI对象集合生成测试报告。
[0043] 由上述描述可知,测试报告中列出虚拟现实软件中所有引用了纹理资源且开启MipMap功能的UI对象,有利于开发工程师根据测试报告精准地对特定纹理资源进行处理,从而降低不必要的纹理资源的内存占用,以改善虚拟现实软件的性能。
[0044] 如图2所示,本发明还提供一种虚拟现实软件性能测试终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:
[0045] 获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合;
[0046] 获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;
[0047] 根据所述第一UI对象集合和所述功能状态集合生成测试报告。
[0048] 进一步地,获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合,具体为:
[0049] 获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合;
[0050] 从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合。
[0051] 进一步地,还包括:
[0052] 获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;
[0053] 设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。
[0054] 进一步地,获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合,具体为:
[0055] S1、从所述第一UI对象集合中获取一UI对象;
[0056] S2、获取所述一UI对象的材质组件;
[0057] S3、获取与所述材质组件对应的着色器;
[0058] S4、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;
[0059] 重复执行所述S1至所述S4,直至所述第一UI对象集合被遍历,得到所述功能状态集合。
[0060] 进一步地,根据所述第一UI对象集合和所述功能状态集合生成测试报告,具体为:
[0061] 获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;
[0062] 根据所述第三UI对象集合生成测试报告。
[0063] 本发明的实施例一为:
[0064] 本实施例提供一种虚拟现实软件性能测试方法,包括:
[0065] S1、获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合。具体为:
[0066] S11、获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合。
[0067] S12、从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合。
[0068] 其中,游戏对象可以称为GameObject,是Unity3D引擎中的一种对象类型,而UI对象则是GameObject类型的对象中被标记为“UI”的对象,Unity3D引擎中每一个对象都有自己的标签,方便识别对象。遍历所有类型为GameObject的对象,通过FindObjectWithTag方法筛选出所有标签类型为UI的游戏对象,这些对象就是当前虚拟场景中所包含的所有UI对象。
[0069] S2、获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;具体为:
[0070] S21、从所述第一UI对象集合中获取一UI对象;
[0071] S22、获取所述一UI对象的材质组件;
[0072] S23、获取与所述材质组件对应的着色器;
[0073] S24、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;
[0074] 重复执行所述S21至所述S24,直至所述第一UI对象集合被遍历,得到所述功能状态集合。
[0075] 其中,Mipmap是一种针对纹理资源的图形图像技术,在Unity3D引擎中,通过开启纹理资源的Mipmap功能能够有效降低渲染带宽的压力,提升虚拟现实软件的渲染效率。然而,开启Mipmap将会使纹理资源对于内存的占用提高1.33倍。对于虚拟场景中具有较大纵深感的虚拟现实软件来说,3D场景模型和角色一般是需要开启Mipmap功能的,但是对于虚拟场景中的UI对象,则是没有必要的。UI对象开启Mipmap功能不仅无法提升渲染效率,反而会增加不必要的内存占用。
[0076] 遍历第一UI对象集合,获取每一个UI对象下的材质组件。材质组件包含了渲染UI对象所需要的纹理贴图和渲染着色相关的配置信息。通过shader方法获取材质组件对应的着色器。着色器是Unity3D引擎中用于处理图形显示的处理流水线,其包含了多个Property(属性),Property中记录了用于图形显示的资源的基本信息。通过GetPropertyType方法函数获取着色器属性的属性类型,并判断属性的属性类型是否属于TexEnv类型(纹理类型),该类型的属性用于存储纹理贴图相关的信息,UI对象所引用的每一张纹理贴图都会在着色器中生成一个对应的TexEnv类型的属性。获取类型为TexEnv类型的属性后,通过name函数读取TexEnv属性的名称信息,这个名称信息就是该属性所对应的纹理贴图的名称,最后调用GetTexture(Texture TextureName),所传递的参数为获取的纹理贴图的名称信息,即可返回对应的纹理资源。再通过调用GenerateMipMaps函数获取纹理资源的MipMaps功能的状态,当返回值为true时,表示MipMaps功能为开启状态;当返回值为fail时,表示MipMaps功能为关闭状态。
[0077] S3、根据所述第一UI对象集合和所述功能状态集合生成测试报告。具体为:
[0078] S31、获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;
[0079] S32、根据所述第三UI对象集合生成测试报告。
[0080] S4、获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。
[0081] 本发明的实施例二为:
[0082] 本实施例提供一种虚拟现实软件性能测试终端,包括一个或多个处理器1及存储器2,所述存储器2存储有程序,并且被配置成由所述一个或多个处理器1执行以下步骤:
[0083] S1、获取与虚拟现实软件对应的所有UI对象,得到第一UI对象集合。具体为:
[0084] S11、获取与虚拟现实软件对应的所有游戏对象,得到游戏对象集合。
[0085] S12、从所述游戏对象集合中获取标签类型为UI的游戏对象,得到第一UI对象集合。
[0086] S2、获取所述第一UI对象集合中每一所述UI对象对应的MipMap功能状态,得到功能状态集合;所述MipMap功能状态包括开启状态和关闭状态;具体为:
[0087] S21、从所述第一UI对象集合中获取一UI对象;
[0088] S22、获取所述一UI对象的材质组件;
[0089] S23、获取与所述材质组件对应的着色器;
[0090] S24、若所述着色器的类型为纹理类型,则:获取与所述着色器对应的纹理资源;获取所述纹理资源的MipMap功能状态;否则:标记与所述一UI对象对应的MipMap功能状态为关闭状态;
[0091] 重复执行所述S21至所述S24,直至所述第一UI对象集合被遍历,得到所述功能状态集合。
[0092] S3、根据所述第一UI对象集合和所述功能状态集合生成测试报告。具体为:
[0093] S31、获取所述第一UI对象集合中MipMap功能状态为开启状态的UI对象,得到第三UI对象集合;
[0094] S32、根据所述第三UI对象集合生成测试报告。
[0095] S4、获取所述测试报告中与开启状态对应的UI对象,得到第二UI对象集合;设置所述第二UI对象集合中每一UI对象的MipMap功能状态为关闭状态。
[0096] 综上所述,本发明提供的一种虚拟现实软件性能测试方法及终端,通过检测虚拟现实软件包含的所有UI对象引用的纹理资源的MipMap功能的状态,从而排查出不合理占用内存的纹理资源,实现在无需虚拟现实软件源代码的前提下提高检测出不合理占用内存的纹理资源的准确度,并形成测试报告,有利于开发工程师根据测试报告精准地对特定纹理资源进行处理,从而降低不必要的纹理资源的内存占用,以改善虚拟现实软件的性能。进一步地,关闭UI对象的MipMap功能不仅不影响渲染效率,而且极大程度上减少了相关纹理资源对内存的占用,提高了虚拟现实软件的性能。进一步地,测试报告中列出虚拟现实软件中所有引用了纹理资源且开启MipMap功能的UI对象,有利于开发工程师根据测试报告精准地对特定纹理资源进行处理,从而降低不必要的纹理资源的内存占用,以改善虚拟现实软件的性能。
[0097] 以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。