1.本发明涉及计算机技术领域,尤其涉及一种虚拟场景的检查方法、装置及存储介质。
背景技术:
2.虚拟场景,例如游戏中的场景资源,往往制作比较复杂。以游戏场景资源为例,在游戏的运行过程中,玩家角色的朝向面经常会出现大量的构建场景资源所需要到的网格三角形、几何体、以及需要进行大量渲染操作等。由于这些场景绘制数据会影响游戏帧率,降低用户体验,因此,亟需提供一种方法来对虚拟场景的绘制数据进行检测分析,以对虚拟场景的场景制作进行优化和改进。
技术实现要素:
3.本技术实施例通过提供一种虚拟场景的检查方法、装置及存储介质,以提供一种有效的对虚拟场景的绘制数据进行检测分析的方法,以对虚拟场景的场景制作进行优化和改进。
4.第一方面,本技术提供一种虚拟场景的检查方法,该方法包括:
5.对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;
6.控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;
7.对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
8.可选地,所述确定所述每个体素坐标所对应的场景绘制数据集合,包括:基于预设方向,确定所述每个体素坐标在所述预设方向上的场景绘制数据集合;
9.在所述预设方向包括多个时,所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:对每个预设方向上获取到的所述n个体素对应的场景绘制数据集合进行分析,得到所述每个预设方向上的场景检查结果。
10.可选地,所述预设方向包括以下方向中的至少一种:所述虚拟场景对应的空间坐标系中的横轴正方向、所述空间坐标系中的横轴负方向、所述空间坐标系中的纵轴正方向以及所述空间坐标系中的纵轴负方向。
11.可选地,所述对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,包括:按照预设采集层数对所述目标区域进行体素采集,获得每个预设采集层中的至少一个体素以及对应的体素坐标;
12.所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:对所述每个预设采集层中的至少一个体素对应的场景绘制数据集合进行分析,得到与所述每个预设采集层对应的场景检查结果。
13.可选地,所述每个体素对应的场景绘制数据集合中均包括m种数据类型的绘制数据,m为正整数,所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:
14.基于所述m种数据类型,从所述n个体素对应的场景绘制数据集合中筛选出每种数据类型下的绘制数据;
15.确定与每种数据类型对应的色彩图像中的色彩通道,并将所述每种数据类型以及对应的色彩通道分别作为目标数据类型以及目标色彩通道,执行以下色彩图像生成步骤:针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据;在所述色彩图像中确定出与该体素的体素坐标对应的目标像素点,并将所述目标色彩数据存储到所述目标像素点对应的所述目标色彩通道中;
16.对生成的色彩图像进行分析,得到所述场景检查结果。
17.可选地,所述针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据,包括:
18.从所述n个体素对应的所述目标数据类型下的绘制数据中,筛选出所述目标数据类型对应的绘制数据最大值、绘制数据最小值,以及获取所述目标色彩通道的色彩数据最大值、色彩数据最小值;
19.针对所述每个体素,获取该体素对应的目标数据类型下的绘制数据,并对该体素对应的目标数据类型下的绘制数据、所述绘制数据最大值、所述绘制数据最小值、所述色彩最大值以及色彩数据最小值进行插值处理,得到该体素映射到所述目标色彩通道的目标色彩数据。
20.可选地,所述每个体素对应的场景绘制数据集合中包括以下绘制数据中的至少一种:与所述虚拟摄像机的当前视角对应的所述虚拟场景的渲染次数、所述虚拟场景对应的静态网格数量、所述虚拟场景对应的几何体数量、绘制所述虚拟场景对应的内存占用量。
21.可选地,所述对生成的色彩图像进行分析,得到所述场景检查结果,包括:
22.确定所述色彩图像中每个像素点的颜色值;
23.确定出颜色值大于预设颜色值的至少一个像素点,并确定所述至少一个像素点对应的体素坐标,以及将所述目标区域中与所述至少一个像素点对应的体素坐标所在的区域作为所述虚拟场景的热点区域,其中,所述场景检查结果包括所述热点区域。
24.第二方面,本技术还提供一种虚拟场景的检查装置,包括:
25.体素采集模块,用于对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;
26.绘制数据获取模块,用于控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;
27.处理模块,用于对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
28.第三方面,本发明实施例提供一种虚拟场景的检查装置,包括有存储器,以及一个或者多个的程序,其中一个或者多个的程序存储于存储器中,且经配置以由一个或者多个的处理器执行所述一个或者多个的程序所包含的用于进行如第一方面提供的虚拟场景的检查方法对应的操作指令。
29.第四方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如第一方面提供的虚拟场景的检查方法对应的步骤。
30.本技术实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
31.本技术实施例中的方案,通过对虚拟场景的目标区域进行体素采集,获得与虚拟场景对应的n个体素以及每个体素位于虚拟场景中的体素坐标;控制虚拟摄像机按照每个体素坐标对目标区域进行遍历,确定每个体素坐标对应的场景绘制数据集合;对n个体素对应的场景绘制数据集合进行分析,得到虚拟场景的场景检查结果。本技术中的方案,通过获取虚拟场景中的体素,逐个体素确定对应的场景绘制数据集合,实现了获取场景绘制数据集合的自动化,提高了数据获取效率,同时,基于每个体素的场景绘制数据集合进行分析,能够基于场景检查结果确定出虚拟场景中的性能热点所在区域,即性能消耗较大的区域,以在后续的场景制作过程中对其进行优化。
附图说明
32.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
33.图1为本技术实施例中一种虚拟场景的检查方法的流程图;
34.图2为本技术实施例中一种虚拟场景的检查装置的结构图;
35.图3为本技术实施例中一种虚拟场景的检查装置的结构图;
36.图4为本技术实施例中一种虚拟场景的检查装置作为服务器时的结构图。
具体实施方式
37.本技术实施例通过提供一种虚拟场景的检查方法、装置及存储介质,以提供一种有效的对虚拟场景的绘制数据进行检测分析的方法。
38.本技术实施例的技术方案总体思路如下:对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
39.本技术中的方案,通过获取虚拟场景中的体素,逐个体素确定对应的场景绘制数据集合,实现了获取场景绘制数据集合的自动化,提高了数据获取效率,同时,基于每个体素的场景绘制数据集合进行分析,能够基于场景检查结果确定出虚拟场景中的性能热点所在区域(或称为待优化区域),即性能消耗大于预设阈值的区域,以在后续的场景制作过程中对其进行优化。
40.为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
41.首先说明,本文中出现的术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三
种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
42.本说明书实施例提供了一种虚拟场景的检查方法,如图1所示,该方法包括以下步骤:
43.步骤s101:对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;
44.步骤s102:控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;
45.步骤s103:对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
46.本说明书实施例中的方案,可以应用于能够对虚拟场景执行检测分析的终端设备中,例如智能手机、平板电脑。在应用于终端设备中时,本说明书实施例提供的方案可以通过安装在终端设备中的插件来实现,例如,该插件可以为设置在游戏引擎中的插件。另外,本说明书实施例提供的方案也可以应用于对虚拟场景执行检测分析的服务器中,还可以应用于由终端设备和服务器组成的系统中,这里不做限定。
47.步骤s101中,虚拟场景可以为游戏中的游戏场景,例如,对于游戏x来说,可以对应有多个关卡场景,本说明书实施例中的虚拟场景可以为游戏x中的任意关卡场景,虚拟场景的数量可以是一个或多个,这里不做限定。
48.在对虚拟场景进行体素采集时,可以对虚拟场景中的目标区域进行体素采集,目标区域可以是虚拟场景中的指定区域,也可以是虚拟场景的全部区域,这里不做限定。以目标区域为虚拟场景中的指定区域为例,可以先获取目标区域的区域坐标,该区域坐标可以是用户手动输入的(例如,输入目标区域的起始坐标以及终止坐标),也可以是预先设置好的默认坐标,还可以是对虚拟场景进行区域识别得到的。在一个实施例中,以虚拟场景为游戏场景为例,目标区域可以为玩家可行走的区域,例如,虚拟场景为峡谷场景,可行走区域为峡谷中的小路,则可以将该条小路作为目标区域。
49.在确定了体素采集的目标区域后,可以基于体素尺寸,对虚拟场景的目标区域进行体素划分,以得到目标区域划分出来的n个体素,作为虚拟场景对应的n个体素,其中,体素的尺寸大小可以根据实际需要进行设置,这里不做限定。同时,在获得n个体素的同时,还可以确定每个体素位于虚拟场景中的体素坐标,即获得与n个体素一一对应的n个体素坐标。
50.进一步的,在采集到虚拟场景对应的体素之后,可以执行步骤s102,获取每个体素坐标下的场景绘制数据集合。其中,场景绘制数据集合包括但不限于以下数据中的至少一种:虚拟摄像机的当前视角对应的所述虚拟场景的渲染次数、所述虚拟场景对应的静态网格数量、所述虚拟场景对应的几何体数量、绘制所述虚拟场景对应的内存占用量。其中,渲染次数可以为meshdrawcalls数量(即cpu调用底层图形绘制接口命令gpu执行渲染操作的次数),静态网格数量可以为staticmeshtriangles数量(即静态网格三角形数,表示屏幕所有三角形的数量),几何体数量可以为processedprimitives数量,内存占用量可以为usedphysical。
51.需要说明的是,虚拟摄像机所处的体素坐标不同,需要绘制的虚拟场景也是不同的,以及虚拟摄像机在同一体素坐标下,若虚拟摄像机的朝向不同,需要绘制的虚拟场景也
是存在区别的,因此,本说明书实施例中,在采集场景绘制数据集合时,需要基于虚拟摄像机的当前视角来进行采集。
52.本说明书实施例中,为了便于说明,以场景绘制数据集合包括上述四种绘制数据为例来进行说明。那么针对每个体素,在该体素坐标下以虚拟摄像机的当前视角绘制虚拟场景时,会记录对应的meshdrawcalls数量、staticmeshtriangles数量、processedprimitives数量、以及usedphysical,这四种数据构成该体素对应的场景绘制数据集合。
53.在获取到每个体素的场景绘制数据集合之后,可以通过步骤s103对场景绘制数据集合进行分析。在一个实施例中,可以对场景绘制数据集合进行热点分析,热点分析的目的是为了确定虚拟场景中性能消耗较大的区域,性能消耗大的区域有可能会出现卡顿、掉帧等情况,通过热点分析确定出性能消耗大的区域可以有效的帮助制作人员对虚拟场景进行优化和改进。
54.本说明书实施例中,对场景绘制数据集合的具体分析方式可以根据实际需要进行设置,这里不做限定。例如,针对每种绘制数据,确定出绘制数据满足预设数据范围的体素所在区域,将这些区域作为用于表征热点区域的场景检查结果。以分析meshdrawcalls数量为例,基于与n个体素分别对应的n个meshdrawcalls数量,可以从n个体素中筛选出meshdrawcalls数量大于阈值的体素,将这些体素的所在区域认为是性能消耗较大的区域,并将其作为场景检查结果。
55.可见,通过本说明书实施例提供的方案,能够有效的获取每个体素对应的场景绘制数据集合,并对绘制数据集合进行分析,确定出虚拟场景中性能消耗较大的区域,以便于在后续的游戏制作过程中对其进行优化,从而提升用户的游戏体验。
56.进一步的,对于游戏场景来说,当玩家的视角不同,对应的游戏场景的绘制数据也会存在差异。由于玩家的不同视角对应于游戏场景的不同朝向,因此,本说明书实施例中,可以基于不同的方向来采集绘制数据集合。在具体实施过程中,步骤s102可以通过以下方式来实现:基于预设方向,确定所述每个体素坐标在所述预设方向上对应的场景绘制数据集合。相应的,步骤s103具体可通过以下方式来实现:对每个预设方向上获取到的所述n个体素对应的场景绘制数据集合进行分析,得到所述每个预设方向上的场景检查分析结果。
57.预设方向可以包括但不限于以下方向中的至少一种:所述虚拟场景对应的空间坐标系中的横轴正方向、所述空间坐标系中的横轴负方向、所述空间坐标系中的纵轴正方向以及所述空间坐标系中的纵轴负方向。具体来讲,以虚拟场景为游戏场景为例,虚拟场景对应的空间坐标系的纵轴正方向、纵轴负方向、横轴负方向以及横轴正方向可以分别对应玩家所控制的游戏角色的前、后、左、右方向。
58.进一步的,仍以游戏场景为例,在采集绘制数据时,可以通过游戏场景中的虚拟摄像机逐个方向对每个体素进行遍历。举例来讲,在预设方向包括上述四种方向时,可以控制虚拟摄像机先沿横轴正方向遍历每个体素坐标,以采集横轴正方向对应的场景绘制数据集合,再依次采集横轴负方向、纵轴正方向、纵轴负方向上每个体素坐标对应的场景绘制数据集合。当然,也可以遍历所有体素的体素坐标,在虚拟摄像机位于每个体素坐标处时,可以控制虚拟摄像机分别拍摄四个方向上的场景,以采集每个体素坐标下对应的四个方向上的场景绘制数据集合。
59.本说明书实施例中,除了获取每个方向上的场景绘制数据集合之外,针对每个体素来说,还可以将每个体素在所有方向上获取到的绘制数据进行求和,得到每个体素对应的总体绘制数据集合。具体来讲,对于一个体素来说,在该体素的体素坐标下分别采集上述四个方向所对应的绘制数据集合,例如,以采集meshdrawcalls数量为例,在该体素坐标下沿横轴正方向采集到的meshdrawcalls数量为a、沿横轴负方向采集到的meshdrawcalls数量为b、沿纵轴正方向采集到的meshdrawcalls数量为c、沿纵轴负方向采集到的meshdrawcalls数量为d,则该体素对应的总体meshdrawcalls数量为a、b、c、d的和。以同样的方式可以确定出其他绘制数据对应的总体绘制数据,这样便得到了每个体素对应的总体绘制数据集合。当然,在计算总体绘制数据时,除了将各个方向上的绘制数据进行求和计算,还可以通过其他方式来确定总体绘制数据,例如计算各个方向上的绘制数据的平均值、或者将各个方向上的绘制数据进行加权平均等,这里不做限定。
60.通过上述方式,可以获得每个体素沿多个方向以及总体的场景绘制数据集合,进一步的,可以将每个方向以及总体的场景绘制数据进行存储,以便后续对场景绘制数据集合进行分析处理。本说明书实施例中,在存储场景绘制数据集合时,可以基于每个体素的体素坐标进行存储。举例来讲,以沿横轴正方向采集到的场景绘制数据集合为例,对于体素a来说,体素a的体素坐标为(x,y),那么可以将体素a对应的沿横轴正方向采集到的场景绘制数据集合存储在(x,y)坐标中,通过这种方式可以最终得到按照每个体素的体素坐标进行场景绘制数据集合存储的图片。当然,也可以通过其他方式对场景绘制数据集合进行存储,这里不做限定。
61.进一步的,在采集到每个预设方向上的场景绘制数据集合后,针对每个预设方向上的场景绘制数据集合,均可以进行数据分析,得到每个预设方向对应的场景检查结果,例如,进行热点分析,以检查每个预设方向上的虚拟场景的性能消耗情况。
62.本说明书实施例中,在游戏的场景资源中,可能存在高度不同的多个可行走点。举例来讲,游戏场景中存在梯子,玩家可以执行攀爬梯子的操作,对于梯子来说,其对应的横纵坐标是不变的,但是在竖坐标(z坐标)下,存在高度不同的多个可行走点。考虑到不同高度下的可行走点,本说明书实施例中,步骤s101可以通过以下方式实现:按照预设采集层数对所述目标区域进行体素采集,获得每个预设采集层中的至少一个体素以及对应的体素坐标。对应的,步骤s103可以通过以下方式实现:对所述每个预设采集层中的至少一个体素对应的场景绘制数据集合进行分析,得到与所述每个预设采集层对应的场景检查结果。
63.具体来讲,预设采集层数可以是用户手动输入的(例如5层、6层等),也可以是默认的层数,不同的预设采集层对应的高度不同,即对应的z坐标不同。在进行体素采集时,针对每个预设采集层,均可以按照体素尺寸进行体素划分,得到每个预设采集层下的至少一个体素,以及对应的体素坐标。进一步的,针对每个预设采集层下的体素,还可以依次按照预设方向进行绘制数据集合的采集,那么就可以得到每个预设采集层下与每个预设方向对应的场景绘制数据集合。
64.对应的,在包含有多个预设采集层的情况下进行热点分析时,可以针对每个预设采集层分别进行数据分析。举例来讲,对于预设采集层1来说,确定预设采集层1包含的体素,并获取每个体素对应的场景绘制数据集合;对每个体素对应的场景绘制数据集合进行分析,得到预设采集层1对应的场景检查结果。当然,在存在多个预设方向时,针对每个预设
采集层,基于不同预设方向对应的场景绘制数据集合进行分析,得到该预设采集层中不同预设方向对应的场景检查结果。
65.需要说明的是,对场景绘制数据集合的分析方式可以根据实际需要进行设置,为了便于说明,下面对其中的一种分析方式进行说明。在具体实施过程中,
66.基于所述m种数据类型,从所述n个体素对应的场景绘制数据集合中筛选出每种数据类型下的绘制数据;确定每种数据类型对应的色彩图像中的色彩通道,并将所述每种数据类型以及对应的色彩通道分别作为目标数据类型以及目标色彩通道,执行以下色彩图像生成步骤:针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据;在所述色彩图像中确定出与该体素的体素坐标对应的目标像素点,并将所述目标色彩数据存储到所述目标像素点对应的所述目标色彩通道中;对生成的色彩图像进行分析,得到所述场景检查结果
67.具体来讲,m可以根据实际需要进行设定,仍沿用上面的例子,每个体素对应的场景绘制数据集合中均包含有以下4种数据类型的绘制数据:meshdrawcalls数量、staticmeshtriangles数量、processedprimitives数量、usedphysical。将每种类型的绘制数据映射到色彩图像中的一种色彩通道中,且每种类型的绘制数据对应的色彩通道互不相同。
68.举例来讲,将上述4种类型的绘制数据分别映射到rgba色彩空间下的色彩通道中,其中,可以将meshdrawcalls数量映射到r(red)通道中、将staticmeshtriangles数量映射到g(green)通道中、将processedprimitives数量映射到b(blue)通道中、usedphysical映射到a(alpha)通道中。当然,每种类型的绘制数据对应的色彩通道可以根据实际需要进行选择,也可以选择其他色彩空间中的色彩通道,这里不做限定。
69.在具体实施过程中,将每种类型下的绘制数据映射到对应的色彩通道中,可以通过以下方式实现:从所述n个体素对应的所述目标数据类型下的绘制数据中,筛选出所述目标数据类型对应的绘制数据最大值、绘制数据最小值,以及获取所述目标色彩通道的色彩数据最大值、色彩数据最小值;针对所述每个体素,获取该体素对应的目标数据类型下的绘制数据,并对该体素对应的目标数据类型下的绘制数据、所述绘制数据最大值、所述绘制数据最小值、所述色彩最大值以及色彩数据最小值进行插值处理,得到该体素映射到所述目标色彩通道的目标色彩数据。
70.具体来讲,以绘制数据为staticmeshtriangles数量为例,由于n个体素中对应的绘制数据集合中均包含有staticmeshtriangles数量,因此,可以将每个体素对应的staticmeshtriangles数量筛选出来,这样就得到n个staticmeshtriangles数量。从n个staticmeshtriangles数量中确定出最大值以及最小值,例如,staticmeshtriangles数量的最大值为p,最小值为q。与staticmeshtriangles数量对应的色彩通道为g通道,g通道的色彩数据的范围为0~255,则g通道的色彩数据最大值为255,色彩数据最小值为0。那么将p映射到g通道后的色彩数据即为255,q映射到g通道后的色彩数据即为0,对于位于p~q之间的数据,通过插值计算将其映射到0~255之间的色彩数据中,通过这种方式,可以将staticmeshtriangles数量转换为g通道中的色彩数据。进一步的,针对每个体素的坐标,可以在色彩图像中确定出该体素坐标所对应的目标像素点,将该体素映射到g通道中的目标色彩数据存储到目标像素点的g通道中。通过同样的方式,将每种类型下的绘制数据分别映
射到色彩图像中的其他色彩通道中,这样,就可以将绘制数据的分布情况通过色彩图像来表现。
71.在得到生成的色彩图像后,根据色彩图像的色调就可以直观的观察到虚拟场景的性能消耗的热点区域。对于meshdrawcalls数量、staticmeshtriangles数量、processedprimitives数量、usedphysical这四种绘制数据来说,数值越大,表明性能消耗越大,那么在色彩图像中,色彩数据值越高,色彩数据值越高,即色彩图像中色彩越鲜艳的区域性能消耗越大。
72.本说明书实施例中,具体可以采用以下步骤对生成的色彩图像进行热点分析:确定所述色彩图像中每个像素点的颜色值;确定颜色值大于预设颜色值的至少一个像素点,并确定所述至少一个像素点对应的体素坐标,以及将所述目标区域中与所述至少一个像素点对应的体素坐标所在的区域作为所述虚拟场景的热点区域,其中,所述场景检查结果包括所述热点区域。
73.在具体实施过程中,预设颜色值可以根据实际需要进行设定,针对每个色彩通道,可以均对应有各自的预设颜色值,或者,预设颜色值为所有色彩通道对应的总的预设颜色值,这里不做限定。其中,在每个色彩通道对应有各自的预设颜色值时,针对每个像素点来说,可以将该像素点对应的每个色彩通道的色彩数据分别作为每个色彩通道的颜色值,然后将每个色彩通道的颜色值分别与对应的预设颜色值进行比较。在预设颜色值为总的颜色值时,针对每个像素点来说,可以将该像素点对应的所有色彩通道的色彩数据进行加权平均,作为该像素点的总的颜色值,并与总的预设颜色值进行比较。当颜色值大于预设颜色值时,则说明该像素点对应的体素所在区域为虚拟场景中的性能消耗较大的热点区域。
74.进一步的,在确定热点区域的过程中,先确定出颜色值大于预设颜色值的至少一个像素点,由于像素点与虚拟场景中的体素存在映射关系,即像素点在色彩图像中的像素点坐标,与对应的体素在虚拟场景中的体素坐标存在映射关系。那么可以根据像素点坐标在虚拟场景中确定出对应的体素坐标,将这些体素坐标所构成的区域作为虚拟场景的热点区域,并将热点区域作为场景检查结果进行反馈。
75.需要说明的是,对于不同的预设方向以及不同的预设采集层,均可以生成对应的色彩图像。这样,在对色彩图像进行显示时,可以根据用户需求显示对应的色彩图像。举例来讲,当用户需要查看特定预设采集层的性能消耗时,可以确定出特定预设采集层对应的色彩图像,当特定预设采集层对应有多个预设方向时,还可以根据用户对预设方向的选择操作,对应展示用户选中的预设方向下的色彩图像。
76.本说明书实施例中的方案,可以通过上述色彩图像直观的观察到热点区域,为了方便用户在实际的游戏场景中确定上述热点区域,可以通过以下步骤实现色彩图像到游戏场景的跳转:在游戏运行过程中,若接收到对色彩图像的像素点的点击操作,基于点击操作点击的像素点的坐标,确定与像素点的坐标相对应的体素坐标,并将虚拟场景定位到该体素坐标处。
77.具体来讲,虚拟场景为游戏场景,在游戏运行的过程中,如果用户想要了解热点区域对应的具体是游戏场景的哪个区域,可以点击色彩图像上颜色值较高的像素点,由于色彩图像上的像素点对应有虚拟场景中的体素坐标,因此,在用户点击了色彩图像上的像素点之后,可以跳转到游戏场景中对应的体素坐标处。
78.在一个实施例中,由于不同的预设方向对应有不同的色彩图像,如果用户对其中一个预设方向上的色彩图像进行点击时,例如,点击了左侧方向对应的色彩图像上的某个像素点时,相应的,在跳转到游戏场景中时,游戏场景中的虚拟摄像机跳转到该像素点的位置,并且虚拟摄像机的拍摄视角在该像素点处朝向左侧,从而根据虚拟摄像机拍摄的游戏场景进一步的对该视角下的游戏场景进行检查。
79.可见,通过本说明书实施例中的方案,能够直观的确定虚拟场景中性能消耗的情况,对于游戏制作人员来说,能够基于色彩图像能够很快的发现虚拟场景需要优化的位置所在,从而更快的对游戏进行优化和改善。
80.基于同一发明构思,本说明书实施例还提供一种虚拟场景的检查装置,如图2所示,该装置包括:
81.体素采集模块201,用于对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;
82.绘制数据获取模块202,用于控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;
83.处理模块203,用于对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
84.可选地,绘制数据获取模块202,用于基于预设方向,确定所述每个体素坐标在所述预设方向上的场景绘制数据集合;
85.在所述预设方向包括多个时,处理模块203,用于对每个预设方向上获取到的所述n个体素对应的场景绘制数据集合进行分析,得到所述每个预设方向上的场景检查结果。
86.可选地,所述预设方向包括以下方向中的至少一种:所述虚拟场景对应的空间坐标系中的横轴正方向、所述空间坐标系中的横轴负方向、所述空间坐标系中的纵轴正方向以及所述空间坐标系中的纵轴负方向。
87.可选地,体素采集模块201,用于按照预设采集层数对所述目标区域进行体素采集,获得每个预设采集层中的至少一个体素以及对应的体素坐标;
88.处理模块203,用于对所述每个预设采集层中的至少一个体素对应的场景绘制数据集合进行分析,得到与所述每个预设采集层对应的场景检查结果。
89.可选地,所述每个体素对应的场景绘制数据集合中均包括m种数据类型的绘制数据,m为正整数,处理模块203,用于:
90.基于所述m种数据类型,从所述n个体素对应的场景绘制数据集合中筛选出每种数据类型下的绘制数据;
91.确定与每种数据类型对应的色彩图像中的色彩通道,并将所述每种数据类型以及对应的色彩通道分别作为目标数据类型以及目标色彩通道,执行以下色彩图像生成步骤:针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据;在所述色彩图像中确定出与该体素的体素坐标对应的目标像素点,并将所述目标色彩数据存储到所述目标像素点对应的所述目标色彩通道中;
92.对生成的色彩图像进行分析,得到所述场景检查结果。
93.可选地,处理模块203,用于:
94.从所述n个体素对应的所述目标数据类型下的绘制数据中,筛选出所述目标数据
类型对应的绘制数据最大值、绘制数据最小值,以及获取所述目标色彩通道的色彩数据最大值、色彩数据最小值;
95.针对所述每个体素,获取该体素对应的目标数据类型下的绘制数据,并对该体素对应的目标数据类型下的绘制数据、所述绘制数据最大值、所述绘制数据最小值、所述色彩最大值以及色彩数据最小值进行插值处理,得到该体素映射到所述目标色彩通道的目标色彩数据。
96.可选地,所述每个体素对应的场景绘制数据集合中包括以下绘制数据中的至少一种:与所述虚拟摄像机的当前视角对应的所述虚拟场景的渲染次数、所述虚拟场景对应静态网格数量、所述虚拟场景对应的几何体数量、绘制所述虚拟场景对应的内存占用量。
97.可选地,处理模块203,用于:
98.确定所述色彩图像中每个像素点的颜色值;
99.确定出颜色值大于预设颜色值的至少一个像素点,并确定所述至少一个像素点对应的体素坐标,以及将所述目标区域中与所述至少一个像素点对应的体素坐标所在的区域作为所述虚拟场景的热点区域,其中,所述场景检查结果包括所述热点区域。
100.关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
101.图3是根据一示例性实施例示出的一种虚拟场景的检查装置结构图。例如,装置1800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
102.参照图3,装置1800可以包括以下一个或多个组件:处理组件1802,存储器1804,电源组件1806,多媒体组件1808,音频组件1810,输入/输出(i/o)的接口1812,传感器组件1814,以及通信组件1816。
103.处理组件1802通常控制装置1800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理元件802可以包括一个或多个处理器1820来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1802可以包括一个或多个模块,便于处理组件1802和其他组件之间的交互。例如,处理部件1802可以包括多媒体模块,以方便多媒体组件1808和处理组件1802之间的交互。
104.存储器1804被配置为存储各种类型的数据以支持在设备1800的操作。这些数据的示例包括用于在装置1800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(sram),电可擦除可编程只读存储器(eeprom),可擦除可编程只读存储器(eprom),可编程只读存储器(prom),只读存储器(rom),磁存储器,快闪存储器,磁盘或光盘。
105.电力组件1806为装置1800的各种组件提供电力。电力组件1806可以包括电源管理系统,一个或多个电源,及其他与为装置1800生成、管理和分配电力相关联的组件。
106.多媒体组件1808包括在所述装置1800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(lcd)和触摸面板(tp)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动
作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1808包括一个前置摄像头和/或后置摄像头。当设备1800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
107.音频组件1810被配置为输出和/或输入音频信号。例如,音频组件1810包括一个麦克风(mic),当装置1800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1804或经由通信组件1816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
108.i/o接口1812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
109.传感器组件1814包括一个或多个传感器,用于为装置1800提供各个方面的状态评估。例如,传感器组件1814可以检测到设备1800的打开/关闭状态,组件的相对定位,例如所述组件为装置1800的显示器和小键盘,传感器组件1814还可以检测装置1800或装置1800一个组件的位置改变,用户与装置1800接触的存在或不存在,装置1800方位或加速/减速和装置1800的温度变化。传感器组件1814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1814还可以包括光传感器,如cmos或ccd图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
110.通信组件1816被配置为便于装置1800和其他设备之间有线或无线方式的通信。装置1800可以接入基于通信标准的无线网络,如wifi,2g或3g,或它们的组合。在一个示例性实施例中,通信部件1816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信部件1816还包括近场通信(nfc)模块,以促进短程通信。例如,在nfc模块可基于射频识别(rfid)技术,红外数据协会(irda)技术,超宽带(uwb)技术,蓝牙(bt)技术和其他技术来实现。
111.在示例性实施例中,装置1800可以被一个或多个应用专用集成电路(asic)、数字信号处理器(dsp)、数字信号处理设备(dspd)、可编程逻辑器件(pld)、现场可编程门阵列(fpga)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。
112.在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1804,上述指令可由装置1800的处理器1820执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是rom、随机存取存储器(ram)、cd-rom、磁带、软盘和光数据存储设备等。
113.一种非临时性计算机可读存储介质,当存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行前述各实施例的数据处理方法。
114.一种非临时性计算机可读存储介质,当存储介质中的指令由装置(服务器或者终端)的处理器执行时,使得装置能够执行一种虚拟场景的检查方法,方法包括:对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;对所述n个体素对应的场
景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。
115.图4是本发明实施例中的一种虚拟场景的检查装置作为服务器时的结构图。该服务器1900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1922(例如,一个或一个以上处理器)和存储器1932,一个或一个以上存储应用程序1942或数据1944的存储介质1930(例如一个或一个以上海量存储设备)。其中,存储器1932和存储介质1930可以是短暂存储或持久存储。存储在存储介质1930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1922可以设置为与存储介质1930通信,在服务器1900上执行存储介质1930中的一系列指令操作。
116.服务器1900还可以包括一个或一个以上电源1926,一个或一个以上有线或无线网络接口1950,一个或一个以上输入输出接口1958,一个或一个以上键盘1956,和/或,一个或一个以上操作系统1941,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
117.本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本技术旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。
118.应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
技术特征:
1.一种虚拟场景的检查方法,其特征在于,包括:对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。2.根据权利要求1所述的方法,其特征在于,所述确定所述每个体素坐标所对应的场景绘制数据集合,包括:基于预设方向,确定所述每个体素坐标在所述预设方向上的场景绘制数据集合;在所述预设方向包括多个时,所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:对每个预设方向上获取到的所述n个体素对应的场景绘制数据集合进行分析,得到所述每个预设方向上的场景检查结果。3.根据权利要求2所述的方法,其特征在于,所述预设方向包括以下方向中的至少一种:所述虚拟场景对应的空间坐标系中的横轴正方向、所述空间坐标系中的横轴负方向、所述空间坐标系中的纵轴正方向以及所述空间坐标系中的纵轴负方向。4.根据权利要求1或2所述的方法,其特征在于,所述对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,包括:按照预设采集层数对所述目标区域进行体素采集,获得每个预设采集层中的至少一个体素以及对应的体素坐标;所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:对所述每个预设采集层中的至少一个体素对应的场景绘制数据集合进行分析,得到与所述每个预设采集层对应的场景检查结果。5.根据权利要求1所述的方法,其特征在于,所述每个体素对应的场景绘制数据集合中均包括m种数据类型的绘制数据,m为正整数,所述对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果,包括:基于所述m种数据类型,从所述n个体素对应的场景绘制数据集合中筛选出每种数据类型下的绘制数据;确定与每种数据类型对应的色彩图像中的色彩通道,并将所述每种数据类型以及对应的色彩通道分别作为目标数据类型以及目标色彩通道,执行以下色彩图像生成步骤:针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据;在所述色彩图像中确定出与该体素的体素坐标对应的目标像素点,并将所述目标色彩数据存储到所述目标像素点对应的所述目标色彩通道中;对生成的色彩图像进行分析,得到所述场景检查结果。6.根据权利要求5所述的方法,其特征在于,所述针对所述每个体素,将该体素对应的目标数据类型下的绘制数据映射到目标色彩通道中,得到与该体素对应的目标色彩数据,包括:从所述n个体素对应的所述目标数据类型下的绘制数据中,筛选出所述目标数据类型对应的绘制数据最大值、绘制数据最小值,以及获取所述目标色彩通道的色彩数据最大值、
色彩数据最小值;针对所述每个体素,获取该体素对应的目标数据类型下的绘制数据,并对该体素对应的目标数据类型下的绘制数据、所述绘制数据最大值、所述绘制数据最小值、所述色彩最大值以及色彩数据最小值进行插值处理,得到该体素映射到所述目标色彩通道的目标色彩数据。7.根据权利要求5所述的方法,其特征在于,所述每个体素对应的场景绘制数据集合中包括以下绘制数据中的至少一种:与所述虚拟摄像机的当前视角对应的所述虚拟场景的渲染次数、所述虚拟场景对应的静态网格数量、所述虚拟场景对应的几何体数量、绘制所述虚拟场景对应的内存占用量。8.根据权利要求5所述的方法,其特征在于,所述对生成的色彩图像进行分析,得到所述场景检查结果,包括:确定所述色彩图像中每个像素点的颜色值;确定出颜色值大于预设颜色值的至少一个像素点,并确定所述至少一个像素点对应的体素坐标,以及将所述目标区域中与所述至少一个像素点对应的体素坐标所在的区域作为所述虚拟场景的热点区域,其中,所述场景检查结果包括所述热点区域。9.一种虚拟场景的检查装置,其特征在于,包括:体素采集模块,用于对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的n个体素以及每个体素位于所述虚拟场景中的体素坐标,n为正整数;绘制数据获取模块,用于控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;处理模块,用于对所述n个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。10.一种虚拟场景的检查装置,其特征在于,包括有存储器,以及一个或者多个的程序,其中一个或者多个的程序存储于存储器中,且经配置以由一个或者多个的处理器执行所述一个或者多个的程序所包含的用于进行如权利要求1~8任一项所述方法对应的操作指令。11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1~8任一权项所述的方法步骤。
技术总结
本发明公开了一种虚拟场景的检查方法、装置及存储介质,包括:对虚拟场景中的目标区域进行体素采集,获得与所述目标区域对应的N个体素以及每个体素位于所述虚拟场景中的体素坐标,N为正整数;控制虚拟摄像机按照每个体素坐标对所述目标区域进行遍历,并且确定所述每个体素坐标所对应的场景绘制数据集合;对所述N个体素对应的场景绘制数据集合进行分析,得到所述虚拟场景对应的场景检查结果。上述方案,实现了获取场景绘制数据集合的自动化,提高了数据获取效率,同时,能够基于场景检查结果确定出虚拟场景中的性能热点所在区域。果确定出虚拟场景中的性能热点所在区域。果确定出虚拟场景中的性能热点所在区域。
技术研发人员:魏博 李鹏
受保护的技术使用者:天津亚克互动科技有限公司
技术研发日:2021.12.01
技术公布日:2022/3/8