地形切割的顶点重建方法、装置、处理器及终端转让专利

申请号 : CN201910295497.7

文献号 : CN109925716B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 叶永盛钟昆达

申请人 : 网易(杭州)网络有限公司

摘要 :

本发明公开了一种地形切割的顶点重建方法、装置、处理器及终端。该方法包括:获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;依据顶点数据重建待渲染的三角面片。本发明解决了相关技术中所提供的地形改变方式局限在单一平面的范围内,缺乏灵活性和真实感的技术问题。

权利要求 :

1.一种地形切割的顶点重建方法,其特征在于,包括:

获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;

根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据;

依据所述顶点数据重建待渲染的三角面片;

其中,获取所述待移除的单位地块的所述位置信息包括:获取游戏角色的攻击轨迹与所述待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,所述三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;根据所述第一坐标和所述第二坐标从所述碰撞点所在的地形块中提取体块,其中,所述体块包括:所述待移除的单位地块、与所述待移除的单位地块的上表面相邻的第一单位地块以及与所述待移除的单位地块的下表面相邻的第二单位地块;将所述体块对半切割,得到第一切割体块和第二切割体块;

根据所述第三坐标分别从所述第一切割体块和所述第二切割体块中确定所述位置信息。

2.根据权利要求1所述的方法,其特征在于,根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据包括:第一确定步骤,根据所述位置信息确定所述待移除的单位地块为地底单位地块;

第一判断步骤,判断所述地底单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建所述待查询侧面的多个顶点的坐标数据,其中,所述待查询侧面包括:所述地底单位地块默认设置的上表面、下表面和多个侧面;

第二判断步骤,判断所述地底单位地块的各个侧面是否均已查询完毕,如果否,则返回所述第一判断步骤,如果是,则确定与所述待移除的单位地块的相邻单位地块的顶点数据。

3.根据权利要求2所述的方法,其特征在于,在根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据之后,还包括:将与所述待移除的单位地块的相邻单位地块的顶点数据存储至第一缓存,并对所述第一缓存中存储的相邻单位地块的顶点数据进行更新。

4.根据权利要求1所述的方法,其特征在于,根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据包括:第二确定步骤,根据所述位置信息确定所述待移除的单位地块为地表单位地块;

第三判断步骤,判断所述地表单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建所述待查询侧面的多个顶点的坐标数据,其中,所述待查询侧面由交点位置和所述地表单位地块实际包含的顶点位置确定,所述交点位置由所述地表单位地块与地表切割面相交的部分切面和所述地表单位地块的默认设置的各个面来确定;

第四判断步骤,判断所述地表单位地块的各个侧面是否均已查询完毕,如果否,则返回所述第三判断步骤,如果是,则确定与所述待移除的单位地块的相邻单位地块的顶点数据。

5.根据权利要求4所述的方法,其特征在于,在根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据之后,还包括:将与所述待移除的单位地块的相邻单位地块的顶点数据存储至第二缓存,并对所述第二缓存中存储的相邻单位地块的顶点数据进行更新。

6.一种地形切割的顶点重建装置,其特征在于,包括:

获取模块,用于获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;

确定模块,用于根据所述位置信息确定与所述待移除的单位地块的相邻单位地块的顶点数据;

重建模块,用于依据所述顶点数据重建待渲染的三角面片;

其中,获取模块包括:获取单元,用于获取游戏角色的攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;提取单元,用于根据第一坐标和第二坐标从碰撞点所在的地形块中提取体块,其中,体块包括:待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块;切割单元,用于将体块对半切割,得到第一切割体块和第二切割体块;第一确定单元,用于根据第三坐标分别从第一切割体块和第二切割体块中确定位置信息。

7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的地形切割的顶点重建方法。

8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的地形切割的顶点重建方法。

9.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至5中任意一项所述的地形切割的顶点重建方法。

说明书 :

地形切割的顶点重建方法、装置、处理器及终端

技术领域

[0001] 本发明涉及计算机领域,具体而言,涉及一种地形切割的顶点重建方法、装置、处理器及终端。

背景技术

[0002] 在三维(3D)游戏中进行地形渲染通常是将整个地形划分成若干个地形块(Chunk)。每个地形块可以看成是由多个顶点组成的平面。每个顶点所记录用于渲染的信息可以包括但不限于:高度、贴图UV、法线向量。由此,通过在编辑器中调整顶点的相关信息,即可构造出各式各样在游戏场景中所使用的地形。
[0003] 相关技术中所提供的地形顶点平面只能通过高度值进行调整,采用动态改变地形顶点的高度(例如:在轰炸位置随机地降低地形顶点的高度值)的实现方式,进而产生地形破坏形变的效果。
[0004] 然而,上述在平面维度上通过修改顶点的高度数据来实现地形的改变,其对游戏空间维度的拓展具有较大局限性,进而在游戏过程中,游戏玩家与地形改变的交互通常局限在单一平面(例如:XZ平面,Y为高度方向)的范围内。
[0005] 针对上述的问题,目前尚未提出有效的解决方案。

