首页 / 专利库 / 电脑零配件 / 固件 / 软件 / 软件包 / 软件组件 / 规则引擎 / 一种实现游戏地图无缝加载的方法及系统

一种实现游戏地图无缝加载的方法及系统

阅读:822发布:2020-05-11

专利汇可以提供一种实现游戏地图无缝加载的方法及系统专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种实现游戏地图无缝加载的方法及系统,涉及计算机游戏技术领域,用于实现:通过在游戏场景中设置不同的细节层次生成对应 精度 的光照贴图,再对游戏场景进行分割,加载场景时根据相机与区域距离的远近加载对应精度的光照贴图,实现了在不影响图像 质量 的同时显著的降低了内存的开销。本发明的有益效果为:通过拆分光照图的方式,在不影响图像质量的同时显著的降低了内存占用,同时地形光照图也可以按照层次细节规则进行动态加载,大幅度降低了地图资源中光照图的内存开销。,下面是一种实现游戏地图无缝加载的方法及系统专利的具体信息内容。

1.一种实现游戏地图无缝加载的方法,其特征在于,包括以下步骤:
层次细节级别设置步骤,设置各个游戏场景的层次细节的级别和数量,得到对应的光照贴图,其中所述光照贴图的精度和数量与所述层次细节的级别和数量一致;
光照贴图烘焙步骤,基于各个所述光照贴图的层级细节的级别设置对应的烘焙精度,基于所述烘焙精度对所述光照贴图进行逐一烘焙,得到对应所述游戏场景中烘焙后的光照贴图;
光照贴图切割步骤,将所述游戏场景按照一定尺寸进行切分,并根据原游戏场景与所述光照贴图的关联关系,将切分后的区域场景与对应光照贴图进行重新关联;
场景加载步骤,调用引擎内置相机遍历所述场景,实时计算所述区域场景与所述相机的距离,根据所述距离计算得到所述区域场景的层次细节的等级并加载关联的光照贴图。
2.根据权利要求1所述的实现游戏地图无缝加载的方法,其特征在于,所述层次细节级别设置步骤还包括:
获取各个游戏场景的访问频率,根据所述访问频率设置对应的层次细节的级别和数量,其中所述访问频率和所述层次细节的级别和数量呈正相关。
3.根据权利要求1所述的实现游戏地图无缝加载的方法,其特征在于,所述光照贴图烘焙步骤还包括:
使用指定算法对所述光照贴图进行烘焙,其中所述指定算法包括路径追踪算法、辐射度算法以及光子映射算法。
4.根据权利要求1所述的实现游戏地图无缝加载的方法,其特征在于,所述光照贴图切割步骤还包括:
将所述游戏场景的地形按照预设尺寸进行切分;
根据切分后的地形映射到对应光照贴图的坐标数据;
根据所述坐标数据计算出对应的光照贴图区域,将所述光照贴图区域对应的光照贴图数据切割为单独的光照贴图;
将所述单独的光照贴图与对应的所述切分后的地形进行重关联。
5.根据权利要求1所述的实现游戏地图无缝加载的方法,其特征在于,所述场景加载步骤还包括:
所述擎内置相机跟随玩家操作的人物行动,并实时计算所述人物位于场景中的各个区域场景与所述相机的距离;
根据所述距离按照显示规则计算对应所述区域场景的层次细节的等级;
根据所述层次细节的等级加载对应的关联光照贴图。
6.根据权利要求5所述的实现游戏地图无缝加载的方法,其特征在于,所述显示规则为:
对应区域场景和所述相机的距离与加载的层次细节的等级呈负相关,即所述距离越大加载的对应光照贴图的层次细节等级越低。
7.一种实现游戏地图无缝加载的系统,其特征在于,包括:
层次细节级别设置模,用于设置各个游戏场景的层次细节的级别和数量,得到对应的光照贴图,其中所述光照贴图的精度和数量与所述层次细节的级别和数量一致;
光照贴图烘焙模块,用于基于各个所述光照贴图的层级细节的级别设置对应的烘焙精度,基于所述烘焙精度对所述光照贴图进行逐一烘焙,得到对应所述游戏场景中烘焙后的光照贴图;
光照贴图切割模块,用于将所述游戏场景按照一定尺寸进行切分,并根据原游戏场景与所述光照贴图的关联关系,将切分后的区域场景与对应光照贴图进行重新关联;
场景加载模块,用于调用引擎内置相机遍历所述场景,实时计算所述区域场景与所述相机的距离,根据所述距离计算得到所述区域场景的层次细节的等级并加载关联的光照贴图。
8.根据权利要求7所述的实现游戏地图无缝加载的系统,其特征在于,所述光照贴图烘焙模块还包括:
算法烘焙单元,用于使用指定算法对所述光照贴图进行烘焙,其中所述指定算法包括路径追踪算法、辐射度算法以及光子映射算法。
9.根据权利要求7所述的实现游戏地图无缝加载的系统,其特征在于,所述光照贴图切割模块还包括:
切分单元,用于将所述游戏场景的地形按照预设尺寸进行切分;
映射切割单元,用于根据切分后的地形映射到对应光照贴图的坐标数据,并根据所述坐标数据计算出对应的光照贴图区域,将所述光照贴图区域对应的光照贴图数据切割为单独的光照贴图;
重关联单元,用于将所述单独的光照贴图与对应的所述切分后的地形进行重关联。
10.根据权利要求7所述的实现游戏地图无缝加载的系统,其特征在于,所述场景加载模块还包括:
相机控制单元,用于控制相机跟随玩家操作的人物行动,并实时计算所述人物位于场景中的各个区域场景与所述相机的距离;
计算单元,用于根据所述距离按照显示规则计算对应所述区域场景的层次细节的等级;
光照贴图加载单元,用于根据所述层次细节的等级加载对应的关联光照贴图。

