CN110033518B - 静态场景资源的网格重建方法、装置、处理器及服务端 - Google Patents
静态场景资源的网格重建方法、装置、处理器及服务端 Download PDFInfo
- Publication number
- CN110033518B CN110033518B CN201910296055.4A CN201910296055A CN110033518B CN 110033518 B CN110033518 B CN 110033518B CN 201910296055 A CN201910296055 A CN 201910296055A CN 110033518 B CN110033518 B CN 110033518B
- Authority
- CN
- China
- Prior art keywords
- reconstruction
- unit
- grid
- removable
- static scene
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/20—Finite element generation, e.g. wire-frame surface description, tesselation
- G06T17/205—Re-meshing
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种静态场景资源的网格重建方法、装置、处理器及服务端。其中,该方法包括:根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。本发明解决了相关技术中所提供的可破坏地形玩法,其破坏方式、形状、大小均采用固定模式,无法实现游戏场景地形的自由挖掘的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种静态场景资源的网格重建方法、装置、处理器及服务端。
背景技术
物理系统通常是游戏中执行物理运算的引擎。换言之,物理系统的作用在于:使得虚拟世界中的物体运动符合真实世界的物理定律,以使游戏更加富有真实感。物理系统主要提供两大功能:其一是物理模拟,其二是场景查询。
场景查询通常可以分为以下三类:
第一类、Raycast检测是从一点投射一条长度固定的线段,以检测物理世界中与该线段相交的碰撞体(PxShape);
第二类、Sweep检测,与Raycast检测相类似,其区别在于:投射的是一个或者一组形体(PxGeometry),以检测物理世界中与该形体或该组形体相交的碰撞体;
第三类、Overlap检测,与上述两类检测方式的区别在于:在特定位置提供一个形体,以检测物理世界中与该形体相交的碰撞体。
地形三角形网格是指全部由三角形组成的多边形网格。多边形和三角形网格在图形学和建模中广泛使用,用来模拟复杂物体的表面,例如:建筑、车辆、人体、茶壶等。在物理系统中,每个物体的碰撞体均采用三角形网格表示。地形的碰撞体也采用三角形网格表示。
目前,相关技术中所提供的可破坏地形玩法,如沙盒系统,其支持全地形的挖掘,但是其破坏方式、形状、大小均采用固定模式,无法实现游戏场景地形的自由挖掘。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种静态场景资源的网格重建方法、装置、处理器及服务端,以至少解决相关技术中所提供的可破坏地形玩法,其破坏方式、形状、大小均采用固定模式,无法实现游戏场景地形的自由挖掘的技术问题。
根据本发明其中一实施例,提供了一种静态场景资源的网格重建方法,该方法包括:
根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
可选地,对静态场景资源进行网格重建包括:采用第一重建方式对静态场景资源的第一表层进行网格重建,其中,第一表层在游戏场景中处于可见状态;采用第二重建方式对第一重建单位的第二表层进行网格重建,其中,第二表层在游戏场景中处于不可见状态。
可选地,采用第一重建方式对第一表层进行网格重建包括:对第一重建单位所归属的切割单位的初始网格平面进行移除;按照第一重建单位在第一表层占据的表面大小对第一表层进行划分,重建多个子网格平面。
可选地,重建多个子网格平面包括:按照每个子网格平面所包含的每个可移除单位的网格平面顶点位置计算每个子网格平面的顶点表;根据顶点表所存储的顶点位置将除至少一个可移除单位之外的可移除单位的网格平面的三角平面信息记录至每个子网格平面的三角形表中。
可选地,采用第二重建方式对第二表层进行网格重建包括:获取步骤,获取至少一个可移除单位中待处理的可移除单位;计算步骤,计算待处理的可移除单位的顶点表和三角形表;处理步骤,根据顶点表和三角形表,对待处理的可移除单位的各个表面中存在相邻的可移除单位的第一部分表面执行补全操作,以及对待处理的可移除单位的各个表面中不存在相邻的可移除单位的第二部分表面保持移除状态;判断步骤,判断至少一个可移除单位是否全部处理完毕,如果否,则返回获取步骤,如果是,则完成网格重建。
可选地,对静态场景资源进行网格重建还包括:根据至少一个可移除单位与第二重建单位的公共平面,对第二重建单位进行网格重建,其中,第二重建单位与第一重建单位相邻接。
根据本发明其中一实施例,还提供了一种静态场景资源的网格重建装置,该装置包括:
获取模块,用于根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;重建模块,用于从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
可选地,重建模块包括:第一重建单元,用于采用第一重建方式对静态场景资源的第一表层进行网格重建,其中,第一表层在游戏场景中处于可见状态;第二重建单元,用于采用第二重建方式对第一重建单位的第二表层进行网格重建,其中,第二表层在游戏场景中处于不可见状态。
可选地,第一重建单元包括:移除子单元,用于对第一重建单位所归属的切割单位的初始网格平面进行移除;重建子单元,用于按照第一重建单位在第一表层占据的表面大小对第一表层进行划分,重建多个子网格平面。
可选地,重建子单元,用于按照每个子网格平面所包含的每个可移除单位的网格平面顶点位置计算每个子网格平面的顶点表,以及根据顶点表所存储的顶点位置将除至少一个可移除单位之外的可移除单位的网格平面的三角平面信息记录至每个子网格平面的三角形表中。
可选地,第二重建单元包括:获取子单元,用于获取至少一个可移除单位中待处理的可移除单位;计算子单元,用于计算待处理的可移除单位的顶点表和三角形表;处理子单元,用于根据顶点表和三角形表,对待处理的可移除单位的各个表面中存在相邻的可移除单位的第一部分表面执行补全操作,以及对待处理的可移除单位的各个表面中不存在相邻的可移除单位的第二部分表面保持移除状态;判断子单元,用于判断至少一个可移除单位是否全部处理完毕,如果否,则返回获取子单元,如果是,则完成网格重建。
可选地,重建模块还包括:第三重建单元,用于根据至少一个可移除单位与第二重建单位的公共平面,对第二重建单位进行网格重建,其中,第二重建单位与第一重建单位相邻接。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述任意一项的静态场景资源的网格重建方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述任意一项的静态场景资源的网格重建方法。
根据本发明其中一实施例,还提供了一种服务端,包括:一个或多个处理器,存储器以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述任意一项的静态场景资源的网格重建方法。
在本发明至少部分实施例中,采用根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,该游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位的方式,通过从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建,达到了实现游戏场景内全地形自由挖掘的目的,从而实现了在服务端对全地形挖掘模式的实现过程中,通过上述重建机制既能够满足玩法需求,同时又能够兼顾服务器的运行效率的技术效果,进而解决了相关技术中所提供的可破坏地形玩法,其破坏方式、形状、大小均采用固定模式,无法实现游戏场景地形的自由挖掘的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的静态场景资源的网格重建方法的流程图;
图2是根据本发明其中一可选实施例的经过切割处理后的地块在垂直方向上的截面示意图;
图3是根据本发明其中一实施例的静态场景资源的网格重建装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
(1)网格(Mesh)是指计算机图形学领域对3D模型的一种表示方式,由顶点、边定义的三角形面片集合组合而成。
(2)大块(Chunk)在本发明中是指3D地形分割管理的基本单位。
根据本发明其中一实施例,提供了一种静态场景资源的网格重建方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
该方法实施例可以在服务端或者类似的运算装置中执行。以运行在服务端上为例,服务端可以包括一个或多个处理器(处理器可以包括但不限于中央处理器(CPU)、图形处理器(GPU)、数字信号处理(DSP)芯片、微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置)和用于存储数据的存储器。可选地,上述服务端还可以包括用于通信功能的传输设备以及输入输出设备。本领域普通技术人员可以理解,上述结构描述仅为示意,其并不对上述服务端的结构造成限定。例如,服务端还可包括比上述结构描述更多或者更少的组件,或者具有与上述结构描述不同的配置。
存储器可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的静态场景资源的网格重建方法对应的计算机程序,处理器通过运行存储在存储器内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的静态场景资源的网格重建方法。存储器可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至服务端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备用于经由一个网络接收或者发送数据。上述的网络具体实例可包括服务端的通信供应商提供的无线网络。在一个实例中,传输设备包括一个网络适配器(NetworkInterface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述服务的静态场景资源的网格重建方法。图1是根据本发明其中一实施例的静态场景资源的网格重建方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;
在一个可选实施例中,上述破坏范围可以由游戏角色在发起攻击时所采用的攻击武器来确定。例如:该破坏范围是由游戏角色在发起攻击时所采用的榴弹攻击确定的爆炸范围。上述静态场景资源可以是在游戏开发过程中为游戏场景设置的地形资源,例如:平地、山地。与未设置挖地模式的游戏场景的不同之处在于:该静态场景资源在游戏场景中并非保持不变,而是可以随意拆除(即消失在游戏场景中),从而遗留破坏痕迹并由此在地下开辟自定义通路,以便游戏角色可以在地下自由移动。上述多个切割单位可以通过对地形资源进行均匀切割得到,例如:每个切割单位均为六面体。上述多个重建单位可以通过对一个切割单位进行均匀切割得到,例如:每个重建单位可以为一个六面体形状的Chunk,其体积可表示为320分米×320分米×120分米。上述多个可移除单位可以通过对一个重建单位进行均匀切割得到,例如:每个可移除单位可以为一个六面体形状的地块,其体积可表示为20分米×20分米×15分米。由此,以Chunk作为Mesh重建单位,每个Chunk可由16×16×8个地块构成。只要Chunk内包含的任一地块被挖掘,便需要重建该Chunk的Mesh平面。通过采用上述结构,服务端的地形实时网格化重建基于像素化的思路,以地块为单位来实时重建地形三角形网格,以保证场景查询和物理模拟的准确性。
步骤S14,从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
通过上述步骤,可以采用根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,该游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位的方式,通过从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建,达到了实现游戏场景内全地形自由挖掘的目的,从而实现了在服务端对全地形挖掘模式的实现过程中,通过上述重建机制既能够满足玩法需求,同时又能够兼顾服务器的运行效率的技术效果,进而解决了相关技术中所提供的可破坏地形玩法,其破坏方式、形状、大小均采用固定模式,无法实现游戏场景地形的自由挖掘的技术问题。
本发明实施例在游戏内设置挖地模式的目的在于:实现全地形自由挖掘,即游戏角色可以在任意时刻对游戏场景内任意位置的地形进行个性化地自定义挖掘,任意地块均可以被移除,例如:挖掘山洞、挖掘地洞、挖掘战壕。为实现该目的,对于服务端的实现而言,需要重点关注以下三个方面:
(1)游戏单位的感兴趣区域(Area Of Interest,简称为AOI)同步,需要合理地划分AOI和细致地设计同步的信息结构与机制,以尽量减少同步的信息量。
(2)Mesh重建,对于支持基本场景查询的服务器而言,需要在每次挖掘之后重建地表Mesh,其主要难点在于:在细致地重建所有面的同时兼顾效率,需要处理很多边界条件。
(3)范围破坏、破碎地表的移除,前者主要通过合并重建来进行优化,后者则通过缓存来进行优化。
以下将结合多个可选实施例对第(2)和(3)方面做进一步详细地阐述。
可选地,在步骤S14中,对静态场景资源进行网格重建可以包括以下执行步骤:
步骤S141,采用第一重建方式对静态场景资源的第一表层进行网格重建,其中,第一表层在游戏场景中处于可见状态;
步骤S142,采用第二重建方式对第一重建单位的第二表层进行网格重建,其中,第二表层在游戏场景中处于不可见状态。
在对静态场景资源进行Mesh重建的过程中,需要进行层次划分。以游戏场景内的地形资源为例,地表(相当于上述第一表层)通常是对游戏角色可见的,以便游戏角色在地表这个常规载体上完成行走、奔跑、跳跃等动作。而在对地形资源进行地形切割之后,各个切割单位、重建单位以及可移除单位除了位于地表的侧面之外,其余侧面(相当于上述第二表层)通常是对游戏角色不可见的。因此,针对这两种不同表层需要采取不同的重建方式。
可选地,在步骤S141中,采用第一重建方式对第一表层进行网格重建可以包括以下执行步骤:
步骤S1411,对第一重建单位所归属的切割单位的初始网格平面进行移除;
步骤S1412,按照第一重建单位在第一表层占据的表面大小对第一表层进行划分,重建多个子网格平面。
假设游戏场景的地形切割单位的初始地表Mesh平面大小为640分米×640分米,而重建单位的Mesh平面大小为320分米×320分米,由此,便可以将1块640分米×640分米的Mesh平面划分为4块320分米×320分米的Mesh平面。如果这4块Mesh平面中出现至少一个地块被移除,则会将初始地表Mesh平面移除,进而重建成4块320分米×320分米大小的chunk-surface-mesh,即上述子网格平面。
需要说明的是,上述320分米×320分米的尺寸是经过反复试验获得的经验值,以避免粒度过细而增加同步包的数量,同时也避免粒度过粗而同步过多的信息,然而其并不构成对本发明的不当限制,可以根据实际游戏场景设置任意合适大小的重建单位平面。
可选地,步骤S1412,重建多个子网格平面可以包括以下执行步骤:
步骤S14121,按照每个子网格平面所包含的每个可移除单位的网格平面顶点位置计算每个子网格平面的顶点表;
步骤S1412,根据顶点表所存储的顶点位置将除至少一个可移除单位之外的可移除单位的网格平面的三角平面信息记录至每个子网格平面的三角形表中。
在一个可选实施例中,每块chunk-surface-mesh(即每个子网格平面)的重建方式如下:假设每个子网格平面所包含的每个地块的Mesh平面大小为20分米×20分米,每个地块的Mesh平面中顶点的位置作为三角形顶点,由此每个地块的Mesh平面便可以采用四个顶点组成的两个三角形来表示,那么根据每个子网格平面所包含的各个地块的Mesh平面在该子网格平面内的位置或组成关系可以计算得到该子网格平面的顶点表(Vertex buffer),其中,该顶点表用于存储三角形顶点位置数据。对于被移除过的地块的Mesh平面而言,将不再记录该Mesh平面的三角形表(Index Buffer)信息,以形成空洞,而将剩余的地块的Mesh平面三角形表信息记录至该子网格平面的三角形表中。
可选地,在步骤S142中,采用第二重建方式对第二表层进行网格重建可以包括以下执行步骤:
步骤S1421,获取至少一个可移除单位中待处理的可移除单位;
步骤S1422,计算待处理的可移除单位的顶点表和三角形表;
步骤S1423,根据顶点表和三角形表,对待处理的可移除单位的各个表面中存在相邻的可移除单位的第一部分表面执行补全操作,以及对待处理的可移除单位的各个表面中不存在相邻的可移除单位的第二部分表面保持移除状态;
步骤S1424,判断至少一个可移除单位是否全部处理完毕,如果否,则返回步骤S1421,如果是,则完成网格重建。
对第二表层进行网格重建实质上即为被移除/挖掘的地块所归属的Chunk的内部重建。首先,需要获取Chunk内所有被移除/挖掘的地块。其次,对于每个被移除/挖掘的地块而言,均需要根据周边体表(Voxel)状态计算该地块六个侧面的顶点表和三角形表。然后,对于每个侧面而言,根据每个侧面的顶点表和三角形表确定是否存在相邻接的其他地块。如果存在,则需要对该侧面执行补全操作。如果不存在,则保持对该侧面的移除状态。重复执行上述过程,直至所有被移除/挖掘的地块均处理完毕。
另外,考虑到重建是以Chunk为单位来完成的,因此,关于范围破坏的移除,可以通过合并只重建每个相关Chunk一次来提高重建效率。例如:在爆炸场景下会破坏多个地块,这多个地块中有可能存在部分或全部地块属于同一个Chunk。如果针对每个地块都独立重建Chunk,那么会出现同一个Chunk被多次重建,由此导致重建效率低下。如果预先记录全部破坏信息,再一次性重建这个Chunk,则针对同一个Chunk只需要重建一次,由此显著地提高重建效率。
可选地,在步骤S14中,对静态场景资源进行网格重建还可以包括以下执行步骤:
步骤S143,根据至少一个可移除单位与第二重建单位的公共平面,对第二重建单位进行网格重建,其中,第二重建单位与第一重建单位相邻接。
在挖掘垂直方向上,任意一块Chunk的重建均包括:该Chunk在垂直方向上对应的地表部分(即上述第一表层)和该Chunk的自身重建。该Chunk的自身重建还会进一步地触发相关联的其他Chunk被重建。例如,Chunk A与Chunk B在挖掘垂直方向上相邻接,如果ChunkA与Chunk B的公共侧面上存在至少一个地块被移除/挖掘,则Chunk B在该公共侧面上对应位置的碰撞体三角面片便需要被移除,以实现拆除状态。
关于破碎地表的移除,可以将上述第一表层中每个地块的Mesh平面(其大小为20分米×20分米)的四个顶点中的最高高度的顶点取样为该地块的最高点,以及将四个顶点中的最低高度的顶点取样为该地块的最低点,由此将最高高度与最低高度的差值作为在该地块范围内的地皮厚度近似值。
图2是根据本发明其中一可选实施例的经过切割处理后的地块在垂直方向上的截面示意图,如图2所示,最高点1位于地块a,最低点2位于地块b,最低点2所在地块下方的地块为地块c。在移除/挖掘特定地块的过程中,当满足以下情形之一时,便会移除最低点与最高点之间的所有地块:
情形一、最高点与最低点之间的任一地块被移除/挖掘;例如:无论选择移除/挖掘地块a还是选择移除/挖掘地块b,地块a和地块b均需要被移除/挖掘。
情形二、最低点下方的一块地块被移除/挖掘。例如:当选择移除/挖掘地块c时,地块a和地块b均需要被移除/挖掘。
在一个可选实施例中,出于便捷性和避免出现残留等方面的考虑,可以将地块a、地块b和地块c视为一个整体,只要这三个地块中的任一地块被移除/挖掘,则将地块a、地块b和地块c整体移除。
通过采用上述破碎地表处理方式,由于破碎地表通常仅需处理位于地表层面的地块,因此,如果特定垂直方向上的位于地表层面的地块已经被移除,那么在移除该垂直方向上的其余地块时,便不需要再处理位于地表层面的地块。在一个可选实施例中,可以采用缓存地块坐标(x,z)的方式来记录位于地表层面的特定地块是否已经被移除。然后,通过查询该缓存信息便可以确定是否需要处理位于地表层面的地块,从而通过缓存来进行优化。
综上所述,基于上述至少部分实施例,经过常规的挖掘压测试验表明,挖掘压力占用的服务端的硬件资源比例维持在5%以下。由此可见,上述重建机制不仅能够满足游戏玩法需求,而且还能够兼顾服务器的运行效率。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
在本实施例中还提供了一种静态场景资源的网格重建装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图3是根据本发明其中一实施例的静态场景资源的网格重建装置的结构框图,如图3所示,该装置包括:获取模块10,用于根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;重建模块20,用于从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
可选地,重建模块20包括:第一重建单元(图中未示出),用于采用第一重建方式对静态场景资源的第一表层进行网格重建,其中,第一表层在游戏场景中处于可见状态;第二重建单元(图中未示出),用于采用第二重建方式对第一重建单位的第二表层进行网格重建,其中,第二表层在游戏场景中处于不可见状态。
可选地,第一重建单元(图中未示出)包括:移除子单元(图中未示出),用于对第一重建单位所归属的切割单位的初始网格平面进行移除;重建子单元(图中未示出),用于按照第一重建单位在第一表层占据的表面大小对第一表层进行划分,重建多个子网格平面。
可选地,重建子单元(图中未示出),用于按照每个子网格平面所包含的每个可移除单位的网格平面顶点位置计算每个子网格平面的顶点表,以及根据顶点表所存储的顶点位置将除至少一个可移除单位之外的可移除单位的网格平面的三角平面信息记录至每个子网格平面的三角形表中。
可选地,第二重建单元(图中未示出)包括:获取子单元(图中未示出),用于获取至少一个可移除单位中待处理的可移除单位;计算子单元(图中未示出),用于计算待处理的可移除单位的顶点表和三角形表;处理子单元(图中未示出),用于根据顶点表和三角形表,对待处理的可移除单位的各个表面中存在相邻的可移除单位的第一部分表面执行补全操作,以及对待处理的可移除单位的各个表面中不存在相邻的可移除单位的第二部分表面保持移除状态;判断子单元(图中未示出),用于判断至少一个可移除单位是否全部处理完毕,如果否,则返回获取子单元,如果是,则完成网格重建。
可选地,重建模块20还包括:第三重建单元(图中未示出),用于根据至少一个可移除单位与第二重建单位的公共平面,对第二重建单位进行网格重建,其中,第二重建单位与第一重建单位相邻接。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;
S2,从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本发明的实施例还提供了一种处理器,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;
S2,从至少一个可移除单位所归属的第一重建单位中移除至少一个可移除单位,并对静态场景资源进行网格重建。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (9)
1.一种静态场景资源的网格重建方法,其特征在于,所述方法包括:
根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;
从所述至少一个可移除单位所归属的第一重建单位中移除所述至少一个可移除单位,并对所述静态场景资源进行网格重建;
其中,对所述静态场景资源进行网格重建包括:采用第一重建方式对所述静态场景资源的第一表层进行网格重建,其中,所述第一表层在所述游戏场景中处于可见状态;
其中,采用所述第一重建方式对所述第一表层进行网格重建包括:对所述第一重建单位所归属的切割单位的初始网格平面进行移除;按照所述第一重建单位在所述第一表层占据的表面大小对所述第一表层进行划分,重建多个子网格平面。
2.根据权利要求1所述的方法,其特征在于,对所述静态场景资源进行网格重建还包括:
采用第二重建方式对所述第一重建单位的第二表层进行网格重建,其中,所述第二表层在所述游戏场景中处于不可见状态。
3.根据权利要求1所述的方法,其特征在于,重建所述多个子网格平面包括:
按照每个所述子网格平面所包含的每个可移除单位的网格平面顶点位置计算每个子网格平面的顶点表;
根据所述顶点表所存储的顶点位置将除所述至少一个可移除单位之外的可移除单位的网格平面的三角平面信息记录至每个子网格平面的三角形表中。
4.根据权利要求2所述的方法,其特征在于,采用所述第二重建方式对所述第二表层进行网格重建包括:
获取步骤,获取所述至少一个可移除单位中待处理的可移除单位;
计算步骤,计算所述待处理的可移除单位的顶点表和三角形表;
处理步骤,根据所述顶点表和所述三角形表,对所述待处理的可移除单位的各个表面中存在相邻的可移除单位的第一部分表面执行补全操作,以及对所述待处理的可移除单位的各个表面中不存在相邻的可移除单位的第二部分表面保持移除状态;
判断步骤,判断所述至少一个可移除单位是否全部处理完毕,如果否,则返回所述获取步骤,如果是,则完成网格重建。
5.根据权利要求1所述的方法,其特征在于,对所述静态场景资源进行网格重建还包括:
根据所述至少一个可移除单位与第二重建单位的公共平面,对所述第二重建单位进行网格重建,其中,所述第二重建单位与所述第一重建单位相邻接。
6.一种静态场景资源的网格重建装置,其特征在于,所述装置包括:
获取模块,用于根据游戏角色发起攻击的破坏范围获取至少一个可移除单位,其中,游戏场景中可拆除的静态场景资源被划分为多个切割单位,每个切割单位包括:多个重建单位,每个重建单位包括:多个可移除单位;
重建模块,用于从所述至少一个可移除单位所归属的第一重建单位中移除所述至少一个可移除单位,并对所述静态场景资源进行网格重建;
其中,所述重建模块还用于:采用第一重建方式对所述静态场景资源的第一表层进行网格重建,其中,所述第一表层在所述游戏场景中处于可见状态;
其中,所述重建模块还用于:对所述第一重建单位所归属的切割单位的初始网格平面进行移除;按照所述第一重建单位在所述第一表层占据的表面大小对所述第一表层进行划分,重建多个子网格平面。
7.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至5中任意一项所述的静态场景资源的网格重建方法。
8.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至5中任意一项所述的静态场景资源的网格重建方法。
9.一种服务端,其特征在于,包括:一个或多个处理器,存储器以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至5中任意一项所述的静态场景资源的网格重建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910296055.4A CN110033518B (zh) | 2019-04-12 | 2019-04-12 | 静态场景资源的网格重建方法、装置、处理器及服务端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910296055.4A CN110033518B (zh) | 2019-04-12 | 2019-04-12 | 静态场景资源的网格重建方法、装置、处理器及服务端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110033518A CN110033518A (zh) | 2019-07-19 |
CN110033518B true CN110033518B (zh) | 2023-08-22 |
Family
ID=67238174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910296055.4A Active CN110033518B (zh) | 2019-04-12 | 2019-04-12 | 静态场景资源的网格重建方法、装置、处理器及服务端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110033518B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110750847B (zh) * | 2019-10-29 | 2021-06-15 | 中国科学院过程工程研究所 | 网格切分关系的确定方法、装置、设备和介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568032A (zh) * | 2010-12-09 | 2012-07-11 | 中国科学院软件研究所 | 真实感地表形变模型生成方法 |
CN105045389A (zh) * | 2015-07-07 | 2015-11-11 | 深圳水晶石数字科技有限公司 | 一种互动式沙盘系统的演示方法 |
CN105991591A (zh) * | 2015-02-13 | 2016-10-05 | 广州四三九九信息科技有限公司 | 游戏aoi同步方法 |
CN106251400A (zh) * | 2016-07-19 | 2016-12-21 | 中国人民解放军63920部队 | 一种基于多四边形网格构建地形图的方法及装置 |
CN108171797A (zh) * | 2017-12-05 | 2018-06-15 | 北京像素软件科技股份有限公司 | 网格物体生成方法及装置 |
US10217278B1 (en) * | 2015-03-03 | 2019-02-26 | Amazon Technologies, Inc. | Three dimensional terrain modeling |
-
2019
- 2019-04-12 CN CN201910296055.4A patent/CN110033518B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102568032A (zh) * | 2010-12-09 | 2012-07-11 | 中国科学院软件研究所 | 真实感地表形变模型生成方法 |
CN105991591A (zh) * | 2015-02-13 | 2016-10-05 | 广州四三九九信息科技有限公司 | 游戏aoi同步方法 |
US10217278B1 (en) * | 2015-03-03 | 2019-02-26 | Amazon Technologies, Inc. | Three dimensional terrain modeling |
CN105045389A (zh) * | 2015-07-07 | 2015-11-11 | 深圳水晶石数字科技有限公司 | 一种互动式沙盘系统的演示方法 |
CN106251400A (zh) * | 2016-07-19 | 2016-12-21 | 中国人民解放军63920部队 | 一种基于多四边形网格构建地形图的方法及装置 |
CN108171797A (zh) * | 2017-12-05 | 2018-06-15 | 北京像素软件科技股份有限公司 | 网格物体生成方法及装置 |
Non-Patent Citations (1)
Title |
---|
基于Direct3D的虚拟战场环境中动态地形的实现方法;张小超等;《系统仿真学报》;20050630;第1-5页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110033518A (zh) | 2019-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108434739B (zh) | 游戏场景中虚拟资源的处理方法及装置 | |
CN109925716B (zh) | 地形切割的顶点重建方法、装置、处理器及终端 | |
CN109523621B (zh) | 对象的加载方法和装置、存储介质、电子装置 | |
CN110750864B (zh) | 一种基于bim技术的溃坝洪水演示预警方法及平台 | |
Elmouttie et al. | Polyhedral modelling of rock mass structure | |
KR101555426B1 (ko) | 지형 렌더링 방법 및 장치 | |
Gold | What is GIS and What is Not? | |
CN110033518B (zh) | 静态场景资源的网格重建方法、装置、处理器及服务端 | |
Azri et al. | Review of spatial indexing techniques for large urban data management | |
US11120621B2 (en) | Systems and methods for applying partial updates to point cloud terrain | |
Regnauld | Algorithms for the amalgamation of topographic data | |
Tse et al. | Building reconstruction using LIDAR data | |
Dam et al. | Terrain generation based on real world locations for military training and simulation | |
KR100715669B1 (ko) | 다단계 해상도를 갖는 3차원 이미지 표현 장치 및 방법 | |
CN114494623A (zh) | 基于lod的地形渲染方法及装置 | |
CN109087402B (zh) | 在3d场景的特定表面上覆盖特定表面形态的方法、系统、设备和介质 | |
KR20020041387A (ko) | 2차원 공간정보를 활용한 솔리드모델 타입의 3차원 공간정보구축 자동화방법 및 3차원 공간정보 운용방법 | |
Alonso et al. | Real-time rendering and physics of complex dynamic terrains modeled as CSG trees of DEMs carved with spheres | |
CN117437130B (zh) | 一种树木三维模型拼接间隙修复方法及相关设备 | |
Wu et al. | Integral ear elimination and virtual point-based updating algorithms for constrained Delaunay TIN | |
Tse et al. | A new approach to urban modelling based on LIDAR | |
CN115357974A (zh) | 道路施工数据处理方法、装置、计算机设备和存储介质 | |
Васильев | EVOLUTION OF VISUALISATION TECHNIQUES IN FLOOD RISK MODELLING | |
Engel et al. | Optimizing tree distribution in virtual scenarios from vector data | |
Mendes et al. | Three-dimensional spatial analysis in an urban hillside area using UAV data in the municipality of Santos, SP |
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 |