发明内容

[0006] 本发明至少部分实施例提供了一种地形切割的顶点重建方法、装置、处理器及终端,以至少解决相关技术中所提供的地形改变方式局限在单一平面的范围内,缺乏灵活性和真实感的技术问题。
[0007] 根据本发明其中一实施例,提供了一种地形切割的顶点重建方法,包括:
[0008] 获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;依据顶点数据重建待渲染的三角面片。
[0009] 可选地,获取待移除的单位地块的位置信息包括:获取游戏角色的攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;根据第一坐标和第二坐标从碰撞点所在的地形块中提取体块,其中,体块包括:待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块;将体块对半切割,得到第一切割体块和第二切割体块;根据第三坐标分别从第一切割体块和第二切割体块中确定位置信息。
[0010] 可选地,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据包括:第一确定步骤,根据位置信息确定待移除的单位地块为地底单位地块;第一判断步骤,判断地底单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面包括:地底单位地块默认设置的上表面、下表面和多个侧面;第二判断步骤,判断地底单位地块的各个侧面是否均已查询完毕,如果否,则返回第一判断步骤,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0011] 可选地,在根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据之后,还包括:将与待移除的单位地块的相邻单位地块的顶点数据存储至第一缓存,并对第一缓存中存储的相邻单位地块的顶点数据进行更新。
[0012] 可选地,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据包括:第二确定步骤,根据位置信息确定待移除的单位地块为地表单位地块;第三判断步骤,判断地表单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面由交点位置和地表单位地块实际包含的顶点位置确定,交点位置由地表单位地块与地表切割面相交的部分切面和地表单位地块的默认设置的各个面来确定;第四判断步骤,判断地表单位地块的各个侧面是否均已查询完毕,如果否,则返回第三判断步骤,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0013] 可选地,在根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据之后,还包括:将与待移除的单位地块的相邻单位地块的顶点数据存储至第二缓存,并对第二缓存中存储的相邻单位地块的顶点数据进行更新。
[0014] 根据本发明其中一实施例,还提供了一种地形切割的顶点重建装置,包括:
[0015] 获取模块,用于获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;确定模块,用于根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;重建模块,用于依据顶点数据重建待渲染的三角面片。
[0016] 可选地,获取模块包括:获取单元,用于获取游戏角色的攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;提取单元,用于根据第一坐标和第二坐标从碰撞点所在的地形块中提取体块,其中,体块包括:待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块;切割单元,用于将体块对半切割,得到第一切割体块和第二切割体块;第一确定单元,用于根据第三坐标分别从第一切割体块和第二切割体块中确定位置信息。
[0017] 可选地,确定模块包括:第二确定单元,用于根据位置信息确定待移除的单位地块为地底单位地块;第一判断单元,用于判断地底单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面包括:地底单位地块默认设置的上表面、下表面和多个侧面;第二判断单元,用于判断地底单位地块的各个侧面是否均已查询完毕,如果否,则返回第一判断单元,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0018] 可选地,上述装置还包括:第一缓存模块,用于将与待移除的单位地块的相邻单位地块的顶点数据存储至第一缓存,并对第一缓存中存储的相邻单位地块的顶点数据进行更新。
[0019] 可选地,确定模块包括:第三确定单元,用于根据位置信息确定待移除的单位地块为地表单位地块;第三判断单元,用于判断地表单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面由交点位置和地表单位地块实际包含的顶点位置确定,交点位置由地表单位地块与地表切割面相交的部分切面和地表单位地块的默认设置的各个面来确定;第四判断单元,用于判断地表单位地块的各个侧面是否均已查询完毕,如果否,则返回第三判断单元,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0020] 可选地,上述装置还包括:第二缓存模块,用于将与待移除的单位地块的相邻单位地块的顶点数据存储至第二缓存,并对第二缓存中存储的相邻单位地块的顶点数据进行更新。
[0021] 根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的地形切割的顶点重建方法。
[0022] 根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的地形切割的顶点重建方法。
[0023] 根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的地形切割的顶点重建方法。
[0024] 在本发明至少部分实施例中,采用获取待移除的单位地块的位置信息,该游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块的方式,通过位置信息确定与待移除的单位地块的相邻单位地块的顶点数据以及依据顶点数据重建待渲染的三角面片,达到了对地形的改变本质上是将地形的顶点数据从平面维度拓展为网格化任意立体网格形状,极大地拓展了地形系统的交互维度,使得围绕地形改变推出更多有趣、可玩度高的玩法的目的,从而实现了通过打通游戏的空间维度进而提升游戏的趣味性与可玩性的技术效果,进而解决了相关技术中所提供的地形改变方式局限在单一平面的范围内,缺乏灵活性和真实感的技术问题。

