虚拟场景的处理方法和装置以及存储介质制造方法及图纸

技术编号:27146264 阅读:31 留言:0更新日期:2021-01-27 21:59
本发明专利技术公开了一种虚拟场景的处理方法和装置以及存储介质。其中,该方法包括:先在虚拟三维地图的目标平面区域中查找具有用于表示三维场景元素的体素的目标平面位置;在查找到目标平面位置的情况下,获取目标平面位置上的体素的体素数据;在内存中存储目标平面位置上的体素的体素数据,达到了在目标平面区域中的目标平面位置包括多个平面位置时,只存储目标平面位置上具有目标体素的体素数据的目的,即多个平面位置上的体素所对应的层数不完全相同,从而避免了将没有目标体素的目标平面位置上的数据进行存储,实现了体素数据的分层存储,进而解决了现有技术中,虚拟场景处理的数据结构复杂,导致的数据存储所占内存较大的技术问题。术问题。术问题。

【技术实现步骤摘要】
虚拟场景的处理方法和装置以及存储介质


[0001]本专利技术涉及计算机
,具体而言,涉及一种虚拟场景的处理方法和装置以及存储介质。

技术介绍

[0002]现今,人们的空闲时间越来越多的选择通过游戏度过,将加快游戏的发展,游戏中丰富的3D场景将给玩家带来较高的游戏体验,因此,对游戏客户端3D场景建模的要求越来越高。
[0003]传统的多边形网格(PolyMesh)的3D场景描述方法中,它把游戏场景中的碰撞表面抽像成多边形网格来表示。它的精度高,因为平面可以无限切割,理论上可以表示非常精确的碰撞表面,可以做到与客户端相同的精度表示。
[0004]基于PolyMesh(多边形网格)的NavMesh(导航网格)是常见的客户端3D场景建模解决方案,但是数据结构复杂,算法复杂,计算量大,如果直接移植客户端引擎到服务端,开发难度较大,维护成本高。体素建模方案,数据结构简单,算法简单,开发成本低,但是精度略低,会丢失一些细节,占用空间较大,会有一些冗余数据。
[0005]另,场景建模非常重要的应用之一是场景寻路或判定两点是否可达,基于PolyMesh(多边形网格)的寻路算法。它主要有以下三个步骤:(a)由起点和终点定位到具体多边形poly;(b)查找起始poly到目标poly的联通路径;(c)根据联通的poly路径信息计算出拐点,生成路径点。
[0006]在场景寻路或判定两点是否可达,基于PolyMesh方案需要在服务器端导入大量的美术资源,资源量大,占用空间大;碰撞计算非常消耗CPU,计算量大,对机器性能要求较高;数据结构复杂,寻路算法较复杂,开发难度较大。
[0007]针对上述的问题,目前尚未提出有效的解决方案。

技术实现思路

