游戏场景的遮挡剔除方法、装置、处理器及终端制造方法及图纸

技术编号:18400391 阅读:28 留言:0更新日期:2018-07-08 20:15
本发明专利技术公开了一种游戏场景的遮挡剔除方法、装置、处理器及终端。该方法包括:根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;将每个遮挡剔除区域的PVS进行序列化输出。本发明专利技术解决了相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。

Occlusion elimination method, device, processor and terminal for game scene

The invention discloses a occlusion eliminating method, device, processor and terminal for game scenes. The method includes: dividing the game scene into multiple unit spaces according to the initial input information and searching one or more reachable regions in each unit space, in which the initial input information includes the raw material information used for visibility baking and the parameter information based on the execution of the baking behavior based on the number of raw materials; One or more occlusion culling regions are obtained within each reachable area; multiple sampling points are generated in each occlusion culling area for visibility detection, and PVS is obtained; the PVS of each occlusion culling area is serialized. The invention solves the technical problems that the occlusion culling scheme provided by the related technology needs manual intervention, high operation complexity and easy to cause waste of manpower and baking time.

【技术实现步骤摘要】
游戏场景的遮挡剔除方法、装置、处理器及终端
本专利技术涉及计算机图形学领域,具体而言,涉及一种游戏场景的遮挡剔除方法、装置、处理器及终端。
技术介绍
遮挡剔除通常是指当一个物体被其他物体遮挡而不在摄像机的可视范围内时,无需对被遮挡物体进行渲染。遮挡剔除在三维(3D)图形计算中并非自动进行。由于在绝大多数情况下距离摄像机(camera)最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体(其被称为重复渲染“overdraw”)。遮挡剔除不同于视锥体剔除。视锥体剔除只是不渲染摄像机视角范围外的物体而对于被其他物体遮挡但依然在视角范围内的物体,则不会被剔除。遮挡剔除的运行将通过在场景中使用一个虚拟的摄像机来创建一个物体潜在可视性状态(set)的层级。这些数据可以实时让每个摄像机来区分物体是否可见,并且只有可见的物体才会被渲染,由此降低绘制调用(drawcalls)的数量并增加游戏的运行效率。遮挡剔除的数据由单元格(cells)组成,每个单元格是在整个场景的包围体积的一部分,单元格来自一个二叉树(binarytree)。遮挡剔除使用两棵树,其中一个提供给静态物体,而另一个提供给移动物体。静态物体映射到一个定义静态可视物体的索引列表(精确剔除后的静态物体)。单元格的集合和可视信息能够确定哪些单元格是可见的,被认为是潜在可视集合(PotentiallyVisibleSet,简称为PVS)。遮挡剔除是3D游戏中常用的性能优化手段,其核心思想在于:检测特定物体是否被场景的其他部分所遮挡,如果是,则不需要渲染该物体。然而,使用射线检测判断模型遮挡关系计算量过大,导致该方法难以用于实时渲染中。为了解决上述问题,可以将场景划分成更小的区域,离线计算每个区域可能会看见的物体。在游戏实时渲染过程中,可以通过加载和查询当前所在区域的PVS数据,即可剔除掉那些被遮挡的物体。离线计算PVS的过程被称为遮挡剔除烘焙。在遮挡剔除烘焙过程中最为重要的一个环节便是将场景预先划分成若干区域,用以计算PVS。如果区域划分过粗,则每一块区域能够剔除的物体很少,其效果会大打折扣。如果区域划分过细,则烘焙时间和生成的数据体积都会大大增加。为此,如何能够合理地划分遮挡剔除区域成为亟待解决的技术难题。目前,业界通常使用的遮挡剔除方案在划分遮挡剔除区域时采用如下解决方案:首先,需要人工标定一块区域,该区域通常是一个坐标轴对齐的包围盒(AxisAlignedBoundingBox,简称为AABB);其次,在人工标定的AABB内部均匀地划分出更多小的AABB,每个小的AABB即为一个遮挡剔除区域,在烘焙后将产生一个PVS;然后,如果相邻多个区域的PVS数据相近,则合并这些相邻区域,以降低最终生成文件的大小。然后,现有技术存在如下缺陷:首先,遮挡剔除的大致烘焙区域需要人工标定,其目的在于:剔除掉一些玩家控制的游戏角色不可达的空间,而仅在玩家控制的游戏角色可达的区域生成PVS,以降低最终PVS生成文件的大小。然而,当游戏场景过大时,人工标定区域将涉及到巨大的工作量。而且每当场景修改时,这些区域还需要重新标定,由此会耗费巨大人力、物理和财力。其次,为了便于后续进一步分割,标定的区域通常采用带方向的包围盒(OrientedBoudingBox,简称为OBB)。当地形起伏较大时,会有相当一部分的区域落在玩家控制的游戏角色不可达的地方。这部分的区域依旧需要参与烘焙并生成PVS,不但浪费烘焙时间,而且还浪费生成文件大小。然后,遮挡剔除区域的划分是均匀的。通常为了确保烘焙的精度,避免出现错误的剔除结果,会将区域划分得更加细致。然而,在场景的许多区域,烘焙的精度并不需要如此细致。因此,均匀划分区域的方法无法区别对待这些精度要求不同的区域。虽然在烘焙结束后,可以将PVS相近的区域合并以减少文件大小,但烘焙时间依然已经被浪费掉。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术至少部分实施例提供了一种游戏场景的遮挡剔除方法、装置、处理器及终端,以至少解决相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。根据本专利技术其中一实施例,提供了一种游戏场景的遮挡剔除方法,包括:根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;将每个遮挡剔除区域的PVS进行序列化输出。可选地,根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域包括:以海平面为基准建立三维直角坐标系,其中,XOZ平面为海平面或者与海平面相互平行的平面,从海平面指向天空的方向为Y轴的正方向;将XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;将多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。可选地,根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域包括:计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;获取射线与任一模型发生碰撞的碰撞点所在表面的法线方向;根据预设实心模型集合与预设空心模型集合确定任一模型归属的模型类型;采用次数、法线方向以及模型类型从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。可选地,在每个可达区域内获取一个或多个遮挡剔除区域包括:在当前可达区域内生成至少一个遮挡剔除区域,其中,至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;获取与当前可达区域相邻的多个可达区域;在根据多个可达区域的最低点的高度确定最低点位于至少一个遮挡剔除区域中的其中一遮挡剔除区域中且最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据多个可达区域的最低点的高度确定最低点位于最顶层遮挡剔除区域上方的情况下,从最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。可选地,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS包括:在每个遮挡剔除区域内生成多个采样点;控制多个采样点中的每个采样点均匀地向四周发射多条射线;当多条射线的每条射线与游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;汇集多个采样点的可见模型,得到PVS。可选地,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS之后,还包括:对相邻遮挡剔除本文档来自技高网
...

