一种基于多四叉树的MMO游戏元素裁减方法及其装置
技术领域
本发明涉及一种基于多四叉树的MMO游戏元素裁减方法及其装置,属于游戏开发领域。
背景技术
在现如今,游戏是人们一种非常重要的娱乐手段,而伴随着硬件设备的小型化和高性能,手游也逐渐代替端游成为很多人首先的游戏方式;目前的手游市场体量庞大且游戏种类众多,MMO作为经典游戏类型自然有着极大的占比。通常在一款MMO手游中,游戏场景的质量和规模和游戏本身的质量基本呈现正相关,塑造游戏场景则需要裁剪众多可视元素。
传统解决方案是通过单个四叉树进行管理,之后用视锥体对四叉树进行可见性裁剪,以上手段虽然技术成熟且运行成本低,但当游戏内元素数量过多时,也会暴露出单一四叉树性能有限的问题;与此同时,单一四叉树对所有元素进行的是相同处理步骤,但场景内元素伴随着其大小的改变,可视距离也会相应变化,将所有的元素进行统一裁剪,再根据距离进行剔除的方法会使单一四叉树模式的工作效率进一步降低;除了以上两点不足以外,还存在以下现象,因不同应用端的设备性能有所区别,部分游戏内元素根据可视距离的限制根本无须处理,单一四叉树对于这类情况无法鉴别,使得部分玩家的游戏体验受到了影响。
发明内容
为上述现有技术的不足,本发明提供了一种基于多四叉树的MMO游戏元素裁减方法,可以有效提升场景元素裁减效率,并且根据硬件配置的不同,实现针对场景元素的选择性裁减。
本发明为解决技术问题所采用的技术方案为:
一种基于多四叉树的MMO游戏元素裁减方法,包括以下步骤:
S1、初始化程序进而加载预设信息,创建四叉树处理单元;
S2、匹配场景元素的尺寸进而根据匹配结果分配至所述四叉树处理单元内;
S3、启动所述四叉树处理单元,并对所述四叉树处理单元内的所述场景元素进行视椎体裁剪;
S4、发送经裁剪可见的场景元素至交互界面。
进一步,所述预设信息包括下面至少一项:尺寸分类配置、场景元素库及终端信息配置。
进一步,步骤S1还包括调用所述尺寸分类配置,根据所述尺寸分类配置中设置的尺寸区间数量创建相同数量的所述四叉树处理单元。
进一步,所述尺寸区间至少存在一个。
进一步,所述场景元素调用于所述场景元素库。
进一步,步骤S2还包括将所述场景元素的尺寸与当前所述尺寸区间进行匹配,根据匹配结果发送所述场景元素至已匹配所述尺寸区间对应的所述四叉树处理单元内。
进一步,如果所述场景元素的尺寸超过了最大尺寸区间的上限,则默认将该所述场景元素分配至所述最大尺寸区间内。
进一步,步骤S3还包括调用所述终端信息配置,根据该配置启动符合终端性能的所述四叉树处理单元。
一种基于多四叉树的MMO游戏元素裁减装置,包括以下模块:
初始化模块,用于初始化程序进而加载预设信息,创建四叉树处理单元;
分配模块,用于匹配场景元素的尺寸进而根据匹配结果分配至所述四叉树处理单元内;
裁剪模块,用于启动所述四叉树处理单元,并对所述四叉树处理单元内的所述场景元素进行视椎体裁剪;以及
通信模块,用于发送经裁剪可见的场景元素至交互界面。
一种计算机可读存储介质,其上存储有计算机指令,其特征在于该指令被处理器执行时实现任一项所述方法的步骤。
本发明的有益效果为:有效利用大尺寸元素可视距离大裁剪范围大、小尺寸元素可视距离小裁剪范围小的特点来提升元素裁减效率;还可以根据硬件配置,实现元素的选择性裁减,极大地提高了运行效率和玩家的游戏体验。
附图说明
图1所示为根据本发明的总体流程图;
图2所示为根据本发明的装置连接图。
具体实施方式
应当认识到,本发明的实施例可以由计算机硬件、硬件和软件的组合、或者通过存储在非暂时性计算机可读存储器中的计算机指令来实现或实施。所述方法可以使用标准编程技术-包括配置有计算机程序的非暂时性计算机可读存储介质在计算机程序中实现,其中如此配置的存储介质使得计算机以特定和预定义的方式操作——根据在具体实施例中描述的方法和附图。每个程序可以以高级过程或面向对象的编程语言来实现以与计算机系统通信。然而,若需要,该程序可以以汇编或机器语言实现。在任何情况下,该语言可以是编译或解释的语言。此外,为此目的该程序能够在编程的专用集成电路上运行。
此外,可按任何合适的顺序来执行本文描述的过程的操作,除非本文另外指示或以其他方式明显地与上下文矛盾。本文描述的过程(或变型和/或其组合)可在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可作为共同地在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用)、由硬件或其组合来实现。所述计算机程序包括可由一个或多个处理器执行的多个指令。
进一步,所述方法可以在可操作地连接至合适的任何类型的计算平台中实现,包括但不限于个人电脑、迷你计算机、主框架、工作站、网络或分布式计算环境、单独的或集成的计算机平台、或者与带电粒子工具或其它成像装置通信等等。本发明的各方面可以以存储在非暂时性存储介质或设备上的机器可读代码来实现,无论是可移动的还是集成至计算平台,如硬盘、光学读取和/或写入存储介质、RAM、ROM等,使得其可由可编程计算机读取,当存储介质或设备由计算机读取时可用于配置和操作计算机以执行在此所描述的过程。此外,机器可读代码,或其部分可以通过有线或无线网络传输。当此类媒体包括结合微处理器或其他数据处理器实现上文所述步骤的指令或程序时,本文所述的发明包括这些和其他不同类型的非暂时性计算机可读存储介质。当根据本发明所述的方法和技术编程时,本发明还包括计算机本身。
计算机程序能够应用于输入数据以执行本文所述的功能,从而转换输入数据以生成存储至非易失性存储器的输出数据。输出信息还可以应用于一个或多个输出设备如显示器。在本发明优选的实施例中,转换的数据表示物理和有形的对象,包括显示器上产生的物理和有形对象的特定视觉描绘。
需要说明的是,如无特殊声明,在本公开中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。此外,除非另有定义,本文所使用的所有的技术和科学术语与本技术领域的技术人员通常理解的含义相同。本文说明书中所使用的术语只是为了描述具体的实施例,而不是为了限制本发明。本文所使用的术语“和/或”包括一个或多个的所列项目的任意的组合。
应当理解,本文所提供的任何以及所有实例或示例性语言(“例如”、“如”等)的使用仅意图更好地说明本发明的实施例,并且除非另外要求,否则不会对本发明的范围施加限制。
为了更好的理解本发明,首先对技术方案提及的部分名词进行解释:
四叉树即quad-tree,是一种每个节点最多有四个子树的数据结构;在二维图片中定位像素的唯一适合的算法。因为在二维空间中,平面像素可以重复的被分为四部分,树的深度由图片、计算机内存和图形的复杂度决定;四叉树可以用来在数据库中放置和定位文件(称作记录或键);这一算法通过不停的把要查找的记录分成4部分来进行匹配查找直到仅剩下一条记录为止。
视锥体是指场景中摄像机的可见的一个锥体范围;它由上、下、左、右、近以及远共6个面组成。在视锥体内的景物可见,反之则不可见;为提高性能,我们一般只对其中与视锥体有交集的对象进行绘制;我们计算出视锥体六个面的空间平面方程,将点坐标分别代入六个面的平面方程做比较,则可以判断点是否在视锥体内,空间平面方程可表示为:
Ax+By+Cz=0
对于点(x1,y1,z1),有若Ax1+By1+Cz1=0,则点在平面上;若Ax1+By1+Cz1<0,则点在平面的一侧;若Ax1+By1+Cz1=0,则点在平面的另一侧。
接下来结合附图对本发明的具体实施例作进一步说明。
参照图1所示为根据本发明的总体流程图,包括以下步骤:
S1、初始化程序进而加载预设信息,创建四叉树处理单元;这里所提及的预设信息包括但不限于尺寸分类配置、场景元素库、终端信息配置,以上三类信息均作为后续步骤执行中所需的输入数据;在预设信息加载完成后,系统调用预设信息中的尺寸分类配置,根据尺寸分类配置中规定的尺寸区间数创建相同数量的四叉树处理单元,尺寸区间至少存在一个,因此相应的四叉树处理单元也至少存在一个;每个四叉树处理单元只针对处理其对应尺寸区间内的场景元素;
S2、匹配场景元素的尺寸进而根据匹配结果分配至相应的四叉树处理单元内;具体地,还包括首先将场景元素的尺寸与当前尺寸区间进行匹配,根据匹配的结果发送至已匹配尺寸区间对应的四叉树处理单元内;需要特别说的是,个别场景元素因游戏的特殊需求会存在较大的尺寸,若该场景元素的尺寸已超过最大尺寸区间的上限,则默认将该场景元素分配至最大尺寸区间;场景元素调用于预设信息中的场景元素库,实际场景元素库根据实际需要在每次项目或工程开始时进行更换或修改,从而适用于不同游戏场景搭建的需求;
S3、启动四叉树处理单元,对四叉树处理单元内的场景元素进行视椎体裁剪;具体地,还包括调用预设信息中的终端信息配置,根据此配置启动满足终端性能的四叉树处理单元;因作为游戏运营载体的硬件设备往往存在着硬件性能上的差别,其在游戏内保证画面流畅的前提下,相应能够满足的显示效果上限也会有所区别;
S4、发送经裁剪可见的场景元素至交互界面。
参照图2所示为根据本发明的装置连接图,具体包括以下模块:
初始化模块,用于初始化程序进而加载预设信息,创建四叉树处理单元;分配模块,用于匹配场景元素的尺寸进而根据匹配结果分配至相应的四叉树处理单元内;裁剪模块,用于启动四叉树处理单元,并对已启动的四叉树处理单元内的场景元素进行视椎体裁剪;以及通信模块,用于发送经裁剪可见的场景元素至交互界面。
以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。在本发明的保护范围内其技术方案和/或实施方式可以有各种不同的修改和变化。