CN115830266A - 游戏三维场景图处理方法及装置 - Google Patents
游戏三维场景图处理方法及装置 Download PDFInfo
- Publication number
- CN115830266A CN115830266A CN202211385551.5A CN202211385551A CN115830266A CN 115830266 A CN115830266 A CN 115830266A CN 202211385551 A CN202211385551 A CN 202211385551A CN 115830266 A CN115830266 A CN 115830266A
- Authority
- CN
- China
- Prior art keywords
- voxel
- dimensional scene
- scene graph
- string
- target game
- 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.)
- Pending
Links
Images
Landscapes
- Processing Or Creating Images (AREA)
Abstract
本申请提供游戏三维场景图处理方法及装置,其中所述游戏三维场景图处理方法包括:获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种游戏三维场景图处理方法。本申请同时涉及一种游戏三维场景图处理装置、一种计算设备,以及一种计算机可读存储介质。
背景技术
随着计算机技术和互联网技术的发展,各种各样的游戏层出不穷,通过互联网技术玩游戏进行放松的人也越来越多。为了提升游戏场景的真实性,增强玩家的喜爱度,需要对游戏进行场景逻辑障碍表示,主要用于模拟游戏对象在游戏场景中的移动和碰撞检测。
现有的多数三维游戏中,由于三角形网格可以比较容易地表示地形、建筑、植被等多种障碍类型,且有技术成熟的生成方法和工具,通常使用三角形网格进行场景逻辑障碍表示。但三角形网格进行场景逻辑障碍表示,数据量会比较庞大,且仅为表面表示方式,不能或不容易判断任意点在其内还是其外,碰撞检测较为耗时,且不适合拥有大量逻辑对象模拟的服务端使用。因此,亟需一种有效的方案以解决上述问题。
发明内容
有鉴于此,本申请实施例提供了一种游戏三维场景图处理方法,以解决现有技术中存在的技术缺陷。本申请实施例同时提供了一种游戏三维场景图处理装置,一种计算设备,以及一种计算机可读存储介质。
根据本申请实施例的第一方面,提供了一种游戏三维场景图处理方法,包括:
获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;
对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;
将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。
根据本申请实施例的第二方面,提供了一种游戏三维场景图处理装置,包括:
获取模块,被配置为获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;
合并模块,被配置为对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;
存储模块,被配置为将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。
根据本申请实施例的第三方面,提供了一种计算设备,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器执行所述计算机可执行指令时实现所述游戏三维场景图处理方法的步骤。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述游戏三维场景图处理方法的步骤。
根据本申请实施例的第五方面,提供了一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述游戏三维场景图处理方法的步骤。
本申请提供的游戏三维场景图处理方法,获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
附图说明
图1是本申请一实施例提供的一种游戏三维场景图处理系统的结构示意图;
图2是本申请一实施例提供的一种游戏三维场景图处理方法的流程图;
图3A是本申请一实施例提供的一种游戏三维场景图处理方法中体素的显示示意图;
图3B是本申请一实施例提供的一种游戏三维场景图处理方法中初始体素串的显示示意图;
图3C是本申请一实施例提供的一种游戏三维场景图处理方法中合并后的体素串的投影面的显示示意图;
图4是本申请一实施例提供的一种应用于角色扮演游戏的游戏三维场景图处理方法的处理流程图;
图5是本申请一实施例提供的一种游戏三维场景图处理装置的结构示意图;
图6是本申请一实施例提供的一种计算设备的结构框图。
具体实施方式
在下面的描述中阐述了很多具体细节以便于充分理解本申请。但是本申请能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本申请内涵的情况下做类似推广,因此本申请不受下面公开的具体实施的限制。
在本申请一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请一个或多个实施例。在本申请一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本申请一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。
随着计算机技术和互联网技术的发展,各种各样的游戏层出不穷,通过互联网技术玩游戏进行放松的人也越来越多。为了提升游戏场景的真实性,增强玩家的喜爱度,需要对游戏进行场景逻辑障碍表示,主要用于模拟游戏对象在游戏场景中的移动和碰撞检测。
现有的多数三维游戏中,由于三角形网格可以比较容易地表示地形、建筑、植被等多种障碍类型,且有技术成熟的生成方法和工具,通常使用三角形网格表示场景逻辑障碍。但三角形网格进行场景逻辑障碍表示,数据量会比较庞大,且仅为表面表示方式,不能或不容易判断任意点在其内还是其外,碰撞检测较为耗时,且不适合拥有大量逻辑对象模拟的服务端使用。
部分三维游戏,使用高度场表示场景逻辑障碍。高度场的优点很多,如工具成熟、数据量小、碰撞检测简单;但缺点也很明显,只能表示简单的地形结构,不适合建筑植被等复杂结构的表示。高度场经常与三角形网格结合使用,高度长表示地形,三角形网格表示建筑植被等复杂结构;但结合之后,整体数据结构较为复杂,碰撞检测较为耗时的问题依然存在。
还有一些三维游戏,使用基于体素的表示方式表示场景逻辑障碍,这样可以表示非常复杂的障碍结构,也很容易判断任意点是在某个障碍内部还是外部,碰撞检测较为简单高效适用于服务端拥有大量逻辑对象模拟的场景。但传统的体素表示,数据量比较庞大;服务端和PC(Personal Computer)端等对包体和内存不敏感的情况使用完全没有问题,但用于对包体和内存都较为敏感的手机端和部分主机端,就不再适用了。
因此,本申请提供了一种游戏三维场景图处理方法,获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
在本申请中,提供了一种游戏三维场景图处理方法。本申请同时涉及一种游戏三维场景图处理装置、一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
本申请实施例提供的游戏三维场景图处理方法的执行主体可以是服务端,也可以是终端,本申请实施例对此不作限定。并且,该终端可以是任何一种可与用户进行人机交互的电子产品,例如PC(Personal Computer,个人计算机)、手机、掌上电脑PPC(Pocket PC)、平板电脑等。该服务端可以是一台服务器,也可以是由多台服务器组成的服务器集群,或者是一个云计算服务中心,本申请实施例对此不作限定。此外,本申请实施例提供的游戏三维场景图处理方法还可以是终端与服务端共同完成。
以执行主体是服务端为例,参见图1,图1是本申请实施例提供的一种游戏三维场景图处理系统的结构示意图:用户通过终端处理目标游戏三维场景图,则终端相应地将目标游戏三维场景图中的各体素发送至服务端,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元。服务端在获取目标游戏三维场景图中的各体素后,对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。
相应地,服务端还可以将关联存储的平面位置与障碍物标识信息发送至终端,以便于终端用于对目标游戏三维场景图的场景逻辑障碍表示,对目标游戏三维场景图进行移动和碰撞测试。
本申请实施例中,通过获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
图2示出了本申请一实施例提供的一种游戏三维场景图处理方法的流程图,具体包括以下步骤:
步骤202:获取目标游戏三维场景图中的各体素,其中,体素是目标游戏三维场景图中三维物体的基本组成单元。
具体的,三维游戏(3D游戏)是使用空间立体计算技术实现操作的游戏,即游戏基础模型(游戏的人物、场景、基础地形)是使用三维立体模型实现的。游戏三维场景图是指三维游戏中的场景图。体素是体积元素(Volume Pixel)的简称,包含体素的立体可以通过立体渲染或者提取给定阈值轮廓的多边形等值面表现出来;本说明书中,体素是构成三维游戏场景中三维物体的基本组成单元。三维物体即三维游戏中的游戏基础模型,如人物、山、树、楼房等。
实际应用中,获取目标游戏三维场景图中的各体素的方法有多种,例如,可以是用户向执行主体发送针对目标游戏三维场景图的处理指令或者针对目标游戏三维场景图中的各体素的获取指令,相应地,执行主体在接收到该获取指令后,开始对针对游戏三维场景图的处理指令进行获取;也可以是执行主体每隔预设时长,自动获取针对游戏三维场景图的处理指令,例如,经过预设时长后,具有游戏三维场景图处理功能的服务器自动获取指定存取区域内目标游戏三维场景图中的各体素;或者经过预设时长后,具有游戏三维场景图处理功能的终端自动获取存储于本地的目标游戏三维场景图中的各体素。本说明书对获取目标游戏三维场景图中的各体素的方式不作任何限定。
在本说明书一个可实现的实施例中,目标游戏三维场景图中的各体素已经预先设置好,也即执行处理可以直接获取到预设设置好的目标游戏三维场景图中的各体素。如此,可以减少了生成体素的环节,节约了时间,减少了数据处理量,进而提高了游戏三维场景图的效率。
在本说明书另一个可实现的实施例中,执行主体先获取目标游戏三维场景图的资源数据,然后基于资源数据生成体素。也即获取目标游戏三维场景图中的各体素,具体实现过程可以如下:
获取目标游戏三维场景图的资源数据,其中,资源数据包括目标游戏三维场景图中的三维物体的三维坐标数据;
根据资源数据,生成目标游戏三维场景图中的体素。
具体的,三维坐标数据是指三维物体上的各个点在三维空间中的坐标。资源数据是指目标游戏三维场景图中各三维物体的三维坐标数据的集合。
实际应用中,执行主体先获取目标游戏三维场景图的资源数据,可以根据目标游戏三维场景的标识,从资源数据库中查找与目标游戏三维场景的资源数据,其中,资源数据库中目标游戏三维场景的标识与资源数据关联存储;还可以先确定目标游戏三维场景中的三维物体,然后根据三维物体的标识从坐标数据库中查找与各三维物体的三维坐标数据,从而得到资源数据。
然后,根据资源数据生成目标游戏三维场景图中的体素,具体生成方式可以基于开源项目Recast实现,由根据目标游戏三维场景图的资源数据构建Mesh(网格),经过体素化、地区生成、轮廓生成、多边形网格生成、高度细节生成等步骤生成NavMesh,将Recast对Mesh体素化的代码抽出来即可生成体素。
例如,获取目标游戏三维场景图中地形、建筑、植被等三维物体的障碍信息(通常是基于高度场和三角形网格构建的),也即三维坐标数据,然后生成目标游戏三维场景图中的体素。
通过目标游戏三维场景图的资源数据,进而生成目标游戏三维场景图的体素,根据需求生成体素,而不是对预先生成游戏三维场景图的体素并存储,可以极大地释放存储空间,并且避免对不必要的游戏三维场景图生成体素,进而减少数据处理量,提高了游戏三维场景图的效率。
需要说明的是,基于资源数据生成的体素,其精度可以是满足碰撞检测需求的较高的精度,操作完数据量是非常庞大的,数据量与体素精度的立方成正比。
在本说明书一个或多个可选的实施例中,目标游戏三维场景图可以为全景目标游戏三维场景图,即目标游戏的整个三维场景图。
在本说明书一个或多个可选的实施例中,目标游戏三维场景图还可以为全景目标游戏三维场景图中的区域块,即目标游戏的某一块区域的三维场景图。在目标游戏三维场景图为全景目标游戏三维场景图中的区域块的情况下,获取目标游戏三维场景图中的各体素之前,还包括:
获取全景目标游戏三维场景图;
在指定平面上,将全景目标游戏三维场景图划分成多个预设尺寸的区域块,其中,指定平面为任一平面。
具体的,全景目标游戏三维场景图是指目标游戏的整个三维场景图,包含目标游戏中所有的三维物体。预设尺寸是指预先设置的划分区域块的标准,可根据需求进行设置,例如10cm*10cm的正方形、10cm*5cm的长方形、边长为5cm的正三角形等。指定平面可以是水平平面、竖直平面、与水平平面夹角为30度的平面等等,优选地,指定平面为水平平面。
实际应用中,可以先获取全景目标游戏三维场景图,然后从指定平面上,将全景目标游戏三维场景图按照预设尺寸分割成多个区域块。例如,把全景目标游戏三维场景图在二维(忽略高度)平面内,也即水平平面内分成固定长度的正方形区域块。
由于模拟游戏对象在游戏中的移动和碰撞检测,可以是针对游戏中的部分场景进行的,将全景目标游戏三维场景图分割成多个区域块,可以提取出需要进行移动和碰撞检测的区域块,从而进行移动和碰撞检测,能够极大地减少数据处理量,从而提升移动和碰撞检测的效率和数据量。
步骤204:对目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息。
具体的,平面位置是指体素在某平面内的投影面所处的位置,例如,体素在水平平面的投影面为边长为1的正方形,且投影面的左下角为原点(0,0),则该体素的平面位置为以点(0,0)和(1,1)为对角线构成的正方形区域。此外,平面位置可以采用坐标的形式表示,如(X,Y,L,H),其中,(X,Y)表示体素在某平面内指定点的坐标,如右下角、左下角、左上角、右上角或中心点,L表示体素的宽,H表示体素的长。在体素为正方体的情况下,还可以用(X,Y,A)表示平面位置,其中,(X,Y)表示体素在某平面内指定点的坐标,如右下角、左下角、左上角、右上角或中心点,L表示体素的宽,A表示体素的边长。障碍物标识信息是指表征为障碍物的标识信息,如序号、标识内容等。
实际应用中,可以先确定目标游戏三维场景图中具有同一平面位置的体素,也即平面位置相同的体素,然后按照预设的合并规则,将具有同一平面位置的体素进行合并处理,进而得到多个体素串。例如,将具有同一平面位置的体素,且相隔距离小于距离阈值的体素进行合并;又如,将具有同一平面位置的体素,且相连的三个体素进行合并。进一步地,在进行合并处理后,各体素串分别设置障碍物标识信息。
在本说明书一个或多个可选的实施例中,对目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,具体实现过程可以如下:
将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,得到多个体素串,其中,指定平面为任一方向的平面。
具体的,相连表征两个体素的某个平面紧密贴合。指定平面可以是水平平面、竖直平面、与水平平面夹角为30度的平面等等,优选地,指定平面为水平平面。
实际应用中,获取目标游戏三维场景图中各体素在指定平面上的平面位置,针对每个平面位置,将平面位置为当前平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,遍历所有的平面位置,得到多个体素串。
例如,指定平面为水平平面,则合并在水平平面上平面位置相同、高度不同的体素:相同平面位置上多个连续不同高度的正方体体素可以合并为一个长方体体素,可以用一个上底面和下底面的高度值表示该长方体体素,这样就得到一系列长方体体素串。
参见图3A,图3A是本申请一实施例提供的一种游戏三维场景图处理方法中体素的显示示意图:体素为正方体,体素1-6在指定平面上的平面位置相同,均为第一个平面位置,体素7-11在指定平面上的平面位置相同,均为第二个平面位置。针对第一个平面位置,在指定平面的垂直方向上体素1-3相连、体素4-6相连,则将体素1-3合并,成为第一个体素串,将体素4-6合并,成为第二个体素串。针对第二个平面位置,在指定平面的垂直方向上体素7-11相连,则将体素7-11合并,成为第三个体素串。
如此,将具有同一平面位置且相连的多个体素进行合并,可以减少目标游戏三维场景图体素表示的数据量,从而有利于对目标游戏三维场景图进行移动和碰撞测试时,提高测试效率。
需要说明的是,未进行合并处理的体素,在后续处理中,也作为体素串参与后续的处理过程。
在本说明书一个可实现的实施例中,可以将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,直接得到多个体素串,并为各体素串分别设置障碍物标识信息,如此,可以减少处理流程,提高游戏三维场景图处理效率。
在本说明书另一个可实现的实施例中,可以将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并得到初始体素串,再对具有同一平面位置的初始体素串进行合并处理,得到目标体素串。也即将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,得到多个体素串,包括:
将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,得到多个初始体素串;
确定具有同一平面位置、且在指定平面的垂直方向上平面坐标上相邻的初始体素串之间的距离;
在距离小于预设通行距离的情况下,将具有同一平面位置、且在指定平面的垂直方向上相邻的初始体素串进行合并,得到目标体素串。
具体的,预设通行距离是指可移动物体能够通行的最小宽度、最小高度等,在指定平面为水平平面时,预设通行距离为可移动物体能够通行的最小高度,在指定平面为竖直平面时,预设通行距离为可移动物体能够通行的最小宽度。
实际应用中,针对目标游戏三维场景图中各体素在指定平面上的平面位置,将平面位置为当前平面位置、且在指定平面的垂直方向上多个相连的体素进行合并,得到多个初始体素串,然后,确定同一平面位置上相邻的初始体素串之间的距离,即在指定平面上平面位置相同、且在指定平面的垂直方向上相邻的初始体素串之间的距离。接着将各距离与预设通行距离进行比较,若距离大于或等于预设通行距离,则说明这两个初始体素串之间的距离可以使可移动物体通行,不合并该距离对应的两个初始体素串;若距离小于预设通行距离,则说明这两个初始体素串之间的距离不能使可移动物体通行,合并该距离对应的两个初始体素串。遍历所有的平面位置,得到各平面位置对应的目标体素串。
参见图3B,图3B是本申请一实施例提供的一种游戏三维场景图处理方法中初始体素串的显示示意图:初始体素串1和2在指定平面上的平面位置均为第一个平面位置,且初始体素串1和2之间的距离为1,初始体素串3和4在指定平面上的平面位置均为第二个平面位置,且初始体素串3和4之间的距离为2。假设预设通行距离为2,则初始体素串1和2之间的距离小于预设通行距离,将初始体素串1和2合并,成为第一个目标体素串;初始体素串3和4之间的距离等于预设通行距离,不合并初始体素串3和4。
需要说明的是,未进行合并处理的初始体素串,在后续处理中,也作为目标体素串参与后续的处理过程。
如此,根据游戏逻辑对象能穿越的最小障碍空隙,即预设通行距离,将第一次合并得到的初始体素串中,相邻距离小于预设通行距离的初始体素串合并为一个,可以进一步减少场景的体素表示的数据量,并且该表示对碰撞检测同样友好,很容易写出高效的碰撞检测代码。
可选地,可以对在指定平面上具有同一平面位置的体素进行合并处理,得到的体素串分别设置障碍物标识信息,如此,在减少体素表示的数据量的同时,还可以减少处理流程,提高游戏三维场景图处理效率。
可选地,在对在指定平面上具有同一平面位置的体素进行合并处理后,还可以从指定平面的垂直平面,再次进行合并处理。也即为各体素串分别设置障碍物标识信息之前,还包括:
获取第一平面位置对应的第一体素串的体素串信息,以及第二平面位置对应的第二体素串的体素串信息,其中,第一平面位置与第二平面位置相邻;
根据第一体素串的体素串信息和第二体素串的体素串信息,确定第一体素串与第二体素串的相似度;
在相似度大于预设阈值的情况下,对第一体素串和第二体素串进行合并。
具体的,体素串信息是指具体同一平面位置的体素串的信息,包含体素串的数量、体素串的形状、体素串的排列顺序等信息;其中,第一体素串为第一平面位置上所有体素串的总称;第二体素串为第二平面位置上所有体素串的总称。
实际应用中,先取指定平面上,相邻的两个平面位置,第一平面位置和第二平面位置,然后根据第一平面位置上的各体素串的大小、排列顺序等,确定第一平面位置对应的体素串信息,即第一体素串的体素串信息,同理获取第二体素串的体素串信息。进一步地,按照预设的相似度计算策略,以第一体素串的体素串信息和第二体素串的体素串信息为输入,确定第一体素串和第二体素串的相似度。再将该相似度与预设阈值进行比较,若相似度大于预设阈值,则将第一体素串和第二体素串进行合并,若相似度小于或等于预设阈值,则不做处理。
如此,不仅可以从指定平面的维度上对体素进行合并;同样的思路,还可以在指定平面的垂直平面上对体素做合并,进一步减小数据量。
需要说明的是,为了进一步减少数据量,可以对在相似度大于预设阈值的体素串数量达到一定数量时,再进行合并。即对第一体素串和第二体素串进行合并,具体实现过程可以如下:
确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个,其中,N为正整数;
若是,则对第一体素串、第二体素串和N个体素串进行合并。
实际应用中,在第一体素串的体素串信息和第二体素串的体素串信息的相似度,大于预设阈值的情况下,判断与第一体素串和第二体素串相邻,且相似度预设阈值的体素串数量是否达到N个,也即平面位置相邻且相似度大于预设阈值的体素串数量是否达到N+2个,若是,则将第一体素串、第二体素串和N个体素串进行合并,即将N+2个平面位置相邻且相似度大于预设阈值的体素串进行合并。如此,可以进一步减少场景体素表示的数据量。
需要说明的是,为了进一步减少体素表示的数据量,在对平面位置相邻的体素串进行合并时,需要保证合并的体素串的投影面积相同,也即在指定平面上的投影面积相同。即确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个,包括:
判断目标游戏三维场景图中的体素串是否符合合并条件,其中,合并条件为合并后的体素串在指定平面上的投影面积相同;
若符合,则执行确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个的步骤。
实际应用中,为了减少体素表示的数据量,可以是合并后的体素在指定平面上的投影面积相同,也即在合并体素串之前,需要判断目标游戏三维场景图中的体素串在合并后,合并后的体素串在指定平面上的投影面积相同,若符合,则进行合并,若不符合,则不合并。
需要说明的是,合并条件还可以为合并后的体素串在指定平面上的投影面积和投影形状相同。
参见图3C,图3C是本申请一实施例提供的一种游戏三维场景图处理方法中合并后的体素串的投影面的显示示意图:若合并后的体素串在指定平面上的投影面相同,即投影面积和投影形状均相同,可以进行合并,如投影面均为4*8的长方形,如投影面均4*4的正方形、如投影面均为2*8的长方形,又如投影面均为2*2的正方形等。
例如,为了保持数据结构的简单,方便做高效碰撞检测,平面合并时,确保区域内的所有体素的长宽相同;具体做法是依次检查相邻的四个体素串是否能合并,即能合并的条件是四个体素串完全相同或者相邻体素高度差在允许的精度范围内。经过这一步合并,区域内的体素串的数量应该是4的幂次,如1、4、16、64等。也可以在数据量和碰撞检测效率之间做平衡,取更激进的合并策略。
可选地,在为个体素串设置障碍物标识信息时,可以先去重,然后再设置障碍物标识信息。即为各体素串分别设置障碍物标识信息,具体实现过程可以如下:
对目标游戏三维场景图中的各体素串进行去重处理;
为去重后的各体素串分别设置障碍物标识信息。
实际应用中,目标游戏三维场景图内有很多不同平面位置下的体素串是相同的。可以把这些体素串排重后集中存放,排重后的每一个体素串给一个序号,也即障碍物标识信息,目标游戏三维场景图内各平面位置不再直接存体素串,而是存排重后的体素串序号。如此,进一步大大减小了数据量。
步骤206:将平面位置与障碍物标识信息进行关联存储,其中,障碍物标识信息用于表征目标游戏三维场景图中的场景障碍。
实际应用中,在为各体素串分别设置障碍物标识信息后,可以根据将各平面位置上的体素串对应的障碍物标识信息,将平面位置与障碍物标识信息进行关联存储,用于对目标游戏三维场景图中的场景障碍进行体素表示,从而可以用于移动和碰撞测试。
本说明书提供的游戏三维场景图处理方法,获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
下述结合附图4以本申请提供的游戏三维场景图处理方法对角色扮演游戏的应用为例,对游戏三维场景图处理方法进行进一步说明。其中,图4示出了本申请一实施例提供的一种应用于角色扮演游戏的游戏三维场景图处理方法的处理流程图,具体包括以下步骤:
步骤402:获取角色扮演游戏的全景目标游戏三维场景图。
步骤404:在水平平面上,将全景目标游戏三维场景图划分成多个预设尺寸的区域块。
步骤406:获取区域块的资源数据,根据资源数据,生成区域块中的体素,其中,资源数据包括区域块中的三维物体的三维坐标数据。
体素是目标游戏三维场景图中三维物体的基本组成单元。
步骤408:将在水平平面内具有同一平面位置、且在竖直方向上相连的多个体素进行合并,得到多个初始体素串。
步骤410:确定具有同一平面位置、且在竖直方向上相邻的初始体素串之间的距离,在距离小于预设通行距离的情况下,将具有同一平面位置、且在竖直方向上相邻的初始体素串进行合并,得到目标体素串。
步骤412:获取第一平面位置对应的第一体素串的体素串信息,以及第二平面位置对应的第二体素串的体素串信息,其中,第一平面位置与第二平面位置相邻。
步骤414:根据第一体素串的体素串信息和第二体素串的体素串信息,确定第一体素串与第二体素串的相似度。
步骤416:在相似度大于预设阈值的情况下,判断区域块中的体素串是否符合合并条件,其中,合并条件为合并后的体素串在水平平面上的投影面积相同。
步骤418:若符合,确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个,其中,N为正整数。
步骤420:若是,则对第一体素串、第二体素串和N个体素串进行合并。
步骤422:对区域块中的各体素串进行去重处理;为去重后的各体素串分别设置障碍物标识信息。
步骤424:将平面位置与障碍物标识信息进行关联存储,其中,障碍物标识信息用于表征区域块中的场景障碍。
本说明书提供的游戏三维场景图处理方法,获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
与上述方法实施例相对应,本申请还提供了游戏三维场景图处理装置实施例,图5示出了本申请一实施例提供的一种游戏三维场景图处理装置的结构示意图。如图5所示,该装置包括:
获取模块502,被配置为获取目标游戏三维场景图中的各体素,其中,体素是目标游戏三维场景图中三维物体的基本组成单元;
合并模块504,被配置为对目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;
存储模块506,被配置为将平面位置与障碍物标识信息进行关联存储,其中,障碍物标识信息用于表征目标游戏三维场景图中的场景障碍。
可选地,合并模块504,还被配置为:
将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,得到多个体素串,其中,指定平面为任一方向的平面。
可选地,合并模块504,还被配置为:
将在指定平面内具有同一平面位置、且在指定平面的垂直方向上相连的多个体素进行合并,得到多个初始体素串;
确定具有同一平面位置、且在指定平面的垂直方向上相邻的初始体素串之间的距离;
在距离小于预设通行距离的情况下,将具有同一平面位置、且在指定平面的垂直方向上相邻的初始体素串进行合并,得到目标体素串。
可选地,合并模块504,还被配置为:
获取第一平面位置对应的第一体素串的体素串信息,以及第二平面位置对应的第二体素串的体素串信息,其中,第一平面位置与第二平面位置相邻;
根据第一体素串的体素串信息和第二体素串的体素串信息,确定第一体素串与第二体素串的相似度;
在相似度大于预设阈值的情况下,对第一体素串和第二体素串进行合并。
可选地,合并模块504,还被配置为:
确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个,其中,N为正整数;
若是,则对第一体素串、第二体素串和N个体素串进行合并。
可选地,合并模块504,还被配置为:
判断目标游戏三维场景图中的体素串是否符合合并条件,其中,合并条件为合并后的体素串在指定平面上的投影面积相同;
若符合,则执行确定与第一体素串和第二体素串的平面位置相邻且相似度大于预设阈值的体素串数量是否达到N个的步骤。
可选地,合并模块504,还被配置为:
对目标游戏三维场景图中的各体素串进行去重处理;
为去重后的各体素串分别设置障碍物标识信息。
可选地,获取模块502,还被配置为:
获取目标游戏三维场景图的资源数据,其中,资源数据包括目标游戏三维场景图中的三维物体的三维坐标数据;
根据资源数据,生成目标游戏三维场景图中的体素。
可选地,目标游戏三维场景图为全景目标游戏三维场景图中的区域块;
装置还包括划分模块,被配置为:
获取全景目标游戏三维场景图;
在指定平面上,将全景目标游戏三维场景图划分成多个预设尺寸的区域块,其中,指定平面为任一平面。
本说明书提供的游戏三维场景图处理装置,通过同一平面位置的体素进行合并处理,得到多个体素串,再为各体素串设置障碍物标识信息,从而使各平面位置不再直接存体素串,而是障碍物标识信息,对目标游戏三维场景图的体素表示进行合理布局排布,使数据量大大减少,进而提高移动和碰撞检测的高效性。
上述为本实施例的一种游戏三维场景图处理装置的示意性方案。需要说明的是,该游戏三维场景图处理装置的技术方案与上述的游戏三维场景图处理方法的技术方案属于同一构思,游戏三维场景图处理装置的技术方案未详细描述的细节内容,均可以参见上述游戏三维场景图处理方法的技术方案的描述。
此外,装置实施例中的各组成部分应当理解为实现该程序流程各步骤或该方法各步骤所必须建立的功能模块,各个功能模块并非实际的功能分割或者分离限定。由这样一组功能模块限定的装置权利要求应当理解为主要通过说明书记载的计算机程序实现该解决方案的功能模块构架,而不应当理解为主要通过硬件方式实现该解决方案的实体装置。
图6示出了根据本申请一实施例提供的一种计算设备的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相连接,数据库650用于保存数据。
计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(PSTN,Public SwitchedTelephone Network)、局域网(LAN,Local Area Network)、广域网(WAN,Wide AreaNetwork)、个域网(PAN,Personal Area Network)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(NIC,NetworkInterface Controller))中的一个或多个,诸如IEEE802.11无线局域网(WLAN,WirelessLocal Area Network)无线接口、全球微波互联接入(Wi-MAX,WorldwideInteroperability for Microwave Access)接口、以太网接口、通用串行总线(USB,Universal Serial Bus)接口、蜂窝网络接口、蓝牙接口、近场通信(NFC,Near FieldCommunication)接口,等等。
在本申请的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本申请范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或PC的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
其中,处理器620用于执行所述游戏三维场景图处理方法的计算机可执行指令。
上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的游戏三维场景图处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述游戏三维场景图处理方法的技术方案的描述。
本申请一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于游戏三维场景图处理方法。
上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的游戏三维场景图处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述游戏三维场景图处理方法的技术方案的描述。
所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。
本申请一实施例还提供一种芯片,其存储有计算机程序,该计算机程序被芯片执行时实现所述游戏三维场景图处理方法的步骤。
需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
以上公开的本申请优选实施例只是用于帮助阐述本申请。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本申请的内容,可作很多的修改和变化。本申请选取并具体描述这些实施例,是为了更好地解释本申请的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本申请。本申请仅受权利要求书及其全部范围和等效物的限制。
Claims (12)
1.一种游戏三维场景图处理方法,其特征在于,包括:
获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;
对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;
将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,包括:
将在指定平面内具有同一平面位置、且在所述指定平面的垂直方向上相连的多个体素进行合并,得到多个体素串,其中,所述指定平面为任一方向的平面。
3.根据权利要求2所述的方法,其特征在于,所述将在指定平面内具有同一平面位置、且在所述指定平面的垂直方向上相连的多个体素进行合并,得到多个体素串,包括:
将在指定平面内具有同一平面位置、且在所述指定平面的垂直方向上相连的多个体素进行合并,得到多个初始体素串;
确定具有同一平面位置、且在所述指定平面的垂直方向上相邻的初始体素串之间的距离;
在所述距离小于预设通行距离的情况下,将所述具有同一平面位置、且在所述指定平面的垂直方向上相邻的初始体素串进行合并,得到目标体素串。
4.根据权利要求2或3所述的方法,其特征在于,所述为各体素串分别设置障碍物标识信息之前,还包括:
获取第一平面位置对应的第一体素串的体素串信息,以及第二平面位置对应的第二体素串的体素串信息,其中,所述第一平面位置与所述第二平面位置相邻;
根据所述第一体素串的体素串信息和所述第二体素串的体素串信息,确定所述第一体素串与所述第二体素串的相似度;
在所述相似度大于预设阈值的情况下,对所述第一体素串和所述第二体素串进行合并。
5.根据权利要求4所述的方法,其特征在于,所述对所述第一体素串和所述第二体素串进行合并,包括:
确定与所述第一体素串和所述第二体素串的平面位置相邻且相似度大于所述预设阈值的体素串数量是否达到N个,其中,N为正整数;
若是,则对所述第一体素串、所述第二体素串和所述N个体素串进行合并。
6.根据权利要求5所述的方法,其特征在于,所述确定与所述第一体素串和所述第二体素串的平面位置相邻且相似度大于所述预设阈值的体素串数量是否达到N个,包括:
判断所述目标游戏三维场景图中的体素串是否符合合并条件,其中,所述合并条件为合并后的体素串在所述指定平面上的投影面积相同;
若符合,则执行所述确定与所述第一体素串和所述第二体素串的平面位置相邻且相似度大于所述预设阈值的体素串数量是否达到N个的步骤。
7.根据权利要求1所述的方法,其特征在于,所述为各体素串分别设置障碍物标识信息,包括:
对所述目标游戏三维场景图中的各体素串进行去重处理;
为去重后的各体素串分别设置障碍物标识信息。
8.根据权利要求1所述的方法,其特征在于,所述获取目标游戏三维场景图中的各体素,包括:
获取目标游戏三维场景图的资源数据,其中,所述资源数据包括所述目标游戏三维场景图中的三维物体的三维坐标数据;
根据所述资源数据,生成所述目标游戏三维场景图中的体素。
9.根据权利要求1-3、7和8任意一项所述的方法,其特征在于,所述目标游戏三维场景图为全景目标游戏三维场景图中的区域块;
所述获取目标游戏三维场景图中的各体素之前,还包括:
获取全景目标游戏三维场景图;
在指定平面上,将所述全景目标游戏三维场景图划分成多个预设尺寸的区域块,其中,所述指定平面为任一平面。
10.一种游戏三维场景图处理装置,其特征在于,包括:
获取模块,被配置为获取目标游戏三维场景图中的各体素,其中,所述体素是所述目标游戏三维场景图中三维物体的基本组成单元;
合并模块,被配置为对所述目标游戏三维场景图中具有同一平面位置的体素进行合并处理,得到多个体素串,并为各体素串分别设置障碍物标识信息;
存储模块,被配置为将所述平面位置与所述障碍物标识信息进行关联存储,其中,所述障碍物标识信息用于表征所述目标游戏三维场景图中的场景障碍。
11.一种计算设备,其特征在于,包括:
存储器和处理器;
所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令实现权利要求1至9任意一项所述游戏三维场景图处理方法的步骤。
12.一种计算机可读存储介质,其存储有计算机指令,其特征在于,该指令被处理器执行时实现权利要求1至9任意一项所述游戏三维场景图处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211385551.5A CN115830266A (zh) | 2022-11-07 | 2022-11-07 | 游戏三维场景图处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211385551.5A CN115830266A (zh) | 2022-11-07 | 2022-11-07 | 游戏三维场景图处理方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115830266A true CN115830266A (zh) | 2023-03-21 |
Family
ID=85526925
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211385551.5A Pending CN115830266A (zh) | 2022-11-07 | 2022-11-07 | 游戏三维场景图处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115830266A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117409209A (zh) * | 2023-12-15 | 2024-01-16 | 深圳大学 | 一种多任务感知的三维场景图要素分割与关系推理方法 |
-
2022
- 2022-11-07 CN CN202211385551.5A patent/CN115830266A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117409209A (zh) * | 2023-12-15 | 2024-01-16 | 深圳大学 | 一种多任务感知的三维场景图要素分割与关系推理方法 |
CN117409209B (zh) * | 2023-12-15 | 2024-04-16 | 深圳大学 | 一种多任务感知的三维场景图要素分割与关系推理方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Morell et al. | Geometric 3D point cloud compression | |
US20210295595A1 (en) | Generating three-dimensional virtual scene | |
US20150123968A1 (en) | Occlusion render mechanism for point clouds | |
CN107767453B (zh) | 一种基于规则约束的建筑物lidar点云重构优化方法 | |
CN108269304B (zh) | 一种多地理信息平台下的场景融合可视化方法 | |
CN107464286B (zh) | 三维城市模型中的孔洞修复方法及装置、设备及可读介质 | |
CN112569602B (zh) | 在虚拟场景中构建地形的方法及装置 | |
CN113870401B (zh) | 表情生成方法、装置、设备、介质和计算机程序产品 | |
CN110070616A (zh) | 存储器、基于gis平台的统计数据呈现方法、装置和设备 | |
JP2019168976A (ja) | 3次元モデル生成装置 | |
CN113750516A (zh) | 一种在游戏引擎中实现三维gis数据加载方法、系统及设备 | |
CN115830266A (zh) | 游戏三维场景图处理方法及装置 | |
CN112973127A (zh) | 一种游戏3d场景编辑方法及装置 | |
CN116385672A (zh) | 一种三维地形场景模型数据产品的构建方法 | |
CN112053440A (zh) | 单体化模型的确定方法及通信装置 | |
CN110825250B (zh) | 一种笔刷轨迹的优化方法及装置 | |
CN116912817A (zh) | 三维场景模型拆分方法、装置、电子设备和存储介质 | |
CN110827303B (zh) | 一种虚拟场景的图像编辑方法及装置 | |
CN113989680B (zh) | 建筑三维场景自动构建方法及系统 | |
JP2023021469A (ja) | 測位方法、測位装置、ビジュアルマップの生成方法およびその装置 | |
CN112337093B (zh) | 一种虚拟对象的分簇方法、装置、存储介质和电子装置 | |
CN115033972A (zh) | 一种建筑主体结构批量单体化方法、系统及可读存储介质 | |
CN112221150B (zh) | 一种虚拟场景中的涟漪仿真方法及装置 | |
CN114470782A (zh) | 区域处理方法及装置 | |
Sui et al. | A visualization framework for cloud rendering in global 3D GIS |
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 |