附图说明

[0025] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0026] 图1是根据本发明其中一实施例的地形切割的顶点重建方法的流程图;
[0027] 图2是根据本发明其中一可选实施例的地形分割俯视示意图;
[0028] 图3是根据本发明其中一可选实施例的获取待移除的单位地块的示意图;
[0029] 图4是根据本发明其中一可选实施例的地底网格顶点重建的示意图;
[0030] 图5是根据本发明其中一可选实施例的地表网格顶点重建的示意图;
[0031] 图6是根据本发明其中一实施例的地形切割的顶点重建装置的结构框图;
[0032] 图7是根据本发明其中一可选实施例的地形切割的顶点重建装置的结构框图。

具体实施方式

[0033] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0034] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0035] 根据本发明其中一实施例,提供了一种地形切割的顶点重建方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
[0036] 该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述移动终端还可以包括用于通信功能的传输设备以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
[0037] 存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的地形切割的顶点重建方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的地形切割的顶点重建方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0038] 传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
[0039] 在本实施例中提供了一种运行于上述移动终端的地形切割的顶点重建方法,图1是根据本发明其中一实施例的地形切割的顶点重建方法的流程图,如图1所示,该方法包括如下步骤:
[0040] 步骤S12,获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;
[0041] 步骤S14,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;
[0042] 步骤S16,依据顶点数据重建待渲染的三角面片。
[0043] 通过上述步骤,可以采用获取待移除的单位地块的位置信息,该游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块的方式,通过位置信息确定与待移除的单位地块的相邻单位地块的顶点数据以及依据顶点数据重建待渲染的三角面片,达到了对地形的改变本质上是将地形的顶点数据从平面维度拓展为网格化任意立体网格形状,极大地拓展了地形系统的交互维度,使得围绕地形改变推出更多有趣、可玩度高的玩法的目的,从而实现了通过打通游戏的空间维度进而提升游戏的趣味性与可玩性的技术效果,进而解决了相关技术中所提供的地形改变方式局限在单一平面的范围内,缺乏灵活性和真实感的技术问题。
[0044] 上述游戏场景内的地形资源可以被切割为多个地形块。每个地形块又可以进一步被切割为多个单位地块。每个单位地块包括上表面、下表面以及前后左右四个侧面。上表面、下表面以及前后左右四个侧面中的每个平面均由两个三角面片组成。
[0045] 图2是根据本发明其中一可选实施例的地形分割俯视示意图,如图2所示,地形系统的一个地形块的平面大小为长(320分米)×宽(320分米)。在对该地形块进行分割处理后的得到的单位地块平面的网格大小为长(20分米)×宽(20分米)。每个单位地块平面的网格关联四个顶点,由此构造出两个三角面片,用于输出至渲染系统进行游戏场景内的地形绘制。
[0046] 通过地形系统的网格化顶点切割算法,获取并调整空间维度上任意层次的地形顶点数据,将连续平面顶点拓展成空间中非连续的网格化顶点,同时利用合理的切割缓存策略,使得地形破坏能够在实际游戏中高效、稳定地运行。
[0047] 可选地,在步骤S12中,获取待移除的单位地块的位置信息可以包括以下执行步骤:
[0048] 步骤S121,获取游戏角色的攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;
[0049] 步骤S122,根据第一坐标和第二坐标从碰撞点所在的地形块中提取体块,其中,体块包括:待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块;
[0050] 步骤S123,将体块对半切割,得到第一切割体块和第二切割体块;
[0051] 步骤S124,根据第三坐标分别从第一切割体块和第二切割体块中确定位置信息。
[0052] 在游戏玩家所操控的游戏角色发动攻击时,能够确定攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维绝对坐标(x,y,z),其中,x和z为水平方向上的第一坐标和第二坐标,y为垂直高度方向上的第三坐标。图3是根据本发明其中一可选实施例的获取待移除的单位地块的示意图,如图3所示,首先可以根据碰撞点的坐标(x/20,z/20)从地形块中提取对应的体块,该体块包括待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块。然后,由于待移除的单位地块的处理基本单位为三角体,因此需要对提取到的体块进行纵向垂直对半切割得到第一切割体块和第二切割体块。最后再按照碰撞点的坐标(y/15)和待移除的单位地块的高度(通常为15分米)从切割后体块(即第一切割体块和第二切割体块)分割出待移除的单位地块,由此确定待移除的单位地块的位置信息。
[0053] 可选地,在步骤S14中,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据可以包括以下执行步骤:
[0054] 步骤S141,根据位置信息确定待移除的单位地块为地底单位地块;
[0055] 步骤S142,判断地底单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面包括:地底单位地块默认设置的上表面、下表面和多个侧面;
[0056] 步骤S143,判断地底单位地块的各个侧面是否均已查询完毕,如果否,则返回步骤S142,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0057] 地形网格化切割的顶点重建算法可以分为地底网格的顶点重建和地表网格的顶点重建,其目的在于:在指定网格被移除之后,计算得到指定网格相邻的网格的顶点数据,从而重新构建相应的三角面片再输出至渲染系统中。地底网格所属的地块为地底单位地块,地表网格所属的地块为地表单位地块。
[0058] 地底网格是指满足上表面高度低于网格所在地表的四个顶点的最低高度的网格。对于地底网格,需要查询其邻近网格的移除状态。对于相邻网格未被移除的邻接面,构建相应的顶点和三角面。鉴于每个可移除的单位地块通常为完整的六面体,其具有六个面(包括:上表面、下表面以及四个侧面),因此,需要确认与该六个面相邻的单位地块的当前状态。如果相邻的单位地块已被移除,则无需再生成对应的邻接面;如果相邻的单位地块未被移除,则需要生成对应的邻接面,其将会构建出五个顶点和四个三角面。图4是根据本发明其中一可选实施例的地底网格顶点重建的示意图,如图4所示,当与邻接面1相邻的单位地块未被移除,则需要生成该邻接面,其中,五个顶点分别为A、B、C、D、E,四个三角面分别为ABE、BCE、CDE和ADE。同理,当与邻接面2相邻的单位地块未被移除,则需要生成该邻接面,其中,五个顶点分别为B、C、G、F、H,四个三角面分别为BCH、CGH、GFH和BFH。
[0059] 可选地,在步骤S14,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据之后,还可以包括以下执行步骤:
[0060] 步骤S17,将与待移除的单位地块的相邻单位地块的顶点数据存储至第一缓存,并对第一缓存中存储的相邻单位地块的顶点数据进行更新。
[0061] 针对地底网格顶点重建得到的顶点数据,可以存储至第一缓存。然而,伴随着被移除的单位地块的数量逐步增多,第一缓存的存储空间消耗会呈线性增长,此时,可以对先前已存储至第一缓存的被移除的单位地块的相邻单位地块的顶点数据进行更新,以降低存储空间消耗。
[0062] 可选地,在步骤S14中,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据可以包括以下执行步骤:
[0063] 步骤S144,根据位置信息确定待移除的单位地块为地表单位地块;
[0064] 步骤S145,判断地表单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面由交点位置和地表单位地块实际包含的顶点位置确定,交点位置由地表单位地块与地表切割面相交的部分切面和地表单位地块的默认设置的各个面来确定;
[0065] 步骤S146,判断地表单位地块的各个侧面是否均已查询完毕,如果否,则返回步骤S145,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0066] 地表网格是指上表面高度高于网格所在地表的四个顶点的最低高度的网格,即该网格存在与地表相接的情况。图5是根据本发明其中一可选实施例的地表网格顶点重建的示意图,如图5所示,地块A、地块B、地块C和地块D均为上述可移除的单位地块在经过纵向对半垂直切割后得到的切割体块。由顶点1、顶点2和顶点3形成的三角形为地表切割面。地块A与地表切割面相交的部分切面为由顶点1、顶点4和顶点5形成的三角形。地块B与地表切割面相交的部分切面为由顶点4、顶点5和顶点6形成的三角形以及由顶点4、顶点2和顶点6形成的三角形。地块C与地表切割面相交的部分切面为由顶点2、顶点6和顶点3形成的三角形。地块D没有形成三角形。假设地块B被移除,那么地块B与地表切割面相交的部分切面和地表单位地块的默认设置的各个面所确定的交点位置为顶点2、顶点4、顶点5和顶点6。而地块B实际包含的顶点位置为顶点7和顶点8。由此确定地块B的各个待查询侧面分别为顶点4、顶点5和顶点7形成的上表面,顶点2、顶点6和顶点8形成的下表面,顶点2、顶点4、顶点5和顶点
6形成的部分切面,顶点2、顶点4、顶点7和顶点8形成的侧面以及顶点5、顶点6、顶点7和顶点
8形成的侧面。然后,再依次判断每个待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据。以顶点4、顶点5和顶点7形成的上表面为例,如果顶点1、顶点4、顶点5和顶点7形成的三角体未被移除,则需要确定用于重建上表面的顶点4、顶点5和顶点7,以重新生成顶点4、顶点5和顶点7形成的上表面。
[0067] 可选地,在步骤S14,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据之后,还可以包括以下执行步骤:
[0068] 步骤S18,将与待移除的单位地块的相邻单位地块的顶点数据存储至第二缓存,并对第二缓存中存储的相邻单位地块的顶点数据进行更新。
[0069] 针对地表网格顶点重建得到的顶点数据,可以存储至第二缓存。该第二缓存不同于上述第一缓存。然而,伴随着被移除的单位地块的数量逐步增多,第二缓存的存储空间消耗会呈线性增长,此时,可以对先前已存储至第二缓存的被移除的单位地块的相邻单位地块的顶点数据进行更新,以降低存储空间消耗。
[0070] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0071] 在本实施例中还提供了一种地形切割的顶点重建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
[0072] 图6是根据本发明其中一实施例的地形切割的顶点重建装置的结构框图,如图6所示,该装置包括:获取模块10,用于获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;确定模块20,用于根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;重建模块30,用于依据顶点数据重建待渲染的三角面片。
[0073] 可选地,获取模块10包括:获取单元(图中未示出),用于获取游戏角色的攻击轨迹与待移除的单位地块的碰撞体相交的碰撞点的三维坐标,其中,三维坐标包括:水平方向上的第一坐标和第二坐标,垂直高度方向上的第三坐标;提取单元(图中未示出),用于根据第一坐标和第二坐标从碰撞点所在的地形块中提取体块,其中,体块包括:待移除的单位地块、与待移除的单位地块的上表面相邻的第一单位地块以及与待移除的单位地块的下表面相邻的第二单位地块;切割单元(图中未示出),用于将体块对半切割,得到第一切割体块和第二切割体块;第一确定单元(图中未示出),用于根据第三坐标分别从第一切割体块和第二切割体块中确定位置信息。
[0074] 可选地,确定模块20包括:第二确定单元(图中未示出),用于根据位置信息确定待移除的单位地块为地底单位地块;第一判断单元(图中未示出),用于判断地底单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面包括:地底单位地块默认设置的上表面、下表面和多个侧面;第二判断单元(图中未示出),用于判断地底单位地块的各个侧面是否均已查询完毕,如果否,则返回第一判断单元,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0075] 可选地,图7是根据本发明其中一可选实施例的地形切割的顶点重建装置的结构框图,如图7所示,该装置除包括图6所示的所有模块外,还包括:第一缓存模块40,用于将与待移除的单位地块的相邻单位地块的顶点数据存储至第一缓存,并对第一缓存中存储的相邻单位地块的顶点数据进行更新。
[0076] 可选地,确定模块20包括:第三确定单元(图中未示出),用于根据位置信息确定待移除的单位地块为地表单位地块;第三判断单元(图中未示出),用于判断地表单位地块的待查询侧面的相邻单位地块是否被移除,如果相邻单位地块未被移除,则确定用于重建待查询侧面的多个顶点的坐标数据,其中,待查询侧面由交点位置和地表单位地块实际包含的顶点位置确定,交点位置由地表单位地块与地表切割面相交的部分切面和地表单位地块的默认设置的各个面来确定;第四判断单元(图中未示出),用于判断地表单位地块的各个侧面是否均已查询完毕,如果否,则返回第三判断单元,如果是,则确定与待移除的单位地块的相邻单位地块的顶点数据。
[0077] 可选地,如图7所示,上述装置还包括:第二缓存模块50,用于将与待移除的单位地块的相邻单位地块的顶点数据存储至第二缓存,并对第二缓存中存储的相邻单位地块的顶点数据进行更新。
[0078] 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
[0079] 本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0080] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0081] S1,获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;
[0082] S2,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;
[0083] S3,依据顶点数据重建待渲染的三角面片。
[0084] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
[0085] 本发明的实施例还提供了一种处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
[0086] 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
[0087] S1,获取待移除的单位地块的位置信息,其中,游戏场景内的地形资源被切割为多个地形块,每个地形块被切割为多个单位地块;
[0088] S2,根据位置信息确定与待移除的单位地块的相邻单位地块的顶点数据;
[0089] S3,依据顶点数据重建待渲染的三角面片。
[0090] 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0091] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0092] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0093] 在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0094] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0095] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0096] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0097] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。