说明书全文

一种实现游戏地图无缝加载的方法及系统

技术领域

[0001] 本发明涉及计算机游戏技术领域,特别涉及一种实现游戏地图无缝加载的方法及系统。

背景技术

[0002] 无缝地图在切换场景时不需要腾出专的地图载入时间,表现为没有载入进度条,无缝地图的精髓在于场景预读取,当你处于某一场景中时,附近场景大部分内容就已经偷偷开始载入了,所以切换场景时不需要长时间读取,几毫秒的数据交换就可以完成下一个场景的加载,随着玩家对游戏要求越来越高,各大游戏厂商也在无缝地图上投入大量的心血进行研究,而无缝地图一直是一种较为复杂的地图实现方案。
[0003] 在无缝地图方案中,地图资源的内存开销一直是此方案的一个核心问题。高精度的光照贴图在地图资源的内存占比一直很高。因此降低光照贴图的内存开销,能够显著的降低地图内存开销。而光照贴图精度的高低又直接关系着游戏显示效果,直接降低光照贴图的精度虽然能够降低内存开销,但是游戏画面质量也会随之降低,明显的降低游戏品质,影响玩家游戏体验。

发明内容

[0004] 为至少解决现有技术中存在的技术问题之一,本发明的目的在于提供一种实现游戏地图无缝加载的方法及系统,通过在游戏场景中设置不同的细节层次生成对应精度的光照贴图,再对游戏场景进行分割,加载场景时根据相机与区域距离的远近加载对应精度的光照贴图,实现了在不影响图像质量的同时显著的降低了内存的开销。
[0005] 本发明解决其问题所采用的技术方案第一方面是:一种实现游戏地图无缝加载的方法,其特征在于,包括以下步骤:层次细节级别设置步骤,设置各个游戏场景的层次细节的级别和数量,得到对应的光照贴图,其中所述光照贴图的精度和数量与所述层次细节的级别和数量一致;光照贴图烘焙步骤,基于各个所述光照贴图的层级细节的级别设置对应的烘焙精度,基于所述烘焙精度对所述光照贴图进行逐一烘焙,得到对应所述游戏场景中烘焙后的光照贴图;光照贴图切割步骤,将所述游戏场景按照一定尺寸进行切分,并根据原游戏场景与所述光照贴图的关联关系,将切分后的区域场景与对应光照贴图进行重新关联;场景加载步骤,调用引擎内置相机遍历所述场景,实时计算所述区域场景与所述相机的距离,根据所述距离计算得到所述区域场景的层次细节的等级并加载关联的光照贴图。
[0006] 有益效果:通过拆分光照图的方式,在不影响图像质量的同时显著的降低了内存占用,同时地形光照图也可以按照层次细节规则进行动态加载,大幅度降低了地图资源中光照图的内存开销。
[0007] 根据本发明第一方面所述的,层次细节级别设置步骤还包括:获取各个游戏场景的访问频率,根据所述访问频率设置对应的层次细节的级别和数量,其中所述访问频率和所述层次细节的级别和数量呈正相关。
[0008] 根据本发明第一方面所述的,光照贴图烘焙步骤还包括:使用指定算法对所述光照贴图进行烘焙,其中所述指定算法包括路径追踪算法、辐射度算法以及光子映射算法。
[0009] 根据本发明第一方面所述的,光照贴图切割步骤还包括:将所述游戏场景的地形按照预设尺寸进行切分;根据切分后的地形映射到对应光照贴图的坐标数据;根据所述坐标数据计算出对应的光照贴图区域,将所述光照贴图区域对应的光照贴图数据切割为单独的光照贴图;将所述单独的光照贴图与对应的所述切分后的地形进行重关联。
[0010] 根据本发明第一方面所述的,场景加载步骤还包括:所述擎内置相机跟随玩家操作的人物行动,并实时计算所述人物位于场景中的各个区域场景与所述相机的距离;根据所述距离按照显示规则计算对应所述区域场景的层次细节的等级;根据所述层次细节的等级加载对应的关联光照贴图。
[0011] 根据本发明第一方面所述的,显示规则为:对应区域场景和所述相机的距离与加载的层次细节的等级呈负相关,即所述距离越大加载的对应光照贴图的层次细节等级越低。
[0012] 本发明解决其问题所采用的技术方案第二方面是:一种实现游戏地图无缝加载的系统,其特征在于,包括:层次细节级别设置模,用于设置各个游戏场景的层次细节的级别和数量,得到对应的光照贴图,其中所述光照贴图的精度和数量与所述层次细节的级别和数量一致;光照贴图烘焙模块,用于基于各个所述光照贴图的层级细节的级别设置对应的烘焙精度,基于所述烘焙精度对所述光照贴图进行逐一烘焙,得到对应所述游戏场景中烘焙后的光照贴图;光照贴图切割模块,用于将所述游戏场景按照一定尺寸进行切分,并根据原游戏场景与所述光照贴图的关联关系,将切分后的区域场景与对应光照贴图进行重新关联;场景加载模块,用于调用引擎内置相机遍历所述场景,实时计算所述区域场景与所述相机的距离,根据所述距离计算得到所述区域场景的层次细节的等级并加载关联的光照贴图。
[0013] 有益效果:通过拆分光照图的方式,在不影响图像质量的同时显著的降低了内存占用,同时地形光照图也可以按照层次细节规则进行动态加载,大幅度降低了地图资源中光照图的内存开销。
[0014] 根据本发明第二方面所述的,光照贴图烘焙模块还包括:算法烘焙单元,用于使用指定算法对所述光照贴图进行烘焙,其中所述指定算法包括路径追踪算法、辐射度算法以及光子映射算法。
[0015] 根据本发明第二方面所述的,光照贴图切割模块还包括:切分单元,用于将所述游戏场景的地形按照预设尺寸进行切分;映射切割单元,用于根据切分后的地形映射到对应光照贴图的坐标数据,并根据所述坐标数据计算出对应的光照贴图区域,将所述光照贴图区域对应的光照贴图数据切割为单独的光照贴图;重关联单元,用于将所述单独的光照贴图与对应的所述切分后的地形进行重关联。
[0016] 根据本发明第二方面所述的,场景加载模块还包括:相机控制单元,用于控制相机跟随玩家操作的人物行动,并实时计算所述人物位于场景中的各个区域场景与所述相机的距离;计算单元,用于根据所述距离按照显示规则计算对应所述区域场景的层次细节的等级;光照贴图加载单元,用于根据所述层次细节的等级加载对应的关联光照贴图。附图说明
[0017] 图1是根据本发明优选实施例的方法流程示意图;
[0018] 图2是根据本发明优选实施例的系统结构示意图。