【技术保护点】
1.一种游戏场景的遮挡剔除方法,其特征在于,包括:根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,所述初始输入信息包括:用于可见性烘焙的原材料信息以及基于所述原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到潜在可视集合PVS;将每个遮挡剔除区域的PVS进行序列化输出。

【技术特征摘要】
1.一种游戏场景的遮挡剔除方法,其特征在于,包括:根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,所述初始输入信息包括:用于可见性烘焙的原材料信息以及基于所述原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到潜在可视集合PVS;将每个遮挡剔除区域的PVS进行序列化输出。2.根据权利要求1所述的方法,其特征在于,根据所述初始输入信息将所述游戏场景划分为所述多个单位空间,并分别在每个单位空间内查找一个或多个可达区域包括:以海平面为基准建立三维直角坐标系,其中,XOZ平面为所述海平面或者与所述海平面相互平行的平面,从所述海平面指向天空的方向为Y轴的正方向;将所述XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与所述游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,所述多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;将所述多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;根据预设实心模型集合与预设空心模型集合从所述中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。3.根据权利要求2所述的方法,其特征在于,根据所述预设实心模型集合与所述预设空心模型集合从所述中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域包括:计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;获取所述射线与所述任一模型发生碰撞的碰撞点所在表面的法线方向;根据所述预设实心模型集合与所述预设空心模型集合确定所述任一模型归属的模型类型;采用所述次数、所述法线方向以及所述模型类型从所述中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。4.根据权利要求1所述的方法,其特征在于,在每个可达区域内获取一个或多个遮挡剔除区域包括:在当前可达区域内生成至少一个遮挡剔除区域,其中,所述至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,所述至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;获取与所述当前可达区域相邻的多个可达区域;在根据所述多个可达区域的最低点的高度确定所述最低点位于所述至少一个遮挡剔除区域中的其中一遮挡剔除区域中且所述最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将所述确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据所述多个可达区域的最低点的高度确定所述最低点位于最顶层遮挡剔除区域上方的情况下,从所述最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过所述最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。5.根据权利要求1所述的方法,其特征在于,在每个遮挡剔除区域内生成所述多个采样点进行可见性检测,得到所述PVS包括:在每个遮挡剔除区域内生成所述多个采样点;控制所述多个采样点中的每个采样点均匀地向四周发射多条射线;当所述多条射线的每条射线与所述游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;汇集所述多个采样点的可见模型,得到所述PVS。6.根据权利要求5所述的方法,其特征在于,在每个遮挡剔除区域内生成所述多个采样点进行可见性检测,得到所述PVS之后,还包括:对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。7.一种游戏场景的遮挡剔除装置,其特征在于,包括:处理模块,用于根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,所述初始输入信息包括:用于可见性烘焙的原材料信息以及基于所述原材料数据执行烘焙行为的参数信息;获取模...

【专利技术属性】
技术研发人员:屠文翔
申请(专利权)人:网易杭州网络有限公司
类型:发明
国别省市:浙江,33

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

1