CN108287791A - 虚拟现实软件的纹理资源配置的检测方法及存储介质 - Google Patents
虚拟现实软件的纹理资源配置的检测方法及存储介质 Download PDFInfo
- Publication number
- CN108287791A CN108287791A CN201810044463.6A CN201810044463A CN108287791A CN 108287791 A CN108287791 A CN 108287791A CN 201810044463 A CN201810044463 A CN 201810044463A CN 108287791 A CN108287791 A CN 108287791A
- Authority
- CN
- China
- Prior art keywords
- resource
- texture
- virtual reality
- reality software
- server
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3692—Test management for test results analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Image Generation (AREA)
Abstract
本发明公开了一种虚拟现实软件的纹理资源配置的检测方法及存储介质,方法包括:获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;若所述对象中的一对象包含材质组件,则将所述一对象中的材质组件实例化,得到材质对象;若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源;获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态。本发明可方便有效地帮助开发人员对纹理资源的性能进行排查,避免纹理资源对于内存的不合理占用,以改善虚拟现实软件的质量,且可节省人力资源,降低人工成本。
Description
技术领域
本发明涉及虚拟现实技术领域,尤其涉及一种虚拟现实软件的纹理资源配置的检测方法及存储介质。
背景技术
随着虚拟现实技术的发展,越来越多的虚拟现实软件出现在人们的生活中。作为虚拟现实软件,沉浸感一直是用户体验的核心。目前,制约用户感官体验的最大因素就是晕动症,而造成晕动症的最直接原因就是虚拟现实软件的卡顿现象。造成卡顿现象的因素很多,其中就包含了软件的性能因素。
软件的性能瓶颈一般分为CPU、GPU、内存三大方面,经过长期的实践证明,目前虚拟现实软件市场上,九成的软件都存在着不同程度的内存使用问题。就目前虚拟现实软件而言,内存的主要开销大致上可以分为:引擎自身对于内存的消耗,软件资源对于内存的占用,托管堆内存占用。
据统计,在一个较为复杂的虚拟现实项目中,资源对于内存的占用往往占据了总体内存的70%以上,因此资源使用是否合理,往往决定了资源对于内存的占用情况。在Unity3D引擎中,资源类型分别有如下几种:纹理,网格,动画,材质,音频等等,其中纹理资源则是占据最大内存开销。
影响纹理资源内存开销增大的因素有很多,而纹理资源的读取与写入功能就是影响因素之一。纹理资源的检视面板中包含了一个名为ReadWrite enable(是否启用读取与写入权限)的属性,这个属性就是用于控制读取与写入功能的开关。读取与写入功能实质是决定纹理资源的存放位置是在内存上还是在显存上。如果支持读取与写入,那么纹理资源既在显存上,又在内存上,并且还必须是非压缩的格式(例如:ARGB32等),这样就导致纹理资源的内存占用增大了一倍。一般情况下,纹理资源的读取与写入功能默认是处于关闭状态,但是在实际的基于Unity3D引擎开发的虚拟现实项目中,又经常会遇到有部分纹理资源的该功能处于开启状态,这样就会造成不必要的内存开销。
现有技术中,一般是采用基于黑盒测试方法的纹理资源读取与写入配置检测方法,测试人员通过Unity3D内置的Profiler性能分析器,对资源占用的内存数据进行分析,排查出其中占用内存较高的并且资源类型为texture的资源,由于虚拟现实软件中资源存放方式分为两种,一种是存放在项目的本地目录中,一种则是存放在资源服务器上;当黑盒测试人员获取到占用内存较高的纹理资源后,需要在开发人员的配合下,确定这些纹理资源中,哪些属于本地资源,哪些属于从资源服务器动态加载的资源。由于动态加载的资源存放在服务器中,黑盒测试人员无法直接对这些资源进行检测,所以排除这些存放在资源服务器上的资源。最终确定下来的就是占用内存较高的本地纹理资源,这些资源同样需要在开发人员的配合下对纹理资源的配置进行检测,判断是否开启了读取与写入功能。
但上述方法存在以下缺点:
缺点1、通过Profiler分析器仅仅能够定位到哪些纹理资源占用内存较大,但是占用内存较小的纹理资源也可能开启了读取与写入功能,这样的对于资源的定位方式可能会存在遗漏。其次通过黑盒测试的方式对资源进行配置检查的话,将无法检查到存放于资源服务器上的纹理资源,并且只能通过手工的方式进行检测,当需要检测的资源数量较多的时候,相当的耗时耗力。
缺点2、不论是通过Profiler分析器获取内存占用较高的纹理资源,还是对项目的本地纹理资源进行配置检查,都需要在拥有源代码的情况下才能进行,而大部分企业无法提供测试人员软件的源代码。导致在黑盒测试时,测试人员无法对纹理资源的读取与写入配置进行检测。
缺点3、对于一个完成的测试流程而言,不仅需要获取需要的测试数据,还需要将测试数据整合成测试报告,如果通过人力进行这些步骤,必然需要消耗更多的成本。
发明内容
本发明所要解决的技术问题是:提供一种虚拟现实软件的纹理资源配置的检测方法及存储介质,可方便有效地对虚拟现实软件的纹理资源的读取与写入的配置进行检测。
为了解决上述技术问题,本发明采用的技术方案为:一种虚拟现实软件的纹理资源配置的检测方法,包括:
获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;
若所述对象中的一对象包含材质组件,则将所述一对象中的材质组件实例化,得到材质对象;
若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源;
获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态。
本发明还涉及一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
本发明的有益效果在于:通过同时获取虚拟现实软件本地资源以及资源服务器中的游戏对象类型的对象,不仅可对本地资源中的纹理贴图资源进行读取与写入功能配置的检测,也可对资源服务器中的纹理贴图资源进行读取与写入功能配置的检测,同时,通过对所有游戏对象类型的对象所引用的资源进行是否为纹理贴图资源的判断,可定位到所有的纹理贴图资源,避免遗漏,提高检测的全面性;通过获取并记录纹理贴图资源的纹理资源信息,可排查出所有开启了读取与写入功能的纹理贴图资源,从而使虚拟现实软件降低内存占用,提高软件的性能质量。本发明可方便有效地帮助开发人员对纹理资源的性能进行排查,避免纹理资源对于内存的不合理占用,以改善虚拟现实软件的质量,且可节省人力资源,降低人工成本。
附图说明
图1为本发明一种虚拟现实软件的纹理资源配置的检测方法的流程图;
图2为本发明实施例一的方法流程图;
图3为本发明实施例二的方法流程图;
图4为本发明实施例三的通信原理示意图。
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图详予说明。
本发明最关键的构思在于:先获取虚拟现实软件本地资源和资源服务器上数据类型为游戏对象类型的对象,然后获取这些对象中所包含的材质组件,在这些材质组件所依赖的资源中获取纹理贴图资源,最后对这些纹理贴图资源的读取与写入功能的配置进行检测。
请参阅图1,一种虚拟现实软件的纹理资源配置的检测方法,包括:
获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;
若所述对象中的一对象包含材质组件,则将所述一对象中的材质组件实例化,得到材质对象;
若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源;
获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态。
从上述描述可知,本发明的有益效果在于:可方便有效地帮助开发人员对纹理资源的性能进行排查,避免纹理资源对于内存的不合理占用,且可节省人力资源,降低人工成本。
进一步地,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”具体为:
获取虚拟现实软件本地资源中数据类型为游戏对象类型的对象;
当监听到虚拟现实软件发送了资源加载请求时,截取资源服务器返回的资源数据;
对所截取的资源数据进行解压缩,并提取解压文件中数据类型为游戏对象类型的对象。
由上述描述可知,通过同时获取虚拟现实软件本地资源以及资源服务器中的游戏对象类型的对象,不仅可对本地资源中的纹理贴图资源进行读取与写入功能配置的检测,也可对资源服务器中的纹理贴图资源进行读取与写入功能配置的检测。
进一步地,所述“得到材质对象”之后,进一步包括:
将所述材质对象存储到第一数组中。
由上述描述可知,便于后续对材质对象的遍历判断以及后续的其他处理。
进一步地,所述“若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源”具体为:
收集所述材质对象所依赖的资源的资源基本信息,所述资源基本信息包括唯一标识符和资源类型;
若所述资源的资源类型为纹理贴图类型,则根据所述唯一标识符获取所述资源的资源路径,并根据所述资源路径获取到纹理贴图资源。
进一步地,所述“收集所述材质对象所依赖的资源的资源基本信息”之后,进一步包括:
将所述材质对象与其所依赖的资源的资源基本信息进行关联,并将关联得到的依赖关系存储至第二数组中。
由上述描述可知,将依赖关系存储起来,便于后续的其他处理。
进一步地,所述“获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态”具体为:
获取所述纹理贴图资源的读取与写入功能的启动状态;
记录所述启动状态为开启的纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称、资源路径、读取与写入功能的启动状态以及记录时间。
由上述描述可知,通过记录已开启读取与写入功能的纹理贴图资源的纹理资源信息,可排查出所有开启了读取与写入功能的纹理贴图资源,从而可使虚拟现实软件降低内存占用,提高软件的性能质量。
进一步地,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”之前,进一步包括:
在虚拟现实软件中构建服务端,并创建服务端套接字;
在外部的测试框架中构建客户端,并创建客户端套接字;
客户端根据所述服务端的IP地址和端口号,向服务端发送连接请求;
服务端接收所述连接请求后,建立与客户端的通信连接;
客户端发送配置检测请求至服务端。
由上述描述可知,基于C/S结构,通过客户端Socket与服务端Socket之间的通信,实现测试框架与虚拟现实软件间的数据交互。
进一步地,所述“获取并记录纹理贴图资源的纹理资源信息”之后,进一步包括:
服务端将所述纹理贴图信息返回至客户端;
客户端根据所述纹理贴图信息,生成测试报告。
由上述描述可知,可自动根据纹理贴图信息生成测试报告,节约时间和人工成本。
本发明还提出了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现如上所述的步骤。
实施例一
请参照图2,本发明的实施例一为:一种虚拟现实软件的纹理资源配置的检测方法,可运用与对虚拟现实软件的纹理资源的读取与写入功能的配置检测,包括如下步骤:
S11:获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;也就是说,既获取虚拟现实软件本地资源中的数据类型为游戏对象类型的对象,也获取资源服务器中数据类型为游戏对象类型的对象。
具体地,通过FindObjectWithType函数获取虚拟现实软件本地资源中,所有数据类型为GameObject的对象。而对于资源服务器中的对象,则先通过HttpListener创建一个Http监听器,该监听器用于监听从www类发送的请求,当监听器监听到www类发送了资源加载请求的时候,通过所监听的www类的实例化对象(www类在进行请求以后,返回的资源数据会被存储在www类的实例化对象中),截取到资源服务器返回的资源数据,这些数据由assetBundle构成(assetBundle是Unity3D引擎提供的资源的聚合包,通过将符合规则的资源进行合并打包,从而提高资源的加载效率)。对截取的assetBundle进行解压缩,提取解压文件中所有数据类型为GameObject的对象。
S12:判断所获取的对象中是否存在包含材质组件的对象,若是,则执行步骤S13。具体地,遍历所有获取的数据类型为GameObject的对象,通过GetComponent<Material>()方法(GetComponent<Material>()可以理解为用于获取组件的方法函数,这里的Material为组件的类型,该方法即获取材质类型的组件的方法)判断对象是否包含Material(材质)组件,材质组件包含了渲染对象所需要的纹理贴图和渲染着色相关的配置信息。
S13:将包含材质组件的对象中的材质组件实例化,得到材质对象。如果对象包含Material(材质)组件,则将材质组件实例化,进一步地,将实例化后的材质对象存储到第一数组中。当所有获取的GameObject类型的对象都完成上述判断后,执行步骤S14。
S14:收集所述材质对象所依赖的资源的资源基本信息,所述资源基本信息包括唯一标识符和资源类型。
具体地,调用引擎的编辑器工具类(该类提供了多种便于开发者进行开发工作的类函数)提供的CollectDependencies函数,该函数用于计算并收集指定对象集合(这里指定对象集合指上述第一数组中存储的材质对象)所依赖的资源列表,资源列表包括了材质对象所依赖的资源的资源基本信息,资源基本信息包括唯一标识符和资源类型,还可以包括资源名称等信息,其中,唯一标识符可以为唯一的实例id,用于资源的识别;资源类型可以通过GetType函数进行获取;资源名称可以通过name函数进行获取。
进一步地,将所述材质对象与其所依赖的资源的资源基本信息进行关联,并将关联得到的依赖关系存储至第二数组中。也就是说,依赖关系中记录了材质组件所引用的资源的相关信息,通过获取依赖关系可以方便后续通过依赖关系中包含的资源路径去获取到对应的资源。
S15:判断所述资源的资源类型是否为纹理贴图类型,即是否为Texture2D(Texture2D为2D纹理贴图),若是,即若所述材质对象所依赖的资源中的一资源的资源类型为Texture2D,则表示该资源为纹理贴图资源,执行步骤S16,。
S16:根据所述唯一标识符获取所述资源的资源路径,并根据所述资源路径获取到纹理贴图资源;具体地,调用资源数据库提供的GetAssetPath函数,通过向该函数传递资源对象的实例id,即可获取指定资源的路径,再通过调用资源数据库提供的LoadAssetAtPath函数就能加载到指定资源路径的资源对象。
S17:获取并记录纹理贴图资源的纹理资源信息;具体地,通过调用isReadable{get;set;}函数获取纹理贴图资源的读取与写入功能的启动状态,当返回值为true时,表示读取与写入功能已开启;当返回值为fail时,表示读取与写入功能已关闭;然后记录开启了读取与写入功能的纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称、资源路径、读取与写入功能的启动状态以及记录时间,此处的记录时间指的是记录信息的时间点。
本实施例可方便有效地帮助开发人员对纹理资源的性能进行排查,避免纹理资源对于内存的不合理占用,以改善虚拟现实软件的质量,且可节省人力资源,降低人工成本。
实施例二
请参照图3,本实施例是实施例的进一步拓展,相同之处不再累述,区别在于,步骤S11之前,还包括如下步骤:
S01:在虚拟现实软件中构建服务端,并创建服务端套接字;
S02:在外部的测试框架中构建客户端,并创建客户端套接字;
S03:客户端根据所述服务端的IP地址和端口号,向服务端发送连接请求;
S04:服务端接收所述连接请求后,建立与客户端的通信连接;
S05:客户端发送配置检测请求至服务端。所述配置检测请求中还可以包括调用指令,根据调用指令调用对应实施例一方法的检测流程进行纹理资源的读取与写入功能的检测。
进一步地,在步骤S17得到纹理资源信息后,服务端将所述纹理贴图信息返回至客户端;客户端根据所述纹理贴图信息,生成测试报告。进一步地,服务端先通过DataContractJsonSerializer类对纹理贴图信息进行序列化,转化为json格式的数据,再返回给客户端,客户端进行解析处理,并将解析后的数据存储到数据库中,该数据库用于存储生成测试报告所需要的数据信息,后续可提取数据库数据生成对应的测试报告。
在本实施例中,测试程序(即实施例一的方法对应的程序)和服务端可以通过挂载的方式集成在虚拟现实软件中,在软件运行时创建服务端Socket,在外部的测试框架中创建客户端Socket。服务端Socket监听来自客户端Socket的连接请求,开启阻塞模式直到客户端发来连接请求。测试框架通过服务端的IP地址和端口号向服务端Socket发送连接请求。在建立通信连接后,发送纹理资源的读取与写入配置检测请求,请求数据中包含了调用指令。服务端Socket接收到检测请求后,调用测试程序进行检测,然后将获取的数据返回给测试框架。测试框架会对返回数据进行解析,并进行数据的存储,在调用报告接口后,读取数据库中的数据,生成测试报表。
本实施例基于C/S结构,通过客户端Socket与服务端Socket之间的通信,实现测试框架与虚拟现实软件间的数据交互。
实施例三
本实施例是对应上述实施例的一具体应用场景。
本实施例的通信原理如图4所示。虚拟现实软件启动时,挂载的脚本组件分别调用socket()创建TCP套接口,bind()绑定地址和端口,listen()转换主动套接口为被动套接口完成初始化服务器,并阻塞等待客户端的连接请求。
测试框架在完成客户端Socket初始化后,通过服务器的地址和端口,调用connect()向服务器发送连接请求,并阻塞等待服务器应答。服务器回复应答并阻塞等待客户端发送请求数据后,客户端同样回复一个连接成功的应答,此时客户端和服务器建立通信连接。
完成测试框架与虚拟现实软件之间的通信连接后,从测试框架发送纹理资源的读取与写入功能配置检测请求,挂载在软件上的服务端Socket接收到请求后,调用测试程序进行纹理资源的名称信息和对应的读取与写入功能启动状态信息的采集。期间,测试框架的客户端Socket阻塞等待服务器应答。测试程序完成数据的采集和统计后,通过Socket服务端将检测结果发送给测试框架的客户端Socket。客户端调用close()向服务端Socket发送中断连接请求,服务端Socket接收到请求后,中断连接。
其中,测试程序被调起后,在程序初始化时申明一个(对象)Object类型的数组,该数组用于存放所有的材质对象。再申明一个(对象)Object类型的数组,该数组用于存放所有的依赖关系。通过HttpListener创建一个Http监听器,该监听器会对虚拟现实软件场景中的资源加载行为进行监控,当www类向资源服务器发送资源加载请求时,测试程序会对响应的资源数据进行拦截,在Unity引擎中,资源数据一般以AssetBundle(资源包)的形式进行加载。当测试程序完成资源拦截后,会对资源包进行解压缩处理,压缩后的文件包含了音频文件、动画文件、游戏对象、纹理贴图等等,然后获取其中类型为GameObject的资源,当获取到从资源服务器上加载下来的GameObjec类型的资源后,还需要通过FindObjectsWithType函数获取到类型为GameObject的本地资源。
遍历所有获取的类型为GameObject的资源对象,通过GetComponent函数判断资源对象是否包含Material组件。如果对象包含Material组件,则将材质组件实例化并进行存储。完成所有资源对象的遍历后,调用引擎的编辑器工具类提供的CollectDependencies函数对所存储的所有材质对象的资源依赖关系进行计算和收集,并返回收集的材质对象的资源依赖信息,其中包含了资源的实例id、类型信息等。将返回的信息数据存储到数组中,遍历该数组,获取数组中每一个依赖资源的类型,筛选出所有类型为Texture2D的依赖资源信息。调用资源数据库提供的GetAssetPath函数,通过向该函数传递类型为Texture2D的依赖资源对象的实例id,即可获取指定资源的路径。再通过调用资源数据库提供的LoadAssetAtPath函数就能加载到指定资源路径的资源对象,即所有引用的纹理贴图资源。最后调用isReadable函数获取纹理资源的读取与写入功能的启动状态,当返回值为true时,表示读取与写入功能已开启;当返回值为fail时,表示读取与写入功能已关闭。最后记录开启了读取与写入功能的纹理资源信息,这些信息包含了纹理贴图的名称,纹理贴图资源的路径,读取与写入功能的启动状态以及数据记录的时间。通过自动化的方式很大程度上节约了测试和开发人员对于纹理资源的读取与写入功能进行配置检测的成本。
进一步地,服务端Socket返回json数据格式的数据组给测试框架的客户端Socket,并通过JsonConvert类的DeserializeObject函数对包含了数据组的json字符串进行反序列化处理。解析后的数据中包含了资源名称、是否启动了读取与写入功能以及数据的统计,这些数据直接决定了纹理贴图资源是否存在不必要的内存占用。测试框架完成测试数据的存储后,会自动调用报告接口,从而自动生成对应的测试报告,避免了测试报告的人工编写,节约了人力成本。
实施例四
本实施例是对应上述实施例的一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现以下步骤:
获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;
若所述对象中的一对象包含材质组件,则将所述一对象中的材质组件实例化,得到材质对象;
若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源;
获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态。
进一步地,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”具体为:
获取虚拟现实软件本地资源中数据类型为游戏对象类型的对象;
当监听到虚拟现实软件发送了资源加载请求时,截取资源服务器返回的资源数据;
对所截取的资源数据进行解压缩,并提取解压文件中数据类型为游戏对象类型的对象。
进一步地,所述“得到材质对象”之后,进一步包括:
将所述材质对象存储到第一数组中。
进一步地,所述“若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源”具体为:
收集所述材质对象所依赖的资源的资源基本信息,所述资源基本信息包括唯一标识符和资源类型;
若所述资源的资源类型为纹理贴图类型,则根据所述唯一标识符获取所述资源的资源路径,并根据所述资源路径获取到纹理贴图资源。
进一步地,所述“收集所述材质对象所依赖的资源的资源基本信息”之后,进一步包括:
将所述材质对象与其所依赖的资源的资源基本信息进行关联,并将关联得到的依赖关系存储至第二数组中。
进一步地,所述“获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态”具体为:
获取所述纹理贴图资源的读取与写入功能的启动状态;
记录所述启动状态为开启的纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称、资源路径、读取与写入功能的启动状态以及记录时间。
进一步地,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”之前,进一步包括:
在虚拟现实软件中构建服务端,并创建服务端套接字;
在外部的测试框架中构建客户端,并创建客户端套接字;
客户端根据所述服务端的IP地址和端口号,向服务端发送连接请求;
服务端接收所述连接请求后,建立与客户端的通信连接;
客户端发送配置检测请求至服务端。
进一步地,所述“获取并记录纹理贴图资源的纹理资源信息”之后,进一步包括:
服务端将所述纹理贴图信息返回至客户端;
客户端根据所述纹理贴图信息,生成测试报告。
综上所述,本发明提供的一种虚拟现实软件的纹理资源配置的检测方法及存储介质,通过同时获取虚拟现实软件本地资源以及资源服务器中的游戏对象类型的对象,不仅可对本地资源中的纹理贴图资源进行读取与写入功能配置的检测,也可对资源服务器中的纹理贴图资源进行读取与写入功能配置的检测,同时,通过对所有游戏对象类型的对象所引用的资源进行是否为纹理贴图资源的判断,可定位到所有的纹理贴图资源,避免遗漏,提高检测的全面性;通过获取并记录纹理贴图资源的纹理资源信息,可排查出所有开启了读取与写入功能的纹理贴图资源,从而使虚拟现实软件降低内存占用,提高软件的性能质量。本发明可方便有效地帮助开发人员对纹理资源的性能进行排查,避免纹理资源对于内存的不合理占用,以改善虚拟现实软件的质量,且可节省人力资源,降低人工成本。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (9)
1.一种虚拟现实软件的纹理资源配置的检测方法,其特征在于,包括:
获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象;
若所述对象中的一对象包含材质组件,则将所述一对象中的材质组件实例化,得到材质对象;
若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源;
获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态。
2.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”具体为:
获取虚拟现实软件本地资源中数据类型为游戏对象类型的对象;
当监听到虚拟现实软件发送了资源加载请求时,截取资源服务器返回的资源数据;
对所截取的资源数据进行解压缩,并提取解压文件中数据类型为游戏对象类型的对象。
3.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“得到材质对象”之后,进一步包括:
将所述材质对象存储到第一数组中。
4.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“若所述材质对象所依赖的资源为纹理贴图资源,则获取纹理贴图资源”具体为:
收集所述材质对象所依赖的资源的资源基本信息,所述资源基本信息包括唯一标识符和资源类型;
若所述资源的资源类型为纹理贴图类型,则根据所述唯一标识符获取所述资源的资源路径,并根据所述资源路径获取到纹理贴图资源。
5.根据权利要求4所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“收集所述材质对象所依赖的资源的资源基本信息”之后,进一步包括:
将所述材质对象与其所依赖的资源的资源基本信息进行关联,并将关联得到的依赖关系存储至第二数组中。
6.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“获取并记录纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称以及读取与写入功能的启动状态”具体为:
获取所述纹理贴图资源的读取与写入功能的启动状态;
记录所述启动状态为开启的纹理贴图资源的纹理资源信息,所述纹理资源信息包括资源名称、资源路径、读取与写入功能的启动状态以及记录时间。
7.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“获取虚拟现实软件和资源服务器中数据类型为游戏对象类型的对象”之前,进一步包括:
在虚拟现实软件中构建服务端,并创建服务端套接字;
在外部的测试框架中构建客户端,并创建客户端套接字;
客户端根据所述服务端的IP地址和端口号,向服务端发送连接请求;
服务端接收所述连接请求后,建立与客户端的通信连接;
客户端发送配置检测请求至服务端。
8.根据权利要求1所述的虚拟现实软件的纹理资源配置的检测方法,其特征在于,所述“获取并记录纹理贴图资源的纹理资源信息”之后,进一步包括:
服务端将所述纹理贴图信息返回至客户端;
客户端根据所述纹理贴图信息,生成测试报告。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-8任一项所述的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044463.6A CN108287791B (zh) | 2018-01-17 | 2018-01-17 | 虚拟现实软件的纹理资源配置的检测方法及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810044463.6A CN108287791B (zh) | 2018-01-17 | 2018-01-17 | 虚拟现实软件的纹理资源配置的检测方法及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108287791A true CN108287791A (zh) | 2018-07-17 |
CN108287791B CN108287791B (zh) | 2021-02-26 |
Family
ID=62835232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810044463.6A Active CN108287791B (zh) | 2018-01-17 | 2018-01-17 | 虚拟现实软件的纹理资源配置的检测方法及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108287791B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344126A (zh) * | 2018-09-12 | 2019-02-15 | 网易(杭州)网络有限公司 | 贴图的处理方法、装置、存储介质和电子装置 |
CN109741430A (zh) * | 2018-12-28 | 2019-05-10 | 北京金山安全软件有限公司 | 动画实例创建方法、装置、设备及存储介质 |
CN110109687A (zh) * | 2019-04-26 | 2019-08-09 | 腾讯科技(成都)有限公司 | 应用安装包生成方法及装置 |
CN117234701A (zh) * | 2023-07-31 | 2023-12-15 | 上海数禾信息科技有限公司 | 策略迭代方法、装置、计算机设备和存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
US20050017983A1 (en) * | 2003-02-20 | 2005-01-27 | Liao Qun Feng | Approximation of level of detail calculation in cubic mapping without attribute delta function |
US7158143B2 (en) * | 2004-12-03 | 2007-01-02 | Via Technologies, Inc. | Fast algorithm for anisotropic texture sampling |
CN102799456A (zh) * | 2012-07-24 | 2012-11-28 | 上海晨思电子科技有限公司 | 一种游戏引擎加载资源文件的方法、装置和计算机 |
CN105233498A (zh) * | 2015-09-23 | 2016-01-13 | 网易(杭州)网络有限公司 | 游戏角色染色方法、装置、用户终端及游戏系统 |
CN105303600A (zh) * | 2015-07-02 | 2016-02-03 | 北京美房云谷网络科技有限公司 | 一种使用虚拟现实眼镜查看3d数字楼盘的方法 |
WO2016195648A1 (en) * | 2015-05-31 | 2016-12-08 | Hewlett Packard Enterprise Development Lp | Testing applications using virtual reality |
CN106970875A (zh) * | 2017-03-01 | 2017-07-21 | 福建天晴数码有限公司 | 虚拟现实软件的帧率测试方法及其系统 |
-
2018
- 2018-01-17 CN CN201810044463.6A patent/CN108287791B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6529909B1 (en) * | 1999-08-31 | 2003-03-04 | Accenture Llp | Method for translating an object attribute converter in an information services patterns environment |
US20050017983A1 (en) * | 2003-02-20 | 2005-01-27 | Liao Qun Feng | Approximation of level of detail calculation in cubic mapping without attribute delta function |
US7158143B2 (en) * | 2004-12-03 | 2007-01-02 | Via Technologies, Inc. | Fast algorithm for anisotropic texture sampling |
CN102799456A (zh) * | 2012-07-24 | 2012-11-28 | 上海晨思电子科技有限公司 | 一种游戏引擎加载资源文件的方法、装置和计算机 |
WO2016195648A1 (en) * | 2015-05-31 | 2016-12-08 | Hewlett Packard Enterprise Development Lp | Testing applications using virtual reality |
CN105303600A (zh) * | 2015-07-02 | 2016-02-03 | 北京美房云谷网络科技有限公司 | 一种使用虚拟现实眼镜查看3d数字楼盘的方法 |
CN105233498A (zh) * | 2015-09-23 | 2016-01-13 | 网易(杭州)网络有限公司 | 游戏角色染色方法、装置、用户终端及游戏系统 |
CN106970875A (zh) * | 2017-03-01 | 2017-07-21 | 福建天晴数码有限公司 | 虚拟现实软件的帧率测试方法及其系统 |
Non-Patent Citations (2)
Title |
---|
WHATCHACHA: "Unity里获取Material里所有的Texture", 《HTTPS://BLOG.CSDN.NET/U010153703/ARTICLE/DETAILS/39474787?UTM_SOURCE=TUICOOL&UTM_MEDIUM=REFERRAL》 * |
纸箱猪: "Unity+NGUI性能优化方法总结", 《HTTPS://BLOG.CSDN.NET/ZZXIANG1985/ARTICLE/DETAILS/43339273》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109344126A (zh) * | 2018-09-12 | 2019-02-15 | 网易(杭州)网络有限公司 | 贴图的处理方法、装置、存储介质和电子装置 |
CN109741430A (zh) * | 2018-12-28 | 2019-05-10 | 北京金山安全软件有限公司 | 动画实例创建方法、装置、设备及存储介质 |
CN110109687A (zh) * | 2019-04-26 | 2019-08-09 | 腾讯科技(成都)有限公司 | 应用安装包生成方法及装置 |
CN117234701A (zh) * | 2023-07-31 | 2023-12-15 | 上海数禾信息科技有限公司 | 策略迭代方法、装置、计算机设备和存储介质 |
CN117234701B (zh) * | 2023-07-31 | 2024-06-07 | 上海数禾信息科技有限公司 | 策略迭代方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN108287791B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108287791A (zh) | 虚拟现实软件的纹理资源配置的检测方法及存储介质 | |
CN109302522A (zh) | 测试方法、装置以及计算机系统和介质 | |
WO2021003818A1 (zh) | 接口测试用例生成方法、装置、计算机设备及存储介质 | |
CN107659455B (zh) | 一种iOS端Mock数据的方法、存储介质、设备及系统 | |
CN110750458A (zh) | 大数据平台测试方法、装置、可读存储介质及电子设备 | |
CN113868126A (zh) | 应用调试方法、装置、设备的存储介质 | |
CN112328458B (zh) | 基于flink数据引擎的数据处理方法、装置 | |
CN111045879B (zh) | 压力测试报告的生成方法、装置及存储介质 | |
CN109344066A (zh) | 一种浏览器页面的测试方法、系统及终端 | |
CN107748715B (zh) | 基于Unity的纹理贴图配置信息检测方法及其系统 | |
CN109739704A (zh) | 一种接口测试方法、服务端及计算机可读存储介质 | |
CN111221721A (zh) | 一种单元测试案例自动化录制和执行方法及装置 | |
CN110442407A (zh) | 应用程序的处理方法及装置 | |
CN108763052A (zh) | 一种虚拟现实软件内存回收机制的性能检测方法及系统 | |
WO2023193633A1 (zh) | 图像分析方法、装置、计算机设备以及存储介质 | |
CN108170592B (zh) | 一种虚拟现实软件性能的远程测试方法及终端 | |
CN107767434B (zh) | 虚拟现实技术中纹理贴图配置信息的获取方法、存储介质 | |
CN108304230B (zh) | 调整应用属性的实现方法、装置及可读存储介质 | |
CN115509913A (zh) | 软件自动化测试方法、装置、机器可读介质及设备 | |
CN108563578A (zh) | Sdk兼容性检测方法、装置、设备及可读存储介质 | |
CN114238140A (zh) | 一种准入测试方法及装置 | |
CN112306848B (zh) | 微服务系统的架构视图生成方法及装置 | |
CN109062797A (zh) | 生成信息的方法和装置 | |
CN117271371B (zh) | 性能测试方法、装置、计算机设备及存储介质 | |
CN108549603A (zh) | 测试方案生成方法、装置、计算机设备及存储介质 |
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 |