虚拟现实技术中纹理贴图配置信息的获取方法、存储介质技术

技术编号:17408840 阅读:30 留言:0更新日期:2018-03-07 06:03
本发明专利技术提供一种虚拟现实技术中纹理贴图配置信息的检测方法、存储介质,方法包括:获取当前虚拟场景中所有物件对象;获取应用程序下名称为着色器工具的程序集;遍历程序集中所有的方法函数,建立字典;获取材质组件;获取各材质组件对应的属性数据组;获取所述属性数据组中各属性对应的类型;获取类型为纹理的属性;获取所述属性引用的纹理贴图对应的最大纹理尺寸和纹理格式。本发明专利技术能够实现基于项目源代码的全自动化检测;且采用C#的反射机制进行数据获取,解决了源代码编译发布的问题。

Acquisition method and storage medium of texture map configuration information in virtual reality technology

The invention provides a detection method, texture mapping configuration information in virtual reality technology storage medium, method: get all the current object in the virtual scene; get the application name for the shader tools assembly; assembly traversal function, all the way to build a dictionary; get the material component property data to obtain the group; the material component types; obtain the the attribute data set corresponding to the type of access; texture properties; maximum texture size and texture mapping to obtain the corresponding attribute references the physical format. The invention realizes full-automatic detection based on the source code of the project, and adopts the reflection mechanism of C# to acquire data, so as to solve the problem of source code compilation and publication.

【技术实现步骤摘要】
虚拟现实技术中纹理贴图配置信息的获取方法、存储介质
本专利技术涉及虚拟现实
,具体说的是一种虚拟现实技术中纹理贴图配置信息的检测方法、存储介质。
技术介绍
随着虚拟现实技术的发展,越来越多的虚拟现实软件出现在人们的生活中。作为虚拟现实软件,沉浸感一直是用户体验的核心。目前,影响用户沉浸感的因素有很多,而虚拟世界图像的逼真度就是众多因素的其中之一。造成虚拟现实软件场景图像清晰度模糊的最直接原因就是软件场景贴图的分辨率不足,难以提供用户逼真的画质体验。而造成软件贴图分辨率不足的因素很多,在假设设计人员提供了分辨率质量较高的贴图的情况下,在开发引擎中,对于贴图属性的不合理配置也将导致贴图失真,从而降低虚拟现实软件带给用户的逼真度体验。目前虚拟现实软件测试领域缺少对于软件纹理贴图分辨率相关属性配置的检测方案。常规的基于Unity3D开发引擎的纹理贴图的测试方法,一般是通过手工测试的方式进行,测试人员需要获取项目工程的源代码,并在工程文件中找到用于存放纹理贴图的工程文件夹,该文件夹在Unity项目中仅仅用于纹理贴图资源的存放。测试人员找到该文件夹后,需要通过鼠标左键点击文件夹中的贴图来获取该纹理贴图的属性信息,这些属性信息会在Unity引擎右侧的检视面板中显示。目前主要影响纹理贴图分辨率相关的配置属性分别为MaxSize(最大分辨率,该属性用于限制Unity3D引擎导入的贴图的分辨率大小),Format(格式,改属性能够设置纹理的格式)。MaxSize属性用于限制导入纹理贴图的最大尺寸。当纹理贴图资源的原始分辨率小于MaxSize设置的最大尺寸时,开发引擎将默认使用贴图的原始尺寸;当纹理贴图资源的原始分辨率大于MaxSize设置的最大尺寸时,开发引擎会对图片分辨率进行压缩处理,这将导致纹理贴图出现失真,模糊的现象。由于虚拟现实软件对于贴图资源的分辨率具有较高的要求,贴图的分辨率一般不低于2048*2048,因此,在测试过程中,需要检查MaxSize的配置不应小于2048。Format属性用于设置该纹理贴图使用的内部表现格式。它包含了三种类型,分别是:Compressed、16bit,以及Truecolor。其中,Compressed表示压缩的RGB纹理,这是漫反射贴图最长的格式,每个像素占4bits;假设一张贴图的分辨率为256*256,则该纹理将占用32Kb的内存。16bit表示低质量的真彩显示,每个像素占16bits。Truecolor表示真彩画质,这是最高的图像质量,假设一张贴图的分辨率为256*256,则该纹理将占用256Kb的内存。由于目前主流的虚拟现实外接式头盔显示设备对于硬件的要求都比较高,所以虚拟现实软件可以适当的忽略由于高质量的图像会占用更多的内存对性能产生的影响。一般采用Truecolor这个配置来提高贴图的质量。测试人员通过手工匹配这些参数的方式对虚拟现实软件的贴图资源的属性配置进行检查,从而排除引擎配置原因对于纹理贴图质量的影响。但是,现有的上述纹理贴图相关配置参数的检测方式存在以下问题:只能通过手工测试的方式来完成,当需要检测的纹理贴图资源较多时,需要消耗大量的时间成本和人力成本;在测试完成时,需要手工对测试数据进行记录存储以及数据的分析,并且无法自动生成测试报告,这些在测试末期都会占用较多的时间成本。
技术实现思路
本专利技术所要解决的技术问题是:提供一种基于Unity3D开发引擎的虚拟现实技术的纹理贴图分辨率相关配置信息的检测方法,实现基于项目源代码的全自动化检测。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,包括:S1:接收纹理贴图配置信息检测请求;S2:获取当前虚拟场景中所有物件对象;S3:获取应用程序下名称为着色器工具的程序集;S4:遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,建立字典;S5:遍历所述所有物件对象下的组件列表,获取其中所有的材质组件;S6:依据所述字典,以获得所有属性构成的数据组所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取各材质组件对应的属性数据组;S7:依据所述字典,以获得属性的类型信息所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取所述属性数据组中各属性对应的类型;S8:遍历所述属性数据组,获取类型为纹理的属性;S9:获取所述属性引用的纹理贴图对应的最大纹理尺寸和纹理格式。本专利技术提供的另一个技术方案为:一种计算机可读存储介质,其上存储有计算机测试程序,在接收纹理贴图配置信息检测请求后,处理器调用所述计算机测试程序实现以下步骤:S1:接收纹理贴图配置信息检测请求;S2:获取当前虚拟场景中所有物件对象;S3:获取应用程序下名称为着色器工具的程序集;S4:遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,建立字典;S5:遍历所述所有物件对象下的组件列表,获取其中所有的材质组件;S6:依据所述字典,以获得所有属性构成的数据组所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取各材质组件对应的属性数据组;S7:依据所述字典,以获得属性的类型信息所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取所述属性数据组中各属性对应的类型;S8:遍历所述属性数据组,获取类型为纹理的属性;S9:获取所述属性引用的纹理贴图对应的最大纹理尺寸和纹理格式。本专利技术的有益效果在于:区别于现有技术如果需要检测材质的纹理贴图分辨率相关的配置,只能通过手工测试的方式来完成,当需要检测的纹理贴图资源较多时,需要消耗大量的时间成本和人力成本。本专利技术提供一个全自动化的纹理贴图配置检测的实现方案,通过本专利技术,可以大幅度降低在配置检测环节的人力投入和时间成本投入,并且避免了在检测环节出现检测误差的风险,一定程度上解放了人工劳动力并且提高了检测的效率。进一步的,测试程序采用C#的反射机制获取对应接口的数据,而非通过引用Unity3D的Editor类实现,因此还解决了源代码无法编译发布的问题。附图说明图1为本专利技术一种基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法的流程示意图;图2为本专利技术实施例一的检测方法流程示意图;图3为本专利技术实施例二的检测方法流程示意图;图4为本专利技术实施例二中测试框架与虚拟现实软件基于Socket通信的原理图。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:通过执行测试程序实现自动化检测,且采用C#的反射机制进行数据获取,解决了源代码编译发布的问题。本专利技术涉及的技术术语解释:请参照图1以及图2,本专利技术提供一种基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,包括:S1:接收纹理贴图配置信息检测请求;S2:获取当前虚拟场景中所有物件对象;S3:获取应用程序下名称为着色器工具的程序集;S4:遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,建立字典;S5:遍历所述所有物件对本文档来自技高网
...
虚拟现实技术中纹理贴图配置信息的获取方法、存储介质