具体实施方式

[0019] 以下将结合实施例和附图对本发明的构思、具体结构及产生的技术效果进行清楚、完整的描述,以充分地理解本发明的目的、方案和效果。
[0020] 名词解释:
[0021] LOD:层次细节(LOD),英文称作Level of Details,也叫作Level  of Development。描述了一个BIM模型构件单元从最低级的近似概念化的程度发展到最高级的演示级精度的步骤,它是根据物体在游戏画面中所占视图的百分比来调用不同复杂度的模型的。简单而言,就是当一个物体距离摄像机比较远的时候使用低模,当物体距离摄像机比较近的时候使用高模。这是一种优化游戏渲染效率的常用方法,缺点是占用大量内存。使用这个技术,一般是在解决运行时流畅度的问题,采用的是空间换时间的方式,LOD被定义为5个等级,从概念设计到竣工设计,已经足够来定义整个模型过程。但是,为了给未来可能会插入等级预留空间,定义LOD为100到500。
[0022] UV:u,v纹理贴图坐标的简称(它和空间模型的X,Y,Z轴是类似的).它定义了图片上每个点的位置的信息.这些点与3D模型是相互联系的,以决定表面纹理贴图的位置.UV就是将图像上每一个点精确对应到模型物体的表面.在点与点之间的间隙位置由软件进行图像光滑插值处理.这就是所谓的UV贴图.那为什么用UV坐标而不是标准的投影坐标呢?通常给物体纹理贴图最标准的方法就是以planar(平面),cylindrical(圆柱),spherical(球形),cubic(方盒)坐标方式投影贴图,Planar projection(平面投影方式)是将图像沿x,y或z轴直接投影到物体.这种方法使用于纸张,布告,书的封面等-也就是表面平整的物体,平面投影的缺点是如果表面不平整,或者物体边缘弯曲,就会产生如图A的不理想接缝和变形,避免这种情况需要创建带有alpha通道的图像,来掩盖临近的平面投影接缝,而这会是非常烦琐的工作,所以不要对有较大厚度的物体和不平整的表面运用平面投影方式,对于立方体可以在x,y方向分别进行平面投影,但是要注意边缘接缝的融合.或者采用无缝连续的纹理,并使用cubic投影方式,多数软件有图片自动缩放功能,使图像与表面吻合,显然,如果你的图像与表面形状不同,自动缩放就会改变图像的比例以吻合表面,这通常会产生不理想的效果,所以制作贴图前先测量你的物体尺寸。
[0023] 参照图1,是根据本发明优选实施例的方法流程示意图:
[0024] 由烘培不同精度的光照图,地形和对应光照图切割,重新计算切割后的地形和光照图的UV对应关系数据,重新应用切割后光照图,4个过程组成。
[0025] 使用的光照图会在地形切割之前进行烘培,而不是先切割地形,然后拼接后再烘培。
[0026] 先进行多次烘培,生成不同精度的光照图。根据场景和游戏的不同来决定使用的LOD级别数量。LOD级别的数量决定了烘培次数和每次烘培使用的光照图精度。
[0027] 切割光照图的过程中,会将不同级别的光照图都按照地形切割方案进行切割。有了多种精度的光照图碎片,才能在游戏运行过程中可以根据LOD的级别,进行动态切换。
[0028] 针对不同精度的光照图,分别生成多份地形碎片到具体精度光照图的对应关系数据。当加载/切换不同精度的光照图时,即可通过此对应关系数据进行应用对应的光照图。
[0029] 每个切割后的地形碎片都会拥有多份不同精度的光照图,与之对应,随着此地形碎片渐渐远离相机,此碎片也会根据相应的LOD规则切换成对应低精度的光照图。
[0030] 进一步,先将根据场景和游戏的特点,选定好LOD级别的数量。然后分别根据不同的LOD级别设置光照图的烘培精度,进行烘培。从而得到对应LOD级别数量的整套光照图。
[0031] 更进一步的,将地形进行按照想要的尺寸进行切分,同时根据此地形映射到光照图的UV数据,计算出此地形使用的光照图数据在光照图文件中的区域。然后将此区域的数据切割出来,重新将其保存为一张光照图。对所有精度的光照图都进行上述光照图切割操作后,我们就得到了全部精度下对应切割后的地形碎片的光照图碎片。
[0032] 更进一步的,将光照图和地形切分后,我们再根据新的光照图碎片信息计算出新的地形碎片与光照图碎片的UV对应关系,进行保存。
[0033] 最后,在游戏运行时我们根据既定的LOD(层次细节)规则,按照相机与地图碎片的距离计算得到此地图随便需要光照图的精度,然后拿到对应的光照图碎片和对应关系数据进行应用即可。
[0034] 下面举一实施例加以说明,
[0035] 1.先根据游戏类型和场景特点确定好LOD级别数量,通过已经确定的LOD级别数量,使用完整场景分别烘培出对应精度的光照图。并且分别保存多个精度下地形对应的光照图位置数据Terrain.lightmapScaleOffset和Terrain.lightmapIndex
[0036] 2.根据地形数据中Terrain.lightmapScaleOffset,Terrain.lightmapIndex两个参数可以确定此地形使用的光照图的位置。
[0037] Terrain.lightmapIndex决定了使用的光照图序号,通过它可以拿到具体的光照图图片。Terrain.lightmapScaleOffset决定了在此图片中的位置,Terrain.lightmapScaleOffset.z(后简称z),Terrain.lightmapScaleOffset.w(后简称w)分别决定了使用区域的起始UV,Terrain.lightmapScaleOffset.x(后简称x),Terrain.lightmapScaleOffset.y(后简称y)决定了使用区域的宽度UV。
[0038] 根据Terrain.lightmapScaleOffset和Terrain.lightmapIndex可以得到使用区域在光照图(光照图宽度简称为width,光照图高度简称为height)中的详细坐标:
[0039] X坐标起始像素:z*width(单位:像素)
[0040] Y坐标起始像素:w*height(单位:像素)
[0041] 宽度:x*height(单位:像素)
[0042] 高度:y*height(单位:像素)
[0043] 通过上述坐标即可将此区域的图片切割出来然后保存为一张独立的图片。此时即完成了光照图的切割。显然,切割后地形碎片对应的Terrain.lightmapScaleOffset的值即为(1,1,0,0)。有时为了边缘区域颜色并且将光照图扩展为变长为2的整次幂的方形图。也会在图片周围填充一部分空白像素,将切割后的光照图尺寸进行拉伸,那么Terrain.lightmapScaleOffset的值根据具体的扩展情况进行适应性调整即可。
[0044] 3.根据精度将光照图碎片和对应新计算得到的Terrain.lightmapScaleOffset数据进行持久化保存,最终会提供给运行时切换光照图使用。
[0045] 4.游戏运行时,根据LOD规则可以实时计算出每个地形碎片需要使用的光照图精度,然后加载对应精度光照图后,将其放入LightmapSettings.lightmaps中,之后Terrain.lightmapIndex即是光照图在LightmapSettings.lightmaps中的索引,Terrain.lightmapScaleOffset即是步骤2中计算得到的数据。在光照图加载完成后,将这两个数据设置回地形就完成了不同精度光照图的应用/切换。
[0046] 参照图2,是根据本发明优选实施例的系统结构示意图:
[0047] 包括:层次细节级别设置模块,用于设置各个游戏场景的层次细节的级别和数量,得到对应的光照贴图,其中光照贴图的精度和数量与层次细节的级别和数量一致;光照贴图烘焙模块,用于基于各个光照贴图的层级细节的级别设置对应的烘焙精度,基于烘焙精度对光照贴图进行逐一烘焙,得到对应游戏场景中烘焙后的光照贴图;光照贴图切割模块,用于将游戏场景按照一定尺寸进行切分,并根据原游戏场景与光照贴图的关联关系,将切分后的区域场景与对应光照贴图进行重新关联;场景加载模块,用于调用引擎内置相机遍历场景,实时计算区域场景与相机的距离,根据距离计算得到区域场景的层次细节的等级并加载关联的光照贴图。
[0048] 光照贴图烘焙模块还包括:算法烘焙单元,用于使用指定算法对光照贴图进行烘焙,其中指定算法包括路径追踪算法、辐射度算法以及光子映射算法。
[0049] 光照贴图切割模块还包括:切分单元,用于将游戏场景的地形按照预设尺寸进行切分;映射切割单元,用于根据切分后的地形映射到对应光照贴图的坐标数据,并根据坐标数据计算出对应的光照贴图区域,将光照贴图区域对应的光照贴图数据切割为单独的光照贴图;重关联单元,用于将单独的光照贴图与对应的切分后的地形进行重关联。
[0050] 场景加载模块还包括:相机控制单元,用于控制相机跟随玩家操作的人物行动,并实时计算人物位于场景中的各个区域场景与相机的距离;计算单元,用于根据距离按照显示规则计算对应区域场景的层次细节的等级;光照贴图加载单元,用于根据层次细节的等级加载对应的关联光照贴图。
[0051] 应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
[0052] 此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
[0053] 进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
[0054] 计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
[0055] 以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