[0008]本专利技术实施例提供了一种虚拟场景的处理方法和装置以及存储介质,以至少解决现有技术中,虚拟场景处理的数据结构复杂,导致的数据存储所占内存较大的技术问题。
[0009]根据本专利技术实施例的一个方面,提供了一种虚拟场景的处理方法,包括:在虚拟三维地图的目标平面区域中查找目标平面位置,其中,所述目标平面位置上具有用于表示三维场景元素的体素;在查找到所述目标平面位置的情况下,获取所述目标平面位置上的体素的体素数据;在内存中存储所述目标平面位置上的体素的体素数据,其中,在所述目标平面位置包括多个平面位置、且所述多个平面位置中的每个平面位置上具有一层或多层体素的情况下,所述多个平面位置中的至少两个平面位置上的体素所对应的层数不同。
[0010]根据本专利技术实施例的另一方面,还提供了一种虚拟场景的处理装置,包括:查找单元,用于在虚拟三维地图的目标平面区域中查找目标平面位置,其中,所述目标平面位置上具有用于表示三维场景元素的体素;第一获取单元,用于在查找到所述目标平面位置的情
况下,获取所述目标平面位置上的体素的体素数据;第一存储单元,用于在内存中存储所述目标平面位置上的体素的体素数据,其中,在所述目标平面位置包括多个平面位置、且所述多个平面位置中的每个平面位置上具有一层或多层体素的情况下,所述多个平面位置中的至少两个平面位置上的体素所对应的层数不同。
[0011]根据本专利技术实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述虚拟场景的处理方法。
[0012]根据本专利技术实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的虚拟场景的处理方法。
[0013]在本专利技术实施例中,通过先在虚拟三维地图的目标平面区域中查找具有用于表示三维场景元素的体素的目标平面位置;在查找到目标平面位置的情况下,获取目标平面位置上的体素的体素数据;在内存中存储目标平面位置上的体素的体素数据,其中,在目标平面位置包括多个平面位置、且多个平面位置中的每个平面位置上具有一层或多层体素的情况下,多个平面位置中的至少两个平面位置上的体素所对应的层数不同,达到了在目标平面区域中的目标平面位置包括多个平面位置时,只存储目标平面位置上具有目标体素的体素数据的目的,也就是说,目标平面区域中的多个平面位置上的体素所对应的层数不完全相同,仅存储目标平面位置上的体素的体素数据。进而解决了现有技术中,虚拟场景处理的数据结构复杂,导致的数据存储所占内存较大的技术问题。
附图说明
[0014]此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:
[0015]图1是根据本专利技术实施例的一种可选的虚拟场景的处理方法的应用环境的示意图;
[0016]图2是根据本专利技术实施例的一种可选的虚拟场景的处理方法的流程图;
[0017]图3是根据本专利技术实施例的一种可选的体素数据存储结构示意图;
[0018]图4是根据本专利技术实施例的一种可选的虚拟场景中的美术场景示意图;
[0019]图5是根据本专利技术实施例的一种可选的虚拟场景中的地面局部的Navmesh网格示意图;
[0020]图6是根据本专利技术实施例的一种可选的虚拟场景中某个局部建筑的体素示意图;
[0021]图7是根据本专利技术实施例的一种可选的目标虚拟操作对象碰撞检测的流程图;
[0022]图8是根据本专利技术实施例的一种可选的体素和NavMesh相结合的AI寻路算法流程图;
[0023]图9是根据本专利技术实施例的一种可选的虚拟场景中某次移动寻路路径点的示意图;
[0024]图10是根据本专利技术实施例的一种可选的进程间地图场景资源数据共享存储示意图;
[0025]图11是根据本专利技术实施例的一种可选的NavMesh内存改造过程示意图;
[0026]图12是根据本专利技术实施例的一种可选的虚拟场景的处理装置的结构示意图;
[0027]图13是根据本专利技术实施例的一种可选的电子设备的结构示意图。
具体实施方式
[0028]为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。
[0029]需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种虚拟场景的处理方法,其特征在于,包括:在虚拟三维地图的目标平面区域中查找目标平面位置,其中,所述目标平面位置上具有用于表示三维场景元素的体素;在查找到所述目标平面位置的情况下,获取所述目标平面位置上的体素的体素数据;在内存中存储所述目标平面位置上的体素的体素数据,其中,在所述目标平面位置包括多个平面位置、且所述多个平面位置中的每个平面位置上具有一层或多层体素的情况下,所述多个平面位置中的至少两个平面位置上的体素所对应的层数不同。2.根据权利要求1所述的方法,其特征在于,所述获取所述目标平面位置上的体素的体素数据,包括:获取所述目标平面位置上的各层体素的体素数据;所述在内存中存储所述目标平面位置上的体素的体素数据,包括:在所述内存中存储所述目标平面位置以及所述目标平面位置上的各层体素的体素数据。3.根据权利要求2所述的方法,其特征在于,所述获取所述目标平面位置上的各层体素的体素数据,包括:在所述目标平面位置包括第一平面位置、且所述第一平面位置上具有多层体素表示的三维场景元素的情况下,获取所述第一平面位置上的所述多层体素的体素数据;在所述内存中存储所述目标平面位置以及所述目标平面位置上的各层体素的体素数据,包括:在所述内存中存储所述第一平面位置以及所述第一平面位置上的所述多层体素的体素数据。4.根据权利要求2所述的方法,其特征在于,所述获取所述目标平面位置上的各层体素的体素数据,包括:在所述目标平面位置包括第二平面位置、且所述第二平面位置上具有单层体素表示的三维场景元素的情况下,获取所述第二平面位置上的所述单层体素的体素数据;在所述内存中存储所述目标平面位置以及所述目标平面位置上的各层体素的体素数据,包括:在所述内存中存储所述第二平面位置以及所述第二平面位置上的所述单层体素的体素数据。5.根据权利要求1所述的方法,其特征在于,所述方法还包括:在查找到所述目标平面位置的情况下,将所述目标平面位置的标记设置为第一标记,其中,所述第一标记用于表示所述目标平面位置上存在静态体素、以及所述目标平面位置上存在静态体素的层;在所述目标平面区域中包括除所述目标平面位置之外的其他平面位置的情况下,将所述其他平面位置的标记设置为第二标记,其中,所述第二标记用于表示所述其他平面位置上不存在静态体素。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:获取所述目标平面区域中的第一虚拟对象所在的第三平面位置;在所述第三平面位置的标记表示所述第三平面位置上存在静态体素、且所述第三平面位置上存在静态体素的层为目标层的情况下,根据所述内存中存储的与所述第三平面位置相关的体素的体素数据,获取所述目标层上的静态体素的上沿高度和下沿高度;在所述第一虚拟对象的高度在所述上沿高度和所述下沿高度之间的情况下,确定所述
第一虚拟对象出现碰撞。7.根据权利要求6所述的方法,其特征在于,所述根据所述内存中存储的与所述第三平面位置相关的体素的体素数据,获取所述目标层上的体素的上沿高度和下沿高度,包括:在所述目标层为起始层的情况下,在所述内存中存储的所述第三平面位置上的体素的体素数据中,获取所述目标层上的静态体素的上沿高度和下沿高度;在所述目标层不为起始层的情况下,在所述内存中获取所述第三平面位置所在的目标分片上的体素的体素数据,在所述目标分片上的体素的体素数据中获取所述第三平面位置上的所述目标层上的静态体素的上沿高度和下沿高度。8.根据权利要求6所述的方法,其特征在于,所述方法还包括:在所述第一虚拟对象的高度不在所述上沿高度和所述下沿高度之间的情况下,判断所述第三平面位置上是否存在动态体素;在所述第三平面位置上存在动态体素的情况下,获取所述动态体素的上沿高度和下沿高度;在...

【专利技术属性】
技术研发人员:邱立业方振镇
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1