CN110070609A - 地形数据的处理方法、装置、存储介质、处理器及终端 - Google Patents

地形数据的处理方法、装置、存储介质、处理器及终端 Download PDF

Info

Publication number
CN110070609A
CN110070609A CN201910295484.XA CN201910295484A CN110070609A CN 110070609 A CN110070609 A CN 110070609A CN 201910295484 A CN201910295484 A CN 201910295484A CN 110070609 A CN110070609 A CN 110070609A
Authority
CN
China
Prior art keywords
data
game
scene
plot
terrain
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201910295484.XA
Other languages
English (en)
Other versions
CN110070609B (zh
Inventor
叶永盛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Netease Hangzhou Network Co Ltd
Original Assignee
Netease Hangzhou Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Netease Hangzhou Network Co Ltd filed Critical Netease Hangzhou Network Co Ltd
Priority to CN201910295484.XA priority Critical patent/CN110070609B/zh
Publication of CN110070609A publication Critical patent/CN110070609A/zh
Application granted granted Critical
Publication of CN110070609B publication Critical patent/CN110070609B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/005Tree description, e.g. octree, quadtree
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种地形数据的处理方法、装置、存储介质、处理器及终端。该方法包括:在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;根据游戏角色的攻击位置对数据内容进行更新。本发明解决了相关技术在支持对网格化地块进行动态地破坏的游戏中,使用基于块的文件存储方式来进行数据存储,易消耗过多的终端硬件资源从而导致终端难以正常运行的技术问题。

Description

地形数据的处理方法、装置、存储介质、处理器及终端
技术领域
本发明涉及计算机领域,具体而言,涉及一种地形数据的处理方法、装置、存储介质、处理器及终端。
背景技术
地形破坏的游戏玩法通常是为了实现足够丰富的趣味性和拓展性而设置,其需要对于游戏场景内地形以下的部分均可以进行破坏。在游戏场景大小达到一定量级之后,针对地形内被移除地块的地形破坏数据所占用的存储空间将会显著增大,同时为了确保游戏玩家游戏过程的流畅性,对于存储空间内的数据读取操作与数据修改操作的耗时也需要得到充分地控制。
相关技术中所提供的部分游戏中也支持对网格化地块进行动态地破坏,其实现方案在于:使用基于块的文件存储方式来进行数据存储,其基本方式是块(Block)数据会依序以字节数组的方式存储在文件中。然而,在存储文件中包含有过多游戏定制的数据内容(例如:高度图、块的对象信息、光照信息、水面信息等)。当对数据进行频繁地修改和同步时,Block数据的实现则会消耗过多的内存。因此,如果在***中实现该方案,则极有可能导致手机难以正常运行。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种地形数据的处理方法、装置、存储介质、处理器及终端,以至少解决相关技术在支持对网格化地块进行动态地破坏的游戏中,使用基于块的文件存储方式来进行数据存储,易消耗过多的终端硬件资源从而导致终端难以正常运行的技术问题。
根据本发明其中一实施例,提供了一种地形数据的处理方法,包括:
在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;根据游戏角色的攻击位置对数据内容进行更新。
可选地,在根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容之前,还包括:在离线状态下,对游戏场景进行扫描,生成游戏场景地形数据。
可选地,对游戏场景进行扫描,生成游戏场景地形数据包括:扫描游戏场景的场景文件,记录游戏场景中包含的每个基准数据块对应的地基模型的标识;按序针对每个基准数据块,按照预设单位面积间隔扫描每个间隔位置处的高度数据,并根据标识对每个基准数据块对应的地基模型的三角面片进行遍历,以确定在每个基准数据块对应的地基模型的限制下可移除高度的最大值,其中,高度数据包括:地形高度和水面高度;采用高度数据生成游戏场景地形数据。
可选地,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容包括:根据游戏角色的移动确定待加载的感兴趣区域AOI范围;根据待加载的AOI范围在内存中加载待使用的数据内容。
可选地,根据待加载的AOI范围在内存中加载待使用的数据内容包括:根据待加载的AOI范围调用主线程向加载线程发起添加任务请求;调用加载线程根据添加任务请求将待使用的数据内容加载至主线程的数据池。
可选地,根据游戏角色的攻击位置对数据内容进行更新包括:根据攻击位置确定待移除的地块的位置;如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新。
可选地,根据攻击位置确定待移除的地块的位置包括:根据攻击位置的碰撞点世界坐标计算碰撞点所在的基准数据块的第一索引以及该基准数据块内最小单位地块的第二索引;通过第一索引和第二索引确定待移除的地块的位置。
可选地,如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新包括:调用主线程将数据内容从数据池添加至主线程的待处理列表中;对待处理列表中的数据内容进行分帧解析,得到解析结果;将解析结果设置为回调函数的参数,通过执行回调函数对数据内容进行更新,其中,回调函数依据待移除的地块的位置进行配置。
根据本发明其中一实施例,还提供了一种地形数据的处理装置,包括:
加载模块,用于在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;更新模块,用于根据游戏角色的攻击位置对数据内容进行更新。
可选地,上述装置还包括:生成模块,用于在离线状态下,对游戏场景进行扫描,生成游戏场景地形数据。
可选地,生成模块包括:第一扫描单元,用于扫描游戏场景的场景文件,记录游戏场景中包含的每个基准数据块对应的地基模型的标识;第二扫描单元,用于按序针对每个基准数据块,按照预设单位面积间隔扫描每个间隔位置处的高度数据,并根据标识对每个基准数据块对应的地基模型的三角面片进行遍历,以确定在每个基准数据块对应的地基模型的限制下可移除高度的最大值,其中,高度数据包括:地形高度和水面高度;生成单元,用于采用高度数据生成游戏场景地形数据。
可选地,加载模块包括:第一确定单元,用于根据游戏角色的移动确定待加载的感兴趣区域AOI范围;加载单元,用于根据待加载的AOI范围在内存中加载待使用的数据内容。
可选地,加载单元包括:第一处理子单元,用于根据待加载的AOI范围调用主线程向加载线程发起添加任务请求;第二处理子单元,用于调用加载线程根据添加任务请求将待使用的数据内容加载至主线程的数据池。
可选地,更新模块包括:第二确定单元,用于根据攻击位置确定待移除的地块的位置;更新单元,用于如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新。
可选地,第二确定单元包括:计算子单元,用于根据攻击位置的碰撞点世界坐标计算碰撞点所在的基准数据块的第一索引以及该基准数据块内最小单位地块的第二索引;确定子单元,用于通过第一索引和第二索引确定待移除的地块的位置。
可选地,更新单元包括:第三处理子单元,用于调用主线程将数据内容从数据池添加至主线程的待处理列表中;第四处理子单元,用于对待处理列表中的数据内容进行分帧解析,得到解析结果;第五处理子单元,用于将解析结果设置为回调函数的参数,通过执行回调函数对数据内容进行更新,其中,回调函数依据待移除的地块的位置进行配置。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的地形数据的处理方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的地形数据的处理方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的地形数据的处理方法。
在本发明至少部分实施例中,采用游戏场景地形数据包括多个基准数据块,每个基准数据块采用层次化数据结构的方式,通过在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,以及根据游戏角色的攻击位置对数据内容进行更新,达到了针对移动终端的游戏环境,在提供动态地形网格化破坏时实现高效地数据存储与数据同步的目的,从而实现了一方面可以减少数据占用的内存,对移动终端性能具备更好的兼容性,另一方面可以实现数据的高效查询和修改,由此确保游戏运行时的流畅性的技术效果,进而解决了相关技术在支持对网格化地块进行动态地破坏的游戏中,使用基于块的文件存储方式来进行数据存储,易消耗过多的终端硬件资源从而导致终端难以正常运行的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的地形数据的处理方法的流程图;
图2是根据本发明其中一可选实施例的山坡顶部数据块分层的切分效果示意图;
图3是根据本发明其中一可选实施例的离线生成八叉树数据过程的示意图;
图4是根据本发明其中一可选实施例的数据加载过程示意图;
图5是根据本发明其中一实施例的地形数据的处理装置的结构框图;
图6是根据本发明其中一可选实施例的地形数据的处理装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明其中一实施例,提供了一种地形数据的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,移动终端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器,可选地,上述移动终端还可以包括用于通信功能的传输设备以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的地形数据的处理方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的地形数据的处理方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至移动终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述移动终端的地形数据的处理方法。可选地,所述方法应用于移动终端,通过执行所述游戏应用从而渲染生成游戏应用的图形用户界面,所述图形用户界面之中包括全部或局部的游戏场景,图1是根据本发明其中一实施例的地形数据的处理方法的流程图,如图1所示,该方法包括如下步骤:
步骤S14,在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;
步骤S16,根据游戏角色的攻击位置对数据内容进行更新。
通过上述步骤,可以采用游戏场景地形数据包括多个基准数据块,每个基准数据块采用层次化数据结构的方式,通过在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,以及根据游戏角色的攻击位置对数据内容进行更新,达到了针对移动终端的游戏环境,在提供动态地形网格化破坏时实现高效地数据存储与数据同步的目的,从而实现了一方面可以减少数据占用的内存,对移动终端性能具备更好的兼容性,另一方面可以实现数据的高效查询和修改,由此确保游戏运行时的流畅性的技术效果,进而解决了相关技术在支持对网格化地块进行动态地破坏的游戏中,使用基于块的文件存储方式来进行数据存储,易消耗过多的终端硬件资源从而导致终端难以正常运行的技术问题。
可选地,在步骤S14,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容之前,还可以包括以下执行步骤:
步骤S12,在离线状态下,对游戏场景进行扫描,生成游戏场景地形数据。
针对移动终端的游戏环境,对地形***进行网格化改造,并设置有基于八叉树的地块层次化数据结构以支持快速简洁地查询,以及支持游戏内的地形破坏数据的高效存储和同步。
在一个可选实施例中,地形的最小可破坏尺寸,即可移除最小单位地块的尺寸为长(20分米)×宽(20分米)×高(15分米)。为了记录游戏场景中地块与移除相关信息,在运行时提供高效的查询和修改接口,同时减少存储的数据量,因此配置有八叉树的层次化数据结构。具体地,将长(320分米)×宽(320分米)×高(120分米)设置为每个基准数据块的尺寸,并将每个基准数据块划分为如下五层的层次化结构:
第一层结构为320分米×120分米×320分米×1个;
第二层结构为160分米×60分米×160分米×8个;
第三层结构为80分米×30分米×80分米×8个;
第四层结构为40分米×15分米×40分米×8个;
第五层结构为20分米×15分米×20分米×4个。
需要说明的是,层次化结构的层数可以根据实际情况设置为任意层。可选地,上述五层的层次化结构根据游戏场景大小和视距设定,以使地块的尺寸不会过于细小从而导致冗余的中间数据过多,同时还能够确保合适距离的地块具有差异性。另外,层级数量可以基于块的尺寸进行倍增,只要能够确保最小层级的结构为20分米×15分米×20分米×4个即可。
在上述五层的层次化结构中,父节点负责记录子节点的网格状态。例如:假设第四层结构的地块为父节点,位于该第四层结构的地块内的第五层结构的地块为子节点,则该第四层结构的地块负责记录第五层结构的地块的网格状态。该网格状态可以分为:全部填满(FULL),全部移除(EMPTY),部分移除(MIXED)。如果子节点的网格状态为FULL或EMPTY,则无需再保存子节点的数据,即子节点信息与父节点信息相同,只需在父节点中保存一份记录即可。而MIXED状态则需要进一步迭代记录子节点的数据。图2是根据本发明其中一可选实施例的山坡顶部数据块分层的切分效果示意图,如图2所示,地表所代表的切割线以上的网格状态为EMPTY,地表所代表的切割线所经过的网格状态为MIXED,地表所代表的切割线以下的网格状态为FULL。
可选地,在步骤S12中,对游戏场景进行扫描,生成游戏场景地形数据可以包括以下执行步骤:
步骤S121,扫描游戏场景的场景文件,记录游戏场景中包含的每个基准数据块对应的地基模型的标识;
步骤S122,按序针对每个基准数据块,按照预设单位面积间隔扫描每个间隔位置处的高度数据,并根据标识对每个基准数据块对应的地基模型的三角面片进行遍历,以确定在每个基准数据块对应的地基模型的限制下可移除高度的最大值,其中,高度数据包括:地形高度和水面高度;
步骤S123,采用高度数据生成游戏场景地形数据。
上述地基模型可以包括但不限于:山、桥、石头、花草、树木。为了提升运行时的访问速度,上述八叉树数据通常是在离线扫描游戏场景的过程中生成的,然后在运行时动态加载到内存中。图3是根据本发明其中一可选实施例的离线生成八叉树数据过程的示意图,如图3所示,离线生成八叉树数据可以包括以下执行步骤:
步骤S302,扫描场景文件以记录每个基础数据块对应的地基模型的索引。
步骤S304,启动游戏客户端,通过移动view_position的方式依序扫描整个游戏场景的各个基础数据块,并针对每个基础数据块按照水平方向上20分米×20分米的位置间隔依次确定间隔位置处的地形高度和水面高度。
步骤S306,考虑到地基模型相关联的地块都是不可移除的,因此,为了提高精度,需要在扫描场景文件的过程中对这些地基模型的三角面片进行遍历,将相关联的地块的状态字段设置为不可移除。依序扫描每个基础数据块所包含的地基模型以遍历地基模型的三角面,并记录在地基模型限制下每个基础数据块中不可移除的最低高度,导出到中间文件以用于进一步的离线生成。
步骤S308,脱离游戏客户端,根据扫描场景文件所得到的高度数据,自底向上的构建出整个游戏场景地表相关联的八叉树数据(即上述游戏场景地形数据)。
步骤S310,按照索引导出数据文件,便于根据感兴趣区域(AOI)对数据进行动态加载,同时由于服务端一次性读取导出的Python pickle数据会占用过多的内存,因此,需要对数据文件进行压缩处理并按照字节格式供服务端使用。
可选地,在步骤S14中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容可以包括以下执行步骤:
步骤S141,根据游戏角色的移动确定待加载的感兴趣区域AOI范围;
步骤S142,根据待加载的AOI范围在内存中加载待使用的数据内容。
在进行地底冒险模式游戏的过程中,地块数据管理器会加载根据视距确定的AOI范围内的待使用的数据内容。该待使用的数据内容通常包括九宫格形式的多个基准数据块,其分别为游戏角色当前所在的基准数据块,以及在游戏角色移动方向上与游戏角色当前所在的基准数据块相邻的前、后、左、右、左前、右前、左后、右后八个方向的基准数据块。
可选地,步骤S142,根据待加载的AOI范围在内存中加载待使用的数据内容可以包括以下执行步骤:
步骤S1421,根据待加载的AOI范围调用主线程向加载线程发起添加任务请求;
步骤S1422,调用加载线程根据添加任务请求将待使用的数据内容加载至主线程的数据池。
由于游戏玩家所操控的游戏角色在游戏场景内频繁移动,AOI范围切换也相对频繁,因此会产生大量的文件读取操作。为了避免文件加载导致主线程的运行阻塞,针对地块数据额外可以启动一个数据加载的Pyhon线程。图4是根据本发明其中一可选实施例的数据加载过程示意图,如图4所示,加载线程中会维护一个加载任务队列。主线程通过发起添加任务请求和删除任务请求与加载线程进行交互。加载线程按照先进先出的规则执行加载任务,并在加载完成后将文件内容添加到主线程的数据池中,在此过程中会临时锁主线程的数据池操作。
可选地,在步骤S16中,根据游戏角色的攻击位置对数据内容进行更新可以包括以下执行步骤:
步骤S161,根据攻击位置确定待移除的地块的位置;
步骤S162,如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新。
如上所述,由于游戏玩家所操控的游戏角色在游戏场景内频繁移动,AOI范围切换也相对频繁,因此,AOI范围内所包含的基准数据块需要实时更新,进而从游戏场景地形数据中获取AOI范围内所包含的基准数据块的地形数据。考虑到AOI范围内所包含的基准数据块会由于被移除或攻击受损而造成地形变化,因此,还需要对AOI范围内所包含的基准数据块的地形数据进行更新。
可选地,在步骤S161中,根据攻击位置确定待移除的地块的位置可以包括以下执行步骤:
步骤S1611,根据攻击位置的碰撞点世界坐标计算碰撞点所在的基准数据块的第一索引以及该基准数据块内最小单位地块的第二索引;
步骤S1612,通过第一索引和第二索引确定待移除的地块的位置。
上述游戏场景地形数据可以采用单层的字典进行存储,索引Key为:(Layer,Grid_X,Grid_Y,Grid_Z)。父节点的状态(state)字段为16bit,每2bit存储一个子节点的状态信息,其中,00表示子节点已被移除,01表示子节点受到伤害,11表示子节点完好无损。父节点的mat_id字段负责记录地块的材质信息(用于体现在游戏中地块的血量、显示贴图等信息,例如:泥土、铁、岩浆)。叶子节点则采用32bit的无符号数(即同字节无符号数与有符号数相比,可以多出一倍的正整数信息)记录其材质、状态以及可否移除的信息。
导出数据的格式示例如下:
其中,3表示当前所处层级,(5,91,8)表示以3层的块尺寸80分米×30分米×80分米对游戏场景进行划分之后,所属块的位置索引,即所属块的绝对位置为5×80≤x≤6×80,91×30≤x≤92×30,8×80≤z≤9×80。
在运行过程中根据块索引查询mat_id和state时,首先根据世界坐标计算出对应的基础数据块索引(GridIndex,相当于上述第一索引)和对应的最小地块索引(CellIndex,相当于上述第二索引),然后再采用自顶向下的查询方式访问八叉树数据,并在每次访问过后将查询到的数据缓存在访问地块的字典中(CellMap),以便在下次访问时优先从缓存获取查询到的数据,从而避免重复的深层索引。
可选地,在步骤S162中,如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新可以包括以下执行步骤:
步骤S1621,调用主线程将数据内容从数据池添加至主线程的待处理列表中;
步骤S1622,对待处理列表中的数据内容进行分帧解析,得到解析结果;
步骤S1623,将解析结果设置为回调函数的参数,通过执行回调函数对数据内容进行更新,其中,回调函数依据待移除的地块的位置进行配置。
仍然如图4所示,主线程每帧会查看一下数据池是否存在新加载完成的数据,如果存在,则将数据池锁住,将数据内容添加到待处理列表中,并解锁数据池。然后,主线程再执行分帧解析操作,即每帧对待处理数据列表中添加的数据内容进行解压缩和反序列化处理,以得到解析结果。由此减少主线程的锁时间,同时通过执行分帧解析操作,避免一帧之内解析过多数据带来的卡顿问题。该解析结果通常是在离线状态下对游戏场景的地形进行扫描所生成的原始数据。然而,由于原始数据所对应的各个基准数据块会由于被移除或攻击受损而造成地形变化,因此,需要执行数据加载的回调函数将原始数据更新为与当前游戏场景相匹配的数据内容。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种地形数据的处理装置。可选地,所述方法应用于移动终端,通过执行所述游戏应用从而渲染生成游戏应用的图形用户界面,所述图形用户界面之中包括全部或局部的游戏场景。该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图5是根据本发明其中一实施例的地形数据的处理装置的结构框图,如图5所示,该装置包括:加载模块10,用于在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;更新模块20,用于根据游戏角色的攻击位置对数据内容进行更新。
可选地,图6是根据本发明其中一可选实施例的地形数据的处理装置的结构框图,如图6所示,该装置还包括:生成模块30,用于在离线状态下,对游戏场景进行扫描,生成游戏场景地形数据;
可选地,生成模块30包括:第一扫描单元(图中未示出),用于扫描游戏场景的场景文件,记录游戏场景中包含的每个基准数据块对应的地基模型的标识;第二扫描单元(图中未示出),用于按序针对每个基准数据块,按照预设单位面积间隔扫描每个间隔位置处的高度数据,并根据标识对每个基准数据块对应的地基模型的三角面片进行遍历,以确定在每个基准数据块对应的地基模型的限制下可移除高度的最大值,其中,高度数据包括:地形高度和水面高度;生成单元(图中未示出),用于采用高度数据生成游戏场景地形数据。
可选地,加载模块10包括:第一确定单元(图中未示出),用于根据游戏角色的移动确定待加载的感兴趣区域AOI范围;加载单元(图中未示出),用于根据待加载的AOI范围在内存中加载待使用的数据内容。
可选地,加载单元(图中未示出)包括:第一处理子单元(图中未示出),用于根据待加载的AOI范围调用主线程向加载线程发起添加任务请求;第二处理子单元(图中未示出),用于调用加载线程根据添加任务请求将待使用的数据内容加载至主线程的数据池。
可选地,更新模块20包括:第二确定单元(图中未示出),用于根据攻击位置确定待移除的地块的位置;更新单元(图中未示出),用于如果待加载的AOI范围内存在待移除的地块,则根据待移除的地块的位置对数据内容进行更新。
可选地,第二确定单元(图中未示出)包括:计算子单元(图中未示出),用于根据攻击位置的碰撞点世界坐标计算碰撞点所在的基准数据块的第一索引以及该基准数据块内最小单位地块的第二索引;确定子单元(图中未示出),用于通过第一索引和第二索引确定待移除的地块的位置。
可选地,更新单元(图中未示出)包括:第三处理子单元(图中未示出),用于调用主线程将数据内容从数据池添加至主线程的待处理列表中;第四处理子单元(图中未示出),用于对待处理列表中的数据内容进行分帧解析,得到解析结果;第五处理子单元(图中未示出),用于将解析结果设置为回调函数的参数,通过执行回调函数对数据内容进行更新,其中,回调函数依据待移除的地块的位置进行配置。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;
S2,根据游戏角色的攻击位置对数据内容进行更新。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;
S2,根据游戏角色的攻击位置对数据内容进行更新。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (12)

1.一种地形数据的处理方法,其特征在于,包括:
在游戏运行过程中,根据游戏角色的移动从游戏场景地形数据中动态加载待使用的数据内容,其中,所述游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;
根据所述游戏角色的攻击位置对所述数据内容进行更新。
2.根据权利要求1所述的方法,其特征在于,在根据游戏角色的移动从所述游戏场景地形数据中动态加载待使用的数据内容之前,还包括:
在离线状态下,对游戏场景进行扫描,生成所述游戏场景地形数据。
3.根据权利要求2所述的方法,其特征在于,对所述游戏场景进行扫描,生成所述游戏场景地形数据包括:
扫描所述游戏场景的场景文件,记录所述游戏场景中包含的每个基准数据块对应的地基模型的标识;
按序针对每个基准数据块,按照预设单位面积间隔扫描每个间隔位置处的高度数据,并根据所述标识对每个基准数据块对应的地基模型的三角面片进行遍历,以确定在每个基准数据块对应的地基模型的限制下可移除高度的最大值,其中,所述高度数据包括:地形高度和水面高度;
采用所述高度数据生成所述游戏场景地形数据。
4.根据权利要求1所述的方法,其特征在于,根据所述游戏角色的移动从所述游戏场景地形数据中动态加载所述待使用的数据内容包括:
根据所述游戏角色的移动确定待加载的感兴趣区域AOI范围;
根据所述待加载的AOI范围在内存中加载所述待使用的数据内容。
5.根据权利要求4所述的方法,其特征在于,根据所述待加载的AOI范围在所述内存中加载所述待使用的数据内容包括:
根据所述待加载的AOI范围调用主线程向加载线程发起添加任务请求;
调用所述加载线程根据所述添加任务请求将所述待使用的数据内容加载至所述主线程的数据池。
6.根据权利要求5所述的方法,其特征在于,根据所述游戏角色的所述攻击位置对所述数据内容进行更新包括:
根据所述攻击位置确定待移除的地块的位置;
如果所述待加载的AOI范围内存在所述待移除的地块,则根据所述待移除的地块的位置对所述数据内容进行更新。
7.根据权利要求6所述的方法,其特征在于,根据所述攻击位置确定所述待移除的地块的位置包括:
根据所述攻击位置的碰撞点世界坐标计算碰撞点所在的基准数据块的第一索引以及该基准数据块内最小单位地块的第二索引;
通过所述第一索引和所述第二索引确定所述待移除的地块的位置。
8.根据权利要求6所述的方法,其特征在于,如果所述待加载的AOI范围内存在所述待移除的地块,则根据所述待移除的地块的位置对所述数据内容进行更新包括:
调用所述主线程将所述数据内容从所述数据池添加至所述主线程的待处理列表中;
对所述待处理列表中的所述数据内容进行分帧解析,得到解析结果;
将所述解析结果设置为回调函数的参数,通过执行所述回调函数对所述数据内容进行更新,其中,所述回调函数依据所述待移除的地块的位置进行配置。
9.一种地形数据的处理装置,其特征在于,包括:
加载模块,用于在游戏运行过程中,根据游戏角色的移动从所述游戏场景地形数据中动态加载待使用的数据内容,其中,所述游戏场景地形数据包括:多个基准数据块,每个基准数据块采用层次化数据结构;
更新模块,用于根据所述游戏角色的攻击位置对所述数据内容进行更新。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至8中任意一项所述的地形数据的处理方法。
11.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至8中任意一项所述的地形数据的处理方法。
12.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至8中任意一项所述的地形数据的处理方法。
CN201910295484.XA 2019-04-12 2019-04-12 地形数据的处理方法、装置、存储介质、处理器及终端 Active CN110070609B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910295484.XA CN110070609B (zh) 2019-04-12 2019-04-12 地形数据的处理方法、装置、存储介质、处理器及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910295484.XA CN110070609B (zh) 2019-04-12 2019-04-12 地形数据的处理方法、装置、存储介质、处理器及终端

Publications (2)

Publication Number Publication Date
CN110070609A true CN110070609A (zh) 2019-07-30
CN110070609B CN110070609B (zh) 2023-06-20

Family

ID=67367695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910295484.XA Active CN110070609B (zh) 2019-04-12 2019-04-12 地形数据的处理方法、装置、存储介质、处理器及终端

Country Status (1)

Country Link
CN (1) CN110070609B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111603766A (zh) * 2020-06-29 2020-09-01 上海完美时空软件有限公司 虚拟载具的控制方法及装置、存储介质、电子装置
CN112023399A (zh) * 2020-08-21 2020-12-04 上海完美时空软件有限公司 游戏场景数据的处理方法及装置、存储介质、计算机设备
CN112165716A (zh) * 2020-09-29 2021-01-01 重庆邮电大学 支持重传的无线网络信息年龄优化调度方法
CN112612427A (zh) * 2020-12-30 2021-04-06 北京优挂信息科技有限公司 一种车辆停靠点数据处理方法、装置、存储介质及终端
WO2023005079A1 (zh) * 2021-07-29 2023-02-02 完美世界(北京)软件科技发展有限公司 一种游戏任务发放方法以及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930172A (zh) * 2016-05-13 2016-09-07 深圳市豹风网络股份有限公司 移动终端网络游戏的用户界面动态显示方法及***
US20180039665A1 (en) * 2016-08-04 2018-02-08 Here Global B.V. Reducing size of update package data for navigation databases

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105930172A (zh) * 2016-05-13 2016-09-07 深圳市豹风网络股份有限公司 移动终端网络游戏的用户界面动态显示方法及***
US20180039665A1 (en) * 2016-08-04 2018-02-08 Here Global B.V. Reducing size of update package data for navigation databases

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111603766A (zh) * 2020-06-29 2020-09-01 上海完美时空软件有限公司 虚拟载具的控制方法及装置、存储介质、电子装置
CN111603766B (zh) * 2020-06-29 2024-01-09 上海完美时空软件有限公司 虚拟载具的控制方法及装置、存储介质、电子装置
CN112023399A (zh) * 2020-08-21 2020-12-04 上海完美时空软件有限公司 游戏场景数据的处理方法及装置、存储介质、计算机设备
WO2022036903A1 (zh) * 2020-08-21 2022-02-24 上海完美时空软件有限公司 游戏场景数据的处理方法及装置、计算机程序、可读介质
CN112165716A (zh) * 2020-09-29 2021-01-01 重庆邮电大学 支持重传的无线网络信息年龄优化调度方法
CN112612427A (zh) * 2020-12-30 2021-04-06 北京优挂信息科技有限公司 一种车辆停靠点数据处理方法、装置、存储介质及终端
WO2023005079A1 (zh) * 2021-07-29 2023-02-02 完美世界(北京)软件科技发展有限公司 一种游戏任务发放方法以及装置

Also Published As

Publication number Publication date
CN110070609B (zh) 2023-06-20

Similar Documents

Publication Publication Date Title
CN110070609A (zh) 地形数据的处理方法、装置、存储介质、处理器及终端
KR101342228B1 (ko) 렌더링 제어 장치, 그 제어 방법, 컴퓨터 판독 가능한 저장 매체, 렌더링 서버, 및 렌더링 시스템
JP7125512B2 (ja) オブジェクトのロード方法及び装置、記憶媒体、電子装置、並びにコンピュータプログラム
CN106075909B (zh) 一种游戏换装***和方法
US8810590B2 (en) Method and apparatus for spatial binning on a GPU and global path planning to avoid spatially binned objects
CN107358649B (zh) 地形文件的处理方法和装置
CN103093499B (zh) 一种适用于网络传输的城市三维模型数据组织方法
CN108339270A (zh) 游戏场景中静态组件的处理方法、渲染方法及装置
CN107193911A (zh) 一种基于bim模型的三维可视化引擎及web应用程序调用方法
CN108057245B (zh) 地图的生成方法和装置、存储介质及终端
CN110874812A (zh) 游戏中的场景图像绘制方法、装置及电子终端
CN105117296B (zh) 同步游戏中对象的状态的方法和***
CN111603769B (zh) 游戏内容的生成方法及装置、存储介质、计算机设备
CN101119485A (zh) 一种基于特征保留的三维模型递进传输方法
CN111773686A (zh) 动画的生成方法和装置、存储介质、电子装置
CN107357563B (zh) 对象移动方法和装置以及存储介质、电子装置
CN110292772B (zh) 游戏中合成游戏地图的方法及装置
CN111481928B (zh) 动画加载方法、装置、服务器及存储介质
CN111714895B (zh) 游戏数据的处理方法及装置、存储介质、计算机设备
CN108379841A (zh) 游戏特效的处理方法、装置和终端
CN112587921A (zh) 模型处理方法和装置、电子设备和存储介质
CN108043030A (zh) 一种用真实图画构造互动游戏玩家角色的方法
CN107004299A (zh) 渲染三维多边形网格的似然图像
CN109712242A (zh) 一种支持大规模三维场景虚拟漫游的模型数据组织方法
CN109745705A (zh) 2d游戏地图编辑方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant