一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图集生成方法及系统与流程

2022-02-21 04:47:27 来源:中国专利 TAG:


1.本技术涉及计算机领域,尤其涉及一种图集生成方法、系统、计算机设备和计算机可读存储介质。


背景技术:

2.随着计算机技术的发展,人们对游戏体验提出了越来越高的要求。其中,游戏的画面质量与渲染的效果,直接影响视觉体验。在渲染实现过程中,draw call(绘制调用)是cpu向gpu提交的一次渲染指令,过多的draw call会导致cpu占用率过高,帧时长变长,从而导致游戏卡顿等问题。为了解决draw call过多的问题,可以在游戏制作阶段时,将所用到的图片打包成图集。图集能减少draw call次数:原本连续的一些draw call,贴图相同则可以组合成一个draw call。
3.但是,现有图集都是通过人工分析打包,不仅慢、容易出错,而且影响实际渲染效率。


技术实现要素:

4.本技术实施例的目的是提供一种图集生成方法、系统、计算机设备及计算机可读存储介质,用于解决上述问题。
5.本技术实施例的一个方面提供了一种图集生成方法,所述方法包括:
6.获取游戏程序在运行过程中的资源使用信息,所述资源使用信息包括多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧;
7.根据所述各个状态映射的资源,分析各个资源被所述游戏程序使用的使用次数;
8.分析所述各个资源与各自关联资源的关联次数,同一个状态下的资源互为关联资源;及
9.根据所述各个资源的使用次数以及所述各个资源与各自关联资源的关联次数,生成多个图集;其中,各个图集包括所述资源使用信息中记录的部分资源。
10.可选的,所述根据所述各个资源的使用次数以及所述各个资源与各自关联资源的关联次数,生成多个图集,包括:
11.对所述各个资源的使用次数进行排序,根据排序结果生成第一资源排序列表;
12.在所述第一资源排序表中,将同一帧中使用次数和关联次数均为1的资源加入同一个图集中;
13.将加入到所述同一个图集中的资源从所述第一资源排序表中删除,以得到第二资源排序表;
14.遍历所述第二资源排序表,执行如下操作:查找与目标资源关联的多个目标关联资源,其中,所述目标资源为所述第二资源排序表中当前被遍历到的任意一个资源;根据所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资
源的关联次数,确定是否将所述多个目标关联资源的一个或多个资源加入到所述目标资源所在的目标图集;在确定加入的情况下,将所述多个目标关联资源的一个或多个资源加入到所述目标图集中。
15.可选的,所述根据所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资源的关联次数,确定是否将所述多个目标关联资源的一个或多个资源加入到所述目标资源所在的目标图集,包括:
16.获取第i个目标关联资源的第i个关联资源列表,所述第i个目标关联资源为多个目标关联资源之一,第i个关联资源列表包括与其各个关联资源的关联次数;
17.获取所述第i个关联资源列表中的最大关联次数;
18.比较所述目标资源与所述第i个目标关联资源的关联次数和所述最大关联次数;及
19.若所述目标资源与所述第i个目标关联资源的关联次数大于所述最大关联次数,则在所述目标图集可加入资源的情况下,将所述第i个目标关联资源加入所述目标图集。
20.可选的,还包括:
21.检测各个资源的材质,确定不同材质但使用同一shader的若干个资源;
22.通过该同一shader生成通用材质,并通过所述通用材质修改所述若干个资源。
23.可选的,还包括:
24.检测使用同一shader的若干个资源;及
25.将所述若干个资源合并为一个图集,并修改引用所述若干个资源的对象的索引及引用方式。
26.本技术实施例的一个方面又提供了一种一种图集生成系统,所述系统包括:
27.获取模块,用于:获取游戏程序在运行过程中的资源使用信息,所述资源使用信息对应多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧;
28.第一分析模块,用于:获取所述各个状态映射的资源,得到各个资源的使用次数;
29.第二分析模块,用于:分析所述各个资源与各自关联资源的关联次数,同一个状态下的资源互为关联资源;及
30.生成模块,用于:根据所述各个资源的使用次数以及所述各个资源与所述各自关联资源的关联次数,生成多个图集;其中,各个图集包括所述资源使用信息中记录的部分资源。
31.可选的,所述生成模块还用于:
32.对所述各个资源的使用次数进行排序,根据排序结果生成第一资源排序列表;
33.在所述第一资源排序表中,将同一帧中使用次数和关联次数均为1的资源加入同一个图集中;
34.将加入到所述同一个图集中的资源从所述第一资源排序表中删除,以得到第二资源排序表;
35.遍历所述第二资源排序表,执行如下操作:查找与目标资源关联的多个目标关联资源,其中,所述目标资源为所述第二资源排序表中当前被遍历到的任意一个资源;根据所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资
源的关联次数,确定是否将所述多个目标关联资源的一个或多个资源加入到所述目标资源所在的目标图集;在确定加入的情况下,将所述多个目标关联资源的一个或多个资源加入到所述目标图集中。
36.本技术实施例的一个方面又提供了一种图集生成方法,所述方法包括:
37.获取游戏程序在运行过程中的资源使用信息,所述资源使用信息包括多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧;
38.根据所述资源使用信息,获取所述各个状态之间的关联关系;
39.根据所述各个状态之间的关联关系,生成状态转换树;
40.根据所述状态转换树,依顺序根据各个状态的资源进行图集更新,图集更新依赖于当前状态所映射的资源以及基于所述当前状态的上一个状态更新的多个图集;及
41.将基于最后一个状态更新得到的多个图集,确定为用于渲染操作的多个目标图集。
42.本技术实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现如上述图集生成方法的步骤。
43.本技术实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行如上述图集生成方法的步骤。
44.本技术实施例提供的图集生成方法、系统、设备及计算机可读存储介质,包括如下优点:
45.(1)收集资源使用信息,从中分析出各个资源的使用次数和与其他资源的关联次数,从而可以得到最优的多个图集,以降低渲染时产生的draw call次数,提高渲染效率。
46.(2)图集的自动生成,避免了人工分析优化面临数据量大、耗时长、易遗漏等问题。
附图说明
47.图1示意性示出了根据本技术实施例的图集生成方法的应用环境图;
48.图2示意性示出了根据本技术实施例一的图集生成方法的流程图;
49.图3示意性示出了根据本技术实施例一的图集生成方法的新增步骤流程图;
50.图4为图2中步骤s206的子步骤流程图;
51.图5为图4中步骤s406的子步骤流程图;
52.图6示意性示出了根据本技术实施例一的图集生成方法的新增步骤流程图;
53.图7示意性示出了根据本技术实施例一的图集生成方法的新增步骤流程图;
54.图8示意性示出了根据本技术实施例二的图集生成方法的流程图;
55.图9示意性示出了根据本技术实施例三的图集生成系统的框图;
56.图10示意性示出了根据本技术实施例四的适于实现图集生成方法的计算机设备的硬件架构示意图。
具体实施方式
57.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
58.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
59.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
60.游戏的画面质量与渲染的效果影响视觉体验。在渲染实现过程中,draw call(绘制调用)是cpu向gpu提交的一次渲染指令,过多的draw call会导致cpu占用率过高,帧时长变长,从而导致游戏卡顿等问题。为了解决draw call过多的问题,可以在游戏制作阶段时,将所用到的图片打包成图集。图集能减少draw call次数:原本连续的一些draw call,贴图相同则可以组合成一个draw call。
61.发明人发现,现有图集都是通过人工打包,并具有以下缺点:
62.第一、目前开发工具提供了游戏运行时资源的使用信息的展示,但是没有针对信息做分析处理;
63.第二、人工分析优化面临数据量大,耗时长,且容易遗漏;
64.第三、不同的项目类似的优化过程都要重新做或者反复做;
65.第四、不同项目经验的人可能优化出不同结果,有时候打包不合理,影响实际渲染效率。
66.针对上述发现的问题,本技术旨在:通过游戏引擎监控资源使用信息,并执行如下操作:
67.第一、检测引擎资源使用获取信息获取到的数据比较完整,针对该数据分析做资源优化也是较为全面的优化;
68.第二、使用资源智能分析可以使研发人员重点专注于逻辑,不用花太多时间在资源整理上,为研发减轻工作量;
69.第三、经验丰富的优化人员,可以通过优化资源优化方法,然后应用于自己项目或者别的项目,使资源优化经验可以沉淀于工具让更多项目使用;
70.第四、可以通过智能优化方法检测项目内是否存在可优化资源。
71.以下为本技术的术语解释:
72.游戏引擎:指一些已编写好的可编辑电脑游戏系统或交互式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。大部分都支持多种操作平台,如linux、mac os x、微软windows。游戏引擎包含以下系统:渲染引擎(即“渲染器”,含二维图
像引擎和三维图像引擎)、物理引擎、碰撞检测系统、音效、脚本引擎、电脑动画、人工智能、网络引擎以及场景管理。
73.draw call(绘制调用):是cpu调用图形编程的函数接口,用于实现cpu与gpu之间渲染命令的参数的传递。cpu通过draw call向gpu下渲染命令,gpu根据渲染命令执行渲染操作。draw call用于实现cpu与gpu之间渲染命令的参数的传递。在unity中,每次cpu准备数据并通知gpu的过程就称之为一个draw call。
74.gpu(图形处理器,graphics processing unit):是一种在终端上专门对图像进行图像运算工作的微处理器。gpu用于根据cpu的命令进行图片或图集进行渲染。
75.图集:多个图片打包到一个文件里,且记录原始图片的位置信息等。图集可以降低draw call次数。
76.shader(着色程序):游戏中一种代码资源,存放图片处理逻辑。
77.md5(message-digest algorithm,信息摘要算法),是一种密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。
78.图1示意性示出了根据本技术实施例的图集生成方法的环境架构图。在示例性的实施例中,如图1所示,计算机设备2可以通过网络4连接多个电子设备6。
79.计算机设备2可以通过一个或多个网络4提供资源管理服务。
80.计算机设备2,可以由单个或多个计算设备组成,如,机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。所述一个或多个计算机设备可以包括虚拟化计算实例。计算机设备可以基于定义用于仿真的特定软件(例如,操作系统,专用应用程序,服务器)的虚拟映像和/或其他数据来加载虚拟机。随着对不同类型的处理服务的需求改变,可以在所述一个或多个计算机设备上加载和/或终止不同的虚拟机。
81.网络4,可以包括各种网络设备,例如路由器,交换机,多路复用器,集线器,调制解调器,网桥,中继器,防火墙,代理设备和/或等等。网络4可以包括物理链路,例如同轴电缆链路,双绞线电缆链路,光纤链路,它们的组合和/或类似物。网络4可以包括无线链路,例如蜂窝链路,卫星链路,wi-fi链路和/或类似物。
82.电子设备6可以被配置为访问计算机设备2。电子设备6可以包括可以游戏引擎的任何类型的计算机设备,如:智能手机,平板设备,膝上型计算机,智能设备(例如,智能手表,智能眼镜),虚拟现实,游戏设备,机顶盒,数字流设备,车载终端,智能电视,电视盒,mp4(运动图像专家组音频层iv)播放器等。
83.电子设备6,可以运行windows系统、安卓(android
tm
)系统或ios系统等操作系统。另外,用户还可以根据需要安装各种应用程序、程序组件(如游戏引擎)。基于上述程序或程序组件,可以实现各类功能,如游戏功能,或资源监视功能。游戏引擎,是为运行游戏应用的核心组件,用于提供各种运行所需的各种工具,如一些已编写好的可编辑电脑游戏系统或者一些交互式实时图像应用程序的核心组件。在本技术中,游戏引擎可以负责提供游戏运行时,不同状态下游戏使用的资源使用信息,如当前状态加载了什么资源,释放了什么资源等。
84.下文,本技术将提供一种图集生成方法、系统、计算机设备和计算机可读存储介质。
85.实施例一
86.图2示意性示出了根据本技术实施例一的图集生成方法的流程图。所述方法可以执行在计算机设备2中。如图2所示,该图集生成方法可以包括步骤s200~s206,其中:
87.步骤s200,获取游戏程序在运行过程中的资源使用信息,所述资源使用信息包括多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧。
88.步骤s202,根据所述各个状态映射的资源,分析各个资源被所述游戏程序使用的使用次数。
89.步骤s204,分析所述各个资源与各自关联资源的关联次数,同一个状态下的资源互为关联资源。
90.步骤s206,根据所述各个资源的使用次数以及所述各个资源与各自关联资源的关联次数,生成多个图集;其中,各个图集包括所述资源使用信息中记录的部分资源。
91.在实际应用中,在使用游戏引擎(如unity)开发游戏过程中,可以在各个电子设备6的游戏引擎提供的可渲染组件中注入监视代码,通过注入的监视代码,电子设备6可以收集游戏程序在整个运行过程中的每帧依次进行渲染的资源信息。
92.以其中一个电子设备6为例,游戏运行结束,自动生成数据库存放数据,数据库设计如下:
93.资源表结构:
94.type:资源类型(支持类型:mesh,meterial,shader,png);
95.name:资源名称;
96.mem:资源占用内存大小;
97.size:资源实际尺寸(png长宽);
98.path:该资源被保存路径。
99.状态表结构:
100.state:每帧使用的资源信息数字化编码成一个唯一状态,例如,渲染一帧a依次使用到了“资源1”、“资源2”和“资源3”,则可以根据“资源1”、“资源2”和“资源3”的名字或其他标识生成具有唯一性的一串字符(如md码),计算机设备读取到这串字符时,则可以进行解析,从而得到帧a依次使用到了“资源1”、“资源2”和“资源3”;
101.parent:该状态的上一个状态;
102.child:该状态的下一个状态;
103.reslist:该状态使用到的所有资源;
104.draw call:该状态对应的绘制批次;
105.position:渲染物体的位置;
106.usetype:使用类型(ui或者3d模型)。
107.以上提供了一个电子设备6收集资源使用信息的示例。计算机设备2会整合所有电子设备上报的数据,并得到整合后的资源使用信息(包括去重及新增插入)。其中,步骤s202中的“资源使用信息”即所述整合后的资源使用信息。
108.接下来,通过步骤s202获取所述资源使用信息之后,对所述资源使用信息进行分析,如下:
109.遍历每个状态的资源(如ui资源),分析每个资源在同一个状态的关联资源(如,在同一帧中同时被渲染的关联资源),并且计算出关联次数(即共同渲染次数,如:
110.第1状态的资源:1,2,3,4;
111.第2状态的资源:1,2,5,6;
112.第3状态的资源:1,7,8,9;
113.以下上述数据,得到以下分析数据:
114.1(3):2(2),3(1),4(1),5(1),6(1),7(1),8(1),9(1);
115.2(2):1(2),3(1),4(1),5(1),6(1);
116.3(1):1(1),2(1),4(1);
117.4(1):1(1),2(1),3(1);
118.…
119.其中:
120.左侧:表示各个资源,括号数据标被使用的次数。如:“1(3)”表示资源1使用了3次,“2(2)”表示资源2使用了2次;“3(1)”表示资源3使用了1次;“4(1)”表示资源4使用了1次。
121.右侧:表示对应的左侧资源在游戏运行过程中同时被使用资源,右侧括号内数字表示资源和左边资源共同渲染次数。以“1(3):2(2),3(1),4(1),5(1),6(1),7(1),8(1),9(1)”为例,“2(2)”表示资源2和左侧的资源1的共同渲染次数为2,“3(1)”表示资源3和左侧的资源1的共同渲染次数为1,


122.根据上面得到的各个资源的使用次数以及各个资源与各自关联资源的关联次数,可以分析出最优的资源组合并继而生成相应的多个图集,尽量降低draw call次数。
123.需要说明的是,各个图集包括不同部分的资源。
124.本技术实施例提供的图集生成方法,可以包括如下优点:
125.(1)通过在各个电子设备中的游戏引擎提供的可渲染组件注入监视代码,收集多个电子设备的资源使用信息,从中分析出各个资源的使用次数和与其他资源的关联次数,从而可以得到最优的多个图集,以降低渲染时产生的draw call次数。
126.(2)图集的自动生成,避免了人工分析优化面临数据量大、耗时长、易遗漏等问题。
127.(3)该图集的生成,可以适用于不同的项目;
128.(4)基于收集到的资源使用信息,从中分析出各个资源的使用次数和与其他资源的关联次数,从而可以得到最优的多个图集,可以得出一致性的最优效果,实际渲染效率高,且避免以下情况:不同人员优化出不同结果,打包不合理。
129.(5)由于是在游戏引擎提供的可渲染组件中注入监视代码,可以获取到比较完成的资源使用信息,针对该资源使用信息进行数据分析优化图集生成,优化全面。
130.(6)图集的自动生成,可以使研发人员重点专注于逻辑,而非在资源整理上,减轻工作量。
131.(7)经验丰富的优化人员,可以通过本所述提供的图集生成方法,然后应用于自己的项目或者其他的项目中,使资源优化经验可以沉淀于工具让更多项目使用。
132.以下提供部分可选实施例。
133.作为可选的实施例,如图3所示,所述图集生成方法还可以包括:步骤s300,根据所述资源使用信息,获取资源相似度大于预设阈值的若干个帧;及步骤s302,将所述若干个帧
合并为一个帧集合,基于该帧集合生成一个状态,其中,基于该帧集合生成的状态映射所述若干个帧的通用资源和私有资源。在本实施例中,可以减少状态的数量,提高分析效率。
134.其中,通用资源,是指预设阈值的若干个帧中均使用到的资源。
135.私有资源,是指非通用资源,即在若干个帧中仅单个帧或部分帧使用到的资源。
136.作为可选的实施例,如图4所示,所述步骤s206可以包括如下步骤:步骤s400,对所述各个资源的使用次数进行排序,根据排序结果生成第一资源排序列表;步骤s402,在所述第一资源排序表中,将同一帧中使用次数和关联次数均为1的资源加入同一个图集中;步骤s404,将加入到所述同一个图集中的资源从所述第一资源排序表中删除,以得到第二资源排序表;步骤s406,遍历所述第二资源排序表,执行如下操作:查找与目标资源关联的多个目标关联资源,其中,所述目标资源为所述第二资源排序表中当前被遍历到的任意一个资源;根据所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资源的关联次数,确定是否将所述多个目标关联资源的一个或多个资源加入到所述目标资源所在的目标图集;在确定加入的情况下,将所述多个目标关联资源的一个或多个资源加入到所述目标图集中。在本实施例中,通过所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资源的关联次数,可以将关联最紧密的资源分到同一个图集中,从而可以极大地减少游戏引擎在渲染时的draw call次数。
137.需要说明的是,所述排序可以根据使用次数从大到小进行排序,也可以从小到大进行排序。若采用从小到大排序,可以把不常用的资源分走,以实现类似效果。
138.作为可选的实施例,如图5所示,所述步骤s406可以包括如下步骤:步骤s400,获取第i个目标关联资源的第i个关联资源列表,所述第i个目标关联资源为多个目标关联资源之一,第i个关联资源列表包括与其各个关联资源的关联次数;步骤s502,获取所述第i个关联资源列表中的最大关联次数;步骤s504,比较所述目标资源与所述第i个目标关联资源的关联次数和所述最大关联次数;及步骤s506,若所述目标资源与所述第i个目标关联资源的关联次数大于所述最大关联次数,则在所述目标图集可加入资源的情况下,将所述第i个目标关联资源加入所述目标图集。若所述目标资源与所述第i个目标关联资源的关联次数不大于所述最大关联次数,或目标图集已满,则不加入所述目标图集。
139.举例来说:
140.预设每个图集最大能存放的资源个数为maxcount,最大尺寸为maxsize,最大体积为maxmem。
141.(1)根据所有资源的使用次数从大到小排序,生成排序后的第一资源排序列表reslist0。
142.(2)基于各个资源的使用次数和各个资源与各自关联资源的关联次数,将以下资源打入到同一个图集中:使用次数为1且关联次数为1,并从reslist0中删除以生成reslist1。将这些使用较少的资源单独放在一个图集中,可以对其他资源的影响。
143.(3)遍历reslist1:当遍历到资源a,则查找资源a的所有关联资源,并且以关联次数从大到小排序生成资源a的关联资源列表refreslist({a1,a2,a3,

,an})。
144.(3.1)判断资源a是否加入图集,如果加入则跳过,没有加入就加入新图集a1。
145.(3.2)遍历refreslist,当遍历到a1,如a1与a1的关联次数大于a1本身的关联资源列表中最大的关联次数,且a1满足预设图集阈值,则将a1加入a1,否则不加入。
146.(3.2)继续遍历到a2,如a1与a2的关联次数大于a2本身的关联资源列表中最大的关联次数,且a1满足预设图集阈值,则将a2加入a1,否则不加入。
147.以此类推,直到遍历到an,则回到步骤(3),继续遍历reslist1中的资源a的下一个资源。
148.上述遍历完成之后,会得到最终的多个图集。该多个图集可以用于渲染操作中。
149.作为可选的实施例,如图6所示,所述图集生成方法还可以包括:步骤s600,检测各个资源的材质,确定不同材质但使用同一shader的若干个资源;步骤s602,通过该同一shader生成通用材质,并通过所述通用材质修改所述若干个资源。在本实施例中,通过材质自动合并,可以减少设备运行压力,如渲染压力。举例来说,静态对象使用同材质,所述游戏引擎会启动静态合批优化draw call,以减少draw call次数。静态对象使用相同材质也可以使用动态合批技术。
150.需要说明的是,“材质”用于表现物体对光的交互,供渲染器读取的数据集。材质可以用来表现物体对光的交互(反射、折射等)性质。示例性的,游戏引擎可以根据金属对光的反射和毛毯对光的反射性质差异,通过材质计算出不同的颜色。
151.作为可选的实施例,如图7所示,所述图集生成方法还可以包括:步骤s700,检测使用同一shader的若干个资源;及步骤s702,将所述若干个资源合并为一个图集,并修改引用所述若干个资源的对象的索引及引用方式。在本实施例中,通过贴图自动合并(3d资源优化),可以减少设备运行压力,如渲染压力。
152.需要说明的是,上文提供的各个可选方案可以单独实施,也可以组合实施。
153.实施例二
154.本实施例提供了另一中图集生成方法,具体效果可以参考上文。
155.图8示意性示出了根据本技术实施例二的图集生成方法的流程图。所述方法可以执行在计算机设备2中。如图8所示,该图集生成方法可以包括步骤s800~s808,其中:
156.步骤s800,获取游戏程序在运行过程中的资源使用信息,所述资源使用信息包括多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧;
157.步骤s802,根据所述资源使用信息,获取所述各个状态之间的关联关系;
158.步骤s804,根据所述各个状态之间的关联关系,生成状态转换树;
159.步骤s806,根据所述状态转换树,依顺序根据各个状态的资源进行图集更新,图集更新依赖于当前状态所映射的资源以及基于所述当前状态的上一个状态更新的多个图集;及
160.步骤s808,将基于最后一个状态更新得到的多个图集,确定为用于渲染操作的多个目标图集。
161.在本实施例中,通过纵向分析,依顺序遍历所有状态,得到整体最优的多个目标图集。
162.相较于实施例一,本实施例考虑了状态流转的先后顺序,通过各个状态的流转顺序,不断更新迭代图集内容,将最后迭代出多个图集作为目标图集。由于相邻状态通常会有些较多通用的资源,因此,通过纵向分析得出最优的多个目标图集。
163.其中,状态转换树的生成规则如下:
164.(1)根状态:没有parent的状态为根状态。
165.(2)状态合并:预设资源最低相似度为m,当两个状态使用的资源相似度大于等于m时,规定两个状态为同一个状态,且改状态存在部分通用资源和私有资源。
166.(3)根据合并后的状态以及状态的前后关系生成状态转换树。
167.作为可选的实施例,所述图集生成方法还包括:
168.根据所述资源使用信息,获取资源相似度大于预设阈值的若干个帧;
169.将所述若干个帧合并为一个帧集合,基于该帧集合生成一个状态,其中,基于该帧集合生成的状态映射所述若干个帧的通用资源和私有资源。
170.作为可选的实施例,所述图集生成方法还包括:
171.检测各个资源的材质,确定不同材质但使用同一shader的若干个资源;
172.通过该同一shader生成通用材质,并通过所述通用材质修改所述若干个资源。
173.作为可选的实施例,所述图集生成方法还包括:
174.检测使用同一shader的若干个资源;及
175.将所述若干个资源合并为一个图集,并修改引用所述若干个资源的对象的索引及引用方式。
176.实施例三
177.图9示意性示出了根据本技术实施例三的图集生成系统的框图。该图集生成系统可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
178.如图9所示,该图集生成系统900可以包括获取模块910、第一分析模块920、第二分析模块930和生成模块940,其中:
179.获取模块910,用于:获取游戏程序在运行过程中的资源使用信息,所述资源使用信息对应多个状态,其中,各个状态分别为一串字符,每串字符分别映射一帧或相似的多帧被渲染时使用的资源,所述相似的多帧是指资源相似度大于预设阈值的若干个帧;
180.第一分析模块920,用于:获取所述各个状态映射的资源,得到各个资源被所述游戏程序使用的使用次数;
181.第二分析模块930,用于:分析所述各个资源与各自关联资源的关联次数,同一个状态下的资源互为关联资源;及
182.生成模块940,用于:根据所述各个资源的使用次数以及所述各个资源与所述各自关联资源的关联次数,生成多个图集;其中,各个图集包括所述资源使用信息中记录的部分资源。
183.作为可选的实施例,所述生成模块940,还用于:
184.对所述各个资源的使用次数进行排序,根据排序结果生成第一资源排序列表;
185.在所述第一资源排序表中,将同一帧中使用次数和关联次数均为1的资源加入同一个图集中;
186.将加入到所述同一个图集中的资源从所述第一资源排序表中删除,以得到第二资源排序表;
187.遍历所述第二资源排序表,执行如下操作:查找与目标资源关联的多个目标关联资源,其中,所述目标资源为所述第二资源排序表中当前被遍历到的任意一个资源;根据所述目标资源与各个目标关联资源的关联次数,及所述各个目标关联资源本身与各自关联资源的关联次数,确定是否将所述多个目标关联资源的一个或多个资源加入到所述目标资源所在的目标图集;在确定加入的情况下,将所述多个目标关联资源的一个或多个资源加入到所述目标图集中。
188.作为可选的实施例,所述生成模块940,还用于:
189.获取第i个目标关联资源的第i个关联资源列表,所述第i个目标关联资源为多个目标关联资源之一,第i个关联资源列表包括与其各个关联资源的关联次数;
190.获取所述第i个关联资源列表中的最大关联次数;
191.比较所述目标资源与所述第i个目标关联资源的关联次数和所述最大关联次数;及
192.若所述目标资源与所述第i个目标关联资源的关联次数大于所述最大关联次数,则在所述目标图集可加入资源的情况下,将所述第i个目标关联资源加入所述目标图集。
193.作为可选的实施例,所述系统还包括材质修改模块(未标识),用于:
194.检测各个资源的材质,确定不同材质但使用同一shader的若干个资源;
195.通过该同一shader生成通用材质,并通过所述通用材质修改所述若干个资源。
196.作为可选的实施例,所述系统还包括资源合并模块(未标识),用于:
197.检测使用同一shader的若干个资源;及
198.将所述若干个资源合并为一个图集,并修改引用所述若干个资源的对象的索引及引用方式。
199.实施例四
200.图10示意性示出了根据本技术实施例四的适于实现图集生成方法的计算机设备2的硬件架构示意图。本实施例中,计算机设备2是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或信息处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)等。如图10所示,计算机设备2至少包括但不限于:可通过系统总线相互通信链接存储器10010、处理器10020、网络接口10030。其中:
201.存储器10010至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器10010可以是计算机设备2的内部存储模块,例如该计算机设备2的硬盘或内存。在另一些实施例中,存储器10010也可以是计算机设备2的外部存储设备,例如该计算机设备2上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器10010还可以既包括计算机设备2的内部存储模块也包括其外部存储设备。本实施例中,存储器10010通常用于存储安装于计算机设备2的操作系统和各类应用软件,例如图集生成方法的程序代码等。此外,存储器10010还可以用于暂时地存储已经输出或者将要输出的各类数据。
202.处理器10020在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器10020通常用于控制计算机设备2的总体操作,例如执行与计算机设备2进行数据交互或者通信相关的控制和处理等。本实施例中,处理器10020用于运行存储器10010中存储的程序代码或者处理数据。
203.网络接口10030可包括无线网络接口或有线网络接口,该网络接口10030通常用于在计算机设备2与其他计算机设备之间建立通信链接。例如,网络接口10030用于通过网络将计算机设备2与外部终端相连,在计算机设备2与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通讯系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
204.需要指出的是,图10仅示出了具有部件10010-10030的计算机设备,但是应该理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
205.在本实施例中,存储于存储器10010中的图集生成方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器10020)所执行,以完成本技术实施例。
206.实施例五
207.本技术还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的图集生成方法的步骤。
208.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中图集生成方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
209.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
210.需要说明的是,以上仅为本技术的优选实施例,并非因此限制本技术的专利保护范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接
运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献