技术领域
本发明涉及计算机技术领域,具体而言,涉及一种遮挡属性配置方法、装置及可读存储介质。
背景技术
目前的游戏引擎都是让引擎使用者自行决定当前游戏场景中的物体是遮挡体还是被遮挡体,因为引擎开发者认为只有使用者才最清楚场景物体是遮挡体还是被遮挡体,这就需要引擎使用者去遍历所有物体来判断并设置遮挡属性,这样不仅需要花费大量的时间去手动配置场景物体的遮挡属性,同时还会存在遍历不全,导致一些物体没有配置遮挡属性的情况。
发明内容
为了克服现有技术中的上述不足,本发明的目的在于提供一种遮挡属性配置方法、装置及可读存储介质,能够自动完成场景物体的遮挡属性的配置,无需人工手动配置场景物体的遮挡属性,节省人力,同时避免由于遍历不全导致的漏掉一些物体没有配置遮挡属性的情况。
为了实现上述目的,本发明较佳实施例采用的技术方案如下:
本发明较佳实施例提供一种遮挡属性配置方法,应用于电子设备,所述方法包括:
遍历当前游戏场景中的场景物体;
针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中;
在判断结果为是时,计算所述场景物体的最小包围球半径;
将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置,其中,所述第一预设阈值小于所述第二预设阈值。
在本发明较佳实施例中,所述判断所述场景物体是否位于遮挡剔除区域中,包括:
读取当前游戏场景的场景文件;
从所述场景文件中获取遮挡剔除区域信息,所述遮挡剔除区域信息包括遮挡剔除区域的最小包围盒信息;
计算所述场景物体的最小包围盒与所述遮挡剔除区域的最小包围盒的重合比例;
判断所述重合比例是否大于预设比例;
在判断结果为是时,判定所述场景物体位于遮挡剔除区域中;以及
在判断结果为否时,判定所述场景物体位于遮挡剔除区域外。
在本发明较佳实施例中,所述计算所述场景物体的最小包围球半径,包括:
获取所述场景物体的最小包围盒的最长对角线;
将所述最长对角线的一半长度确定为所述场景物体的最小包围球半径。
在本发明较佳实施例中,所述将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置,包括:
当所述最小包围球半径不大于所述第一预设阈值时,将所述场景物体的遮挡属性配置为被遮挡体;
当所述最小包围球半径不小于所述第二预设阈值时,将所述场景物体的遮挡属性配置为遮挡体;
当所述最小包围球半径大于所述第一预设阈值,且小于所述第二预设阈值时,将所述场景物体的遮挡属性同时配置为被遮挡体和遮挡体。
在本发明较佳实施例中,在所述将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置之后,所述方法还包括:
响应所述场景物体的遮挡属性的调整请求,对所述场景物体的遮挡属性进行调整,其中,所述调整请求中包括有对所述场景物体的遮挡属性的配置信息。
在本发明较佳实施例中,在所述遍历当前游戏场景中的场景物体之前,所述方法还包括:
响应遮挡剔除区域的配置请求,在场景文件中添加遮挡剔除区域信息,其中,所述遮挡剔除区域信息包括遮挡剔除区域的最小包围盒信息。
在本发明较佳实施例中,在所述遍历当前游戏场景中的场景物体之前,所述方法还包括:
响应预设阈值的配置请求,配置第一预设阈值和第二预设阈值,其中,所述第一预设阈值用于判断场景物体是否为被遮挡体,所述第二预设阈值用于判断场景物体是否为遮挡体,所述第一预设阈值小于所述第二预设阈值。
本发明较佳实施例还提供一种遮挡属性配置装置,应用于电子设备,所述装置包括:
遍历模块,用于遍历当前游戏场景中的场景物体。
判断模块,用于针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中。
计算模块,用于在判断结果为是时,计算所述场景物体的最小包围球半径。
配置模块,用于将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置,其中,所述第一预设阈值小于所述第二预设阈值。
本发明较佳实施例还提供一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序被执行时实现上述的遮挡属性配置方法。
相对于现有技术而言,本发明具有以下有益效果:
本发明实施例提供一种遮挡属性配置方法、装置及可读存储介质,通过遍历当前游戏场景中的场景物体,针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中,并在判断结果为是时,计算所述场景物体的最小包围球半径,同事将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置。由此,能够自动完成场景物体的遮挡属性的配置,无需人工手动配置场景物体的遮挡属性,节省人力,同时避免由于遍历不全导致的漏掉一些物体没有配置遮挡属性的情况。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。
图1为本发明较佳实施例提供的遮挡属性配置方法的一种流程示意图;
图2为图1中所示的步骤S220包括的各个子步骤的一种流程示意图;
图3为本发明较佳实施例提供的遮挡属性配置方法的另一种流程示意图;
图4为本发明较佳实施例提供的遮挡属性配置装置的一种功能模块图;
图5为本发明较佳实施例提供的电子设备的一种结构示意框图。
图标:100-电子设备;110-总线;120-处理器;130-存储介质;140-总线接口;150-网络适配器;160-用户接口;200-遮挡属性配置装置;210-遍历模块;220-判断模块;230-计算模块;240-配置模块。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语"第一"、"第二"等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在一个游戏画面中,除去界面外主要由游戏场景和游戏角色构成,因此在游戏渲染画面时需要渲染大量的场景物体。为了提高游戏的可玩性,需要对游戏渲染进行大量的优化,经本申请发明人研究发现目前常用的是遮挡剔除算法。遮挡剔除算法主要是将在视锥中却被前方物体完全遮挡的物体从当前渲染队列中剔除的算法,从而减少没有意义的渲染调用。遮挡剔除算法一般是先设置物体为遮挡体或被遮挡体,再通过一定的算法计算区域的潜在可见集(Potentially Visible Set,PVS),其中,所述潜在可见集一般用于遮挡剔除算法中,用于表示相机在某个区域中潜在可见物体的集合。当相机到达遮挡剔除作用区域时,得到区域对应的潜在可见集,并将被遮挡的被遮挡体从视锥可见集中清理出来。因此,应用遮挡剔除算法就必须要配置场景物体的遮挡属性,场景物体可以被配置为遮挡体、被遮挡体、同时为遮挡体和被遮挡体,当然也可以选择不配置,也即,没有配置遮挡属性的场景物体不参与遮挡剔除过程。
在遮挡剔除算法的实际应用过程中,经发明人长期研究发现,目前主要是通过人工去遍历所有物体来判断并设置遮挡属性,这样不仅需要花费大量的时间去手动配置场景物体的遮挡属性,同时还会存在遍历不全,导致一些物体没有配置遮挡属性的情况,影响游戏体验。
鉴于上述问题,本申请发明人提出下述方法,该方法能够自动完成场景物体的遮挡属性的配置,无需人工手动配置场景物体的遮挡属性,节省人力,同时避免由于遍历不全导致的漏掉一些物体没有配置遮挡属性的情况。下面结合附图,对本发明实施例作详细说明。在不冲突的情况下,下述的实施例及实施例中的特征可以相互组合。
请参阅图1,为本发明较佳实施例提供的遮挡属性配置方法的一种流程示意图。所应说明的是,本发明实施例提供的遮挡属性配置方法不以图1及以下所述的具体顺序为限制。所述方法的具体流程如下:
步骤S210,遍历当前游戏场景中的场景物体。
详细地,一个游戏场景中一般包括场景物体、游戏角色等,其中,场景物体主要包括地形、水体、建筑物、点缀物等构成,一般在游戏加载过程中,游戏引擎会遍历当前游戏场景中的场景物体,以获得每个场景物体的数据信息,例如获得每个场景物体的最小包围盒。
步骤S220,针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中。
首先,在对所述步骤S220作进一步阐述之前,首先对场景文件的配置过程进行说明。作为一种实施方式,用户可以预先在游戏场景的场景文件中配置遮挡剔除区域信息,通过响应响应遮挡剔除区域的配置请求,在场景文件中添加遮挡剔除区域信息,所述遮挡剔除区域信息包括遮挡剔除区域的最小包围盒信息。在遮挡剔除区域中的场景物体才会参与遮挡体或者被遮挡体的判断,在遮挡剔除区域之外的场景场景物体则不参与。
请参阅图2,在一种实施方式中,所述步骤S220可以包括以下子步骤:
子步骤S221,读取当前游戏场景的场景文件。
子步骤S222,从所述场景文件中获取遮挡剔除区域信息。
本实施例中,所述遮挡剔除区域信息包括遮挡剔除区域的最小包围盒信息,所述最小包围盒可以通过所述遮挡剔除区域在该遮挡剔除区域局部坐标系的顶点位置计算得出,可以大概得到一个刚好能将该遮挡剔除区域包住的长方体,这个长方体也就是所述遮挡剔除区域的最小包围盒。
子步骤S223,计算所述场景物体的最小包围盒与所述遮挡剔除区域的最小包围盒的重合比例。
本实施例中,针对每一个场景物体,根据读取到的遮挡剔除区域信息,计算所述场景物体的最小包围盒与所述遮挡剔除区域的最小包围盒的重合比例,然后执行:
子步骤S224,判断所述重合比例是否大于预设比例。
在判断结果为是时,也即,所述重合比例大于所述预设比例时,执行:
子步骤S225,判定所述场景物体位于遮挡剔除区域中。以及
在判断结果为否时,也即,所述重合比例不大于所述预设比例时,执行:
子步骤S226,判定所述场景物体位于遮挡剔除区域外。
值得说明的是,所述预设比例可以根据实际需求进行设置,例如,所述预设比例可以设置为0%,也即,只要所述场景物体的最小包围盒与所述遮挡剔除区域的最小包围盒有重合,那么就判定所述场景物体位于遮挡剔除区域中,如果没有任何重合,那么就判定所述场景物体位于遮挡剔除区域外。
请再次参阅图1,步骤S230,在判断结果为是时,计算所述场景物体的最小包围球半径。
本实施例中,在计算得到所述场景物体的最小包围盒之后,首先获取所述场景物体的最小包围盒的最长对角线,然后可以以所述最小包围盒的最长对角线的中心为球心,以所述最长对角线的一半长度为半径生成所述目标物体的最小包围球,然后将所述最长对角线的一半长度确定为所述场景物体的最小包围球半径。
步骤S240,将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置。
本实施例中,所述第一预设阈值小于所述第二预设阈值。当所述最小包围球半径不大于所述第一预设阈值时,将所述场景物体的遮挡属性配置为被遮挡体。或者,当所述最小包围球半径不小于所述第二预设阈值时,将所述场景物体的遮挡属性配置为遮挡体。又或者,当所述最小包围球半径大于所述第一预设阈值,且小于所述第二预设阈值时,将所述场景物体的遮挡属性同时配置为被遮挡体和遮挡体。
例如,所述第一预设阈值为x1,所述第二预设阈值为x2,所述场景物体的最小包围球半径为r,x1<x2,那么:
如果r<=x1,那么将所述场景物体的遮挡属性配置为被遮挡体。
如果r>=x2,那么将所述场景物体的遮挡属性配置为遮挡体。
如果x1<r<x2,那么将所述场景物体的遮挡属性同时配置为被遮挡体和遮挡体。
值得说明的是,上述第一预设阈值和第二预设阈值可以预先由用户进行配置,通过响应预设阈值的配置请求,配置第一预设阈值和第二预设阈值,其中,所述第一预设阈值用于判断场景物体是否为被遮挡体,所述第二预设阈值用于判断场景物体是否为遮挡体,所述第一预设阈值小于所述第二预设阈值。
至此,基于上述步骤,通过对处于剔除遮挡区域中的场景物体的最小包围球半径与第一预设阈值和第二预设阈值进行比较,并根据比较结果自动配置每个场景物体的遮挡属性,从而能够自动完成场景物体的遮挡属性的配置,无需人工手动配置场景物体的遮挡属性,节省人力,同时避免由于遍历不全导致的漏掉一些物体没有配置遮挡属性的情况。
进一步地,请参阅图3,在所述步骤S240之后,所述方法还可以包括:
步骤S250,响应所述场景物体的遮挡属性的调整请求,对所述场景物体的遮挡属性进行调整。
本实施例中,所述调整请求中包括有对所述场景物体的遮挡属性的配置信息,所述配置信息也即包括对所述场景物体的遮挡属性的修改调整情况,例如,可以将原场景物体的遮挡属性由被遮挡体调整为遮挡体,或者由遮挡体调整为被遮挡体等等,如此,可以实现上述完成自动配置的场景物体的遮挡属性根据用户需要选择性地手动调整,提高了配置的灵活性和准确性。
进一步地,请参阅图4,本发明较佳实施例还提供一种遮挡属性配置装置200,所述装置可包括:
遍历模块210,用于遍历当前游戏场景中的场景物体。
判断模块220,用于针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中。
计算模块230,用于在判断结果为是时,计算所述场景物体的最小包围球半径。
配置模块240,用于将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置。其中,所述第一预设阈值小于所述第二预设阈值。
作为一种实施方式,所述配置模块240,还用于当所述最小包围球半径不大于所述第一预设阈值时,将所述场景物体的遮挡属性配置为被遮挡体,或者当所述最小包围球半径不小于所述第二预设阈值时,将所述场景物体的遮挡属性配置为遮挡体,或者当所述最小包围球半径大于所述第一预设阈值,且小于所述第二预设阈值时,将所述场景物体的遮挡属性同时配置为被遮挡体和遮挡体。
可以理解的是,本实施例中的各功能模块的具体操作方法可参照上述方法实施例中相应步骤的详细描述,在此不再重复赘述。
进一步地,请参阅图5,为本发明实施较佳实施例提供的电子设备100的一种结构示意框图。如图5所示,电子设备100可以由总线110作一般性的总线体系结构来实现。根据电子设备100的具体应用和整体设计约束条件,总线110可以包括任意数量的互连总线和桥接。总线110将各种电路连接在一起,这些电路包括处理器120、存储介质130和总线接口140。可选地,电子设备100可以使用总线接口140将网络适配器150等经由总线110连接。网络适配器150可用于实现电子设备100中物理层的信号处理功能,并通过天线实现射频信号的发送和接收。用户接口160可以连接外部设备,例如:键盘、显示器、鼠标或者操纵杆等。总线110还可以连接各种其它电路,如定时源、外围设备、电压调节器或者功率管理电路等,这些电路是本领域所熟知的,因此不再详述。
可以替换的,电子设备100也可配置成通用处理系统,例如通称为芯片,该通用处理系统包括:提供处理功能的一个或多个微处理器,以及提供存储介质130的至少一部分的外部存储器,所有这些都通过外部总线体系结构与其它支持电路连接在一起。
可替换的,电子设备100可以使用下述来实现:具有处理器120、总线接口140、用户接口160的ASIC(专用集成电路);以及集成在单个芯片中的存储介质130的至少一部分,或者,电子设备100可以使用下述来实现:一个或多个FPGA(现场可编程门阵列)、PLD(可编程逻辑器件)、控制器、状态机、门逻辑、分立硬件部件、任何其它适合的电路、或者能够执行本发明通篇所描述的各种功能的电路的任意组合。
其中,处理器120负责管理总线110和一般处理(包括执行存储在存储介质130上的软件)。处理器120可以使用一个或多个通用处理器和/或专用处理器来实现。处理器120的例子包括微处理器、微控制器、DSP处理器和能够执行软件的其它电路。应当将软件广义地解释为表示指令、数据或其任意组合,而不论是将其称作为软件、固件、中间件、微代码、硬件描述语言还是其它。
在图5中存储介质130被示为与处理器120分离,然而,本领域技术人员很容易明白,存储介质130或其任意部分可位于电子设备100之外。举例来说,存储介质130可以包括传输线、用数据调制的载波波形、和/或与无线节点分离开的计算机制品,这些介质均可以由处理器120通过总线接口140来访问。可替换地,存储介质130或其任意部分可以集成到处理器120中,例如,可以是高速缓存和/或通用寄存器。
所述处理器120可执行上述实施例,具体地,所述存储介质130中可以存储有所述遮挡属性配置装置200,所述处理器120可以用于执行所述遮挡属性配置装置200。
综上所述,本发明实施例提供一种遮挡属性配置方法、装置及可读存储介质,通过遍历当前游戏场景中的场景物体,针对每一个场景物体,判断所述场景物体是否位于遮挡剔除区域中,并在判断结果为是时,计算所述场景物体的最小包围球半径,同事将所述最小包围球半径分别与第一预设阈值和第二预设阈值进行比较,并根据比较结果对所述场景物体的遮挡属性进行配置。由此,能够自动完成场景物体的遮挡属性的配置,无需人工手动配置场景物体的遮挡属性,节省人力,同时避免由于遍历不全导致的漏掉一些物体没有配置遮挡属性的情况。
在本发明所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等
需要说明的是,在本文中,术语"包括"、"包含"或者其任何其它变体意在涵盖非排它性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其它的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。