【技术保护点】
一种基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,包括:S1:接收纹理贴图配置信息检测请求;S2:获取当前虚拟场景中所有物件对象;S3:获取应用程序下名称为着色器工具的程序集;S4:遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,建立字典;S5:遍历所述所有物件对象下的组件列表,获取其中所有的材质组件;S6:依据所述字典,以获得所有属性构成的数据组所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取各材质组件对应的属性数据组;S7:依据所述字典,以获得属性的类型信息所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取所述属性数据组中各属性对应的类型;S8:遍历所述属性数据组,获取类型为纹理的属性;S9:获取所述属性引用的纹理贴图对应的最大纹理尺寸和纹理格式。

【技术特征摘要】
1.一种基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,包括:S1:接收纹理贴图配置信息检测请求;S2:获取当前虚拟场景中所有物件对象;S3:获取应用程序下名称为着色器工具的程序集;S4:遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,建立字典;S5:遍历所述所有物件对象下的组件列表,获取其中所有的材质组件;S6:依据所述字典,以获得所有属性构成的数据组所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取各材质组件对应的属性数据组;S7:依据所述字典,以获得属性的类型信息所对应的函数名为key,获取对应的方法体,并通过调用所获取的方法体获取所述属性数据组中各属性对应的类型;S8:遍历所述属性数据组,获取类型为纹理的属性;S9:获取所述属性引用的纹理贴图对应的最大纹理尺寸和纹理格式。2.如权利要求1所述的基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,还包括:S10:读取所述纹理贴图的名称信息,建立所述名称信息与对应的最大纹理尺寸和纹理格式的关联关系;S11:依据所述关联关系,与标准库中的标准最大纹理尺寸和标准纹理格式进行对比,得到对比信息。3.如权利要求2所述的基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,所述S11之后,还包括:S12:依据预设的格式获取所有纹理贴图的对比信息;S13:调用报告接口,依据所获取的对比信息生成对应的测试报表。4.如权利要求1所述的基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,所述S2之后,S3之前,还包括:S01:声明一个物件对象类型的数据组,存储所述所有物件对象;S02:声明一个key类型为字符串、Value类型为MethodInfo类的字典。5.如权利要求4所述的基于Unity3D引擎的虚拟现实技术中纹理贴图配置信息的检测方法,其特征在于,所述S4具体为:依据反射机制遍历所述程序集中所有的方法函数,以遍历到的方法函数的函数名为key、方法函数对应的方法体为Value,依次存储至所述字典中。6.如权利要求1所述的基于Unity3D引擎的虚拟现实技术...

【专利技术属性】
技术研发人员:刘德建黄彬林志宏钟开华陈萍曾捷
申请(专利权)人:福建天晴数码有限公司
类型:发明
国别省市:福建,35

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

1