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游戏中常用的性能优化手段,其核心思想在于:检测特定物体是否被场景的其他部分所遮挡,如果是,则不需要渲染该物体。然而,使用射线检测判断模型遮挡关系计算量过大, ...
【技术保护点】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。