CN108257103A - 游戏场景的遮挡剔除方法、装置、处理器及终端 - Google Patents
游戏场景的遮挡剔除方法、装置、处理器及终端 Download PDFInfo
- Publication number
- CN108257103A CN108257103A CN201810071579.9A CN201810071579A CN108257103A CN 108257103 A CN108257103 A CN 108257103A CN 201810071579 A CN201810071579 A CN 201810071579A CN 108257103 A CN108257103 A CN 108257103A
- Authority
- CN
- China
- Prior art keywords
- region
- occlusion culling
- point
- scene
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000001514 detection method Methods 0.000 claims abstract description 27
- 239000002994 raw material Substances 0.000 claims abstract description 18
- 239000007787 solid Substances 0.000 claims description 46
- 238000005070 sampling Methods 0.000 claims description 43
- 238000003860 storage Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 230000006399 behavior Effects 0.000 claims description 10
- 230000000007 visual effect Effects 0.000 claims description 7
- 230000000903 blocking effect Effects 0.000 claims description 6
- 230000005484 gravity Effects 0.000 claims description 6
- 235000013399 edible fruits Nutrition 0.000 claims description 4
- 238000012216 screening Methods 0.000 claims description 3
- 239000000463 material Substances 0.000 claims description 2
- 239000002699 waste material Substances 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000008569 process Effects 0.000 description 15
- 238000012360 testing method Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000009877 rendering Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000000149 penetrating effect Effects 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 239000011435 rock Substances 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 206010003830 Automatism Diseases 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000004575 stone Substances 0.000 description 1
- 238000009333 weeding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/005—General purpose rendering architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/10—Geometric effects
- G06T15/20—Perspective computation
- G06T15/205—Image-based rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Computing Systems (AREA)
- Geometry (AREA)
- Image Generation (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明公开了一种游戏场景的遮挡剔除方法、装置、处理器及终端。该方法包括:根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;将每个遮挡剔除区域的PVS进行序列化输出。本发明解决了相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。
Description
技术领域
本发明涉及计算机图形学领域,具体而言,涉及一种游戏场景的遮挡剔除方法、装置、处理器及终端。
背景技术
遮挡剔除通常是指当一个物体被其他物体遮挡而不在摄像机的可视范围内时,无需对被遮挡物体进行渲染。遮挡剔除在三维(3D)图形计算中并非自动进行。由于在绝大多数情况下距离摄像机(camera)最远的物体首先被渲染,靠近摄像机的物体后渲染并覆盖先前渲染的物体(其被称为重复渲染“overdraw”)。遮挡剔除不同于视锥体剔除。视锥体剔除只是不渲染摄像机视角范围外的物体而对于被其他物体遮挡但依然在视角范围内的物体,则不会被剔除。
遮挡剔除的运行将通过在场景中使用一个虚拟的摄像机来创建一个物体潜在可视性状态(set)的层级。这些数据可以实时让每个摄像机来区分物体是否可见,并且只有可见的物体才会被渲染,由此降低绘制调用(draw calls)的数量并增加游戏的运行效率。
遮挡剔除的数据由单元格(cells)组成,每个单元格是在整个场景的包围体积的一部分,单元格来自一个二叉树(binary tree)。遮挡剔除使用两棵树,其中一个提供给静态物体,而另一个提供给移动物体。静态物体映射到一个定义静态可视物体的索引列表(精确剔除后的静态物体)。单元格的集合和可视信息能够确定哪些单元格是可见的,被认为是潜在可视集合(Potentially Visible Set,简称为PVS)。
遮挡剔除是3D游戏中常用的性能优化手段,其核心思想在于:检测特定物体是否被场景的其他部分所遮挡,如果是,则不需要渲染该物体。然而,使用射线检测判断模型遮挡关系计算量过大,导致该方法难以用于实时渲染中。为了解决上述问题,可以将场景划分成更小的区域,离线计算每个区域可能会看见的物体。在游戏实时渲染过程中,可以通过加载和查询当前所在区域的PVS数据,即可剔除掉那些被遮挡的物体。离线计算PVS的过程被称为遮挡剔除烘焙。
在遮挡剔除烘焙过程中最为重要的一个环节便是将场景预先划分成若干区域,用以计算PVS。如果区域划分过粗,则每一块区域能够剔除的物体很少,其效果会大打折扣。如果区域划分过细,则烘焙时间和生成的数据体积都会大大增加。为此,如何能够合理地划分遮挡剔除区域成为亟待解决的技术难题。
目前,业界通常使用的遮挡剔除方案在划分遮挡剔除区域时采用如下解决方案:
首先,需要人工标定一块区域,该区域通常是一个坐标轴对齐的包围盒(AxisAligned Bounding Box,简称为AABB);
其次,在人工标定的AABB内部均匀地划分出更多小的AABB,每个小的AABB即为一个遮挡剔除区域,在烘焙后将产生一个PVS;
然后,如果相邻多个区域的PVS数据相近,则合并这些相邻区域,以降低最终生成文件的大小。
然后,现有技术存在如下缺陷:
首先,遮挡剔除的大致烘焙区域需要人工标定,其目的在于:剔除掉一些玩家控制的游戏角色不可达的空间,而仅在玩家控制的游戏角色可达的区域生成PVS,以降低最终PVS生成文件的大小。然而,当游戏场景过大时,人工标定区域将涉及到巨大的工作量。而且每当场景修改时,这些区域还需要重新标定,由此会耗费巨大人力、物理和财力。
其次,为了便于后续进一步分割,标定的区域通常采用带方向的包围盒(OrientedBouding Box,简称为OBB)。当地形起伏较大时,会有相当一部分的区域落在玩家控制的游戏角色不可达的地方。这部分的区域依旧需要参与烘焙并生成PVS,不但浪费烘焙时间,而且还浪费生成文件大小。
然后,遮挡剔除区域的划分是均匀的。通常为了确保烘焙的精度,避免出现错误的剔除结果,会将区域划分得更加细致。然而,在场景的许多区域,烘焙的精度并不需要如此细致。因此,均匀划分区域的方法无法区别对待这些精度要求不同的区域。虽然在烘焙结束后,可以将PVS相近的区域合并以减少文件大小,但烘焙时间依然已经被浪费掉。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明至少部分实施例提供了一种游戏场景的遮挡剔除方法、装置、处理器及终端,以至少解决相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。
根据本发明其中一实施例,提供了一种游戏场景的遮挡剔除方法,包括:
根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;在每个可达区域内获取一个或多个遮挡剔除区域;在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;将每个遮挡剔除区域的PVS进行序列化输出。
可选地,根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域包括:以海平面为基准建立三维直角坐标系,其中,XOZ平面为海平面或者与海平面相互平行的平面,从海平面指向天空的方向为Y轴的正方向;将XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;将多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
可选地,根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域包括:计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;获取射线与任一模型发生碰撞的碰撞点所在表面的法线方向;根据预设实心模型集合与预设空心模型集合确定任一模型归属的模型类型;采用次数、法线方向以及模型类型从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
可选地,在每个可达区域内获取一个或多个遮挡剔除区域包括:在当前可达区域内生成至少一个遮挡剔除区域,其中,至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;获取与当前可达区域相邻的多个可达区域;在根据多个可达区域的最低点的高度确定最低点位于至少一个遮挡剔除区域中的其中一遮挡剔除区域中且最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据多个可达区域的最低点的高度确定最低点位于最顶层遮挡剔除区域上方的情况下,从最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
可选地,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS包括:在每个遮挡剔除区域内生成多个采样点;控制多个采样点中的每个采样点均匀地向四周发射多条射线;当多条射线的每条射线与游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;汇集多个采样点的可见模型,得到PVS。
可选地,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS之后,还包括:对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
根据本发明其中一实施例,还提供了一种游戏场景的遮挡剔除装置,包括:
处理模块,用于根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;获取模块,用于在每个可达区域内获取一个或多个遮挡剔除区域;检测模块,用于在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;输出模块,用于将每个遮挡剔除区域的PVS进行序列化输出。
可选地,处理模块包括:建立单元,用于以海平面为基准建立三维直角坐标系,其中,XOZ平面为海平面或者与海平面相互平行的平面,从海平面指向天空的方向为Y轴的正方向;划分单元,用于将XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;过滤单元,用于将多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;第一获取单元,用于根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
可选地,获取单元包括:计算子单元,用于计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;第一获取子单元,用于获取射线与任一模型发生碰撞的碰撞点所在表面的法线方向;确定子单元,用于根据预设实心模型集合与预设空心模型集合确定任一模型归属的模型类型;第二获取子单元,用于采用次数、法线方向以及模型类型从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
可选地,获取模块包括:生成单元,用于在当前可达区域内生成至少一个遮挡剔除区域,其中,至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;第二获取单元,用于获取与当前可达区域相邻的多个可达区域;处理单元,用于在根据多个可达区域的最低点的高度确定最低点位于至少一个遮挡剔除区域中的其中一遮挡剔除区域中且最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据多个可达区域的最低点的高度确定最低点位于最顶层遮挡剔除区域上方的情况下,从最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
可选地,检测模块包括:生成单元,用于在每个遮挡剔除区域内生成多个采样点;控制单元,用于控制多个采样点中的每个采样点均匀地向四周发射多条射线;确定单元,用于当多条射线的每条射线与游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;汇集单元,用于汇集多个采样点的可见模型,得到PVS。
可选地,上述装置还包括:合并模块,用于对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述游戏场景的遮挡剔除方法。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述游戏场景的遮挡剔除方法。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述游戏场景的遮挡剔除方法。
在本发明至少部分实施例中,采用根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,该初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息的方式,通过在每个可达区域内获取一个或多个遮挡剔除区域,以便在每个遮挡剔除区域内生成多个采样点进行可见性检测以得到PVS,以及将每个遮挡剔除区域的PVS进行序列化输出,达到了通过对游戏场景进行划分实现自适应地遮挡剔除烘焙的目的,从而一方面无需人工标定场景中的可达区域,而是自动寻找可达区域,由此极大地降低人工标定的工作量,另一方面摒弃了将一大块遮挡剔除区域归属于一个AABB或OBB的方式,而是自动划分出若干大小不一的AABB作为遮挡剔除区域,以此减少烘焙时间和文件大小,进而解决了相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明其中一实施例的游戏场景的遮挡剔除方法的流程图;
图2是根据本发明其中一优选实施例的可达区域生成过程的流程图;
图3是根据本发明其中一优选实施例的遮挡剔除区域生成过程的流程图;
图4是根据本发明其中一实施例的游戏场景的遮挡剔除装置的结构框图;
图5是根据本发明其中一优选实施例的游戏场景的遮挡剔除装置的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明其中一实施例,提供了一种游戏场景的遮挡剔除方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明其中一实施例的游戏场景的遮挡剔除方法的流程图,如图1所示,该方法包括如下步骤:
步骤S12,根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;
步骤S14,在每个可达区域内获取一个或多个遮挡剔除区域;
步骤S16,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;
步骤S18,将每个遮挡剔除区域的PVS进行序列化输出。
通过上述步骤,可以采用根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,该初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息的方式,通过在每个可达区域内获取一个或多个遮挡剔除区域,以便在每个遮挡剔除区域内生成多个采样点进行可见性检测以得到PVS,以及将每个遮挡剔除区域的PVS进行序列化输出,达到了通过对游戏场景进行划分实现自适应地遮挡剔除烘焙的目的,从而一方面无需人工标定场景中的可达区域,而是自动寻找可达区域,由此极大地降低人工标定的工作量,另一方面摒弃了将一大块遮挡剔除区域归属于一个AABB或OBB的方式,而是自动划分出若干大小不一的AABB作为遮挡剔除区域,以此减少烘焙时间和文件大小,进而解决了相关技术中所提供的遮挡剔除方案需要人工干预,操作复杂度较高、易造成人力、烘焙时间浪费的技术问题。
上述可达区域代表玩家控制的游戏角色在物理上可以到达的空间。可达区域通常位于地表以上,但亦有可能位于地下的洞穴或建筑群中。可达区域具有最小尺寸,至少能容纳一个玩家控制的游戏角色在内部站立。可达区域应该是与外界连通的,玩家控制的游戏角色可以通过门、走廊或传送等方式进入。对于绝大多数非飞行模拟类游戏来说,可达区域区域应该是紧贴地表的,在天空中划分可达区域并没有实际意义。遮挡剔除区域是遮挡剔除系统生效的区域。如果玩家控制的游戏角色在遮挡剔除区域之外,则整个遮挡剔除系统是不会工作的。仅当玩家控制的游戏角色摄像机位于遮挡剔除区域内时,场景才可被遮挡剔除。每个遮挡剔除区域包含一个PVS,用于查询当前区域可见的物体。遮挡剔除区域由可达区域生成,但与可达区域不是一一对应的关系。一些较大的可达区域内部会视情况生成多个遮挡剔除区域。在第三人称的游戏中,某些区域玩家控制的游戏角色不可达,但是摄像机可达,因此需要为这些非可达区域也生成遮挡剔除区域。
上述初始输入信息可以包括以下组成部分:
1)用于可见性烘焙的原材料信息。例如:
(1)原始场景信息。
(2)遮挡体模型数据,是指遮挡体的原始模型网格数据及其在场景中的位置、旋转和缩放信息。这些数据用来确定场景中的遮挡关系。
(3)被遮挡体信息,是指被检测的模型的信息,其可以包括:被遮挡体在场景中的位置、旋转和缩放以及被遮挡体本身的包围盒大小。
2)基于原材料数据执行烘焙行为的参数信息,用来配置烘焙器的行为。例如:
(1)玩家控制的游戏角色高度(player_height),该参数用来帮助烘焙器过滤不可达的区域。烘焙器会使用这个参数来判断可达区域,以及确定采样点的分布。在通常情况下,考虑到玩家控制的游戏角色能够进行跳跃,因此,该参数需要设置得比玩家控制的游戏角色的真实高度还要更高一点。例如,某一游戏中的玩家控制的游戏角色实际高度为20,而该值的设置高度为32。
(2)烘焙精度,该参数用来控制采样点的生成数量以及最终生成文件的大小。如果dimension为16,则每个地块的可见性数据会被划分为16*16个格子。该参数取值越大,遮挡剔除的精度越高,但随之生成的文件也会变大。
(3)最远可视距离,该参数用来减少烘焙物体数量。对于每个采样点,如果某个模型的位置超出可视距离,则不参与可见性检测。该值设置过小易导致物体被不正确地剔除,该值设置过高会导致生成数据不必要地增大,同时大大地增加烘焙时间。在通常情况下,将该值设置为与摄像机远平面相同的数值即可。
(4)实心模型列表和空心模型列表,用于辅助过滤不可达区域。
实心模型内部一定不会生成采样点。通常将一些玩家控制的游戏角色无法进入的封闭空间、大型石头、墙壁等定义为实心模型,由此可以减少大量的采样点,从而达到缩短烘焙时间,降低vis文件大小的效果。地表模型以下不会生成采样点。该列表的功能与实心模型类似。空心模型内部一定会生成采样点。当某些室内空间(例如:山洞、地下建筑群)位于实心模型或地表模型之下时,如果不定义成空心模型,是不会生成采样点的,因此会导致遮挡剔除错误。通过将模型加入空心模型列表,可强制其内部生成采样点。
在采用上述初始输入信息执行遮挡剔除过程中,使用输入参数(例如:玩家控制的游戏角色高度)以及输入数据(例如:原始场景信息)获取整个场景中的可达区域。其次,使用可达区域数据作为输入,生成出整个场景的遮挡剔除区域。再次,在每个遮挡剔除区域中生成若干采样点,以便进行后续的可见性检测。然后,使用已经生成的采样点作为输入,在每个采样点的位置向四周发射大量的射线进行可见性检测,每条射线碰撞到的首个模型即为该采样点位置可见的模型。再然后,将每个遮挡剔除区域中多个采样点的可见性检测结果相结合便能够得到当前遮挡剔除区域的PVS。最后,将各个遮挡剔除区域的PVS序列化成文件。
可选地,在步骤S12中,根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域可以包括以下执行步骤:
步骤S121,以海平面为基准建立三维直角坐标系,其中,XOZ平面为海平面或者与海平面相互平行的平面,从海平面指向天空的方向为Y轴的正方向;
步骤S122,将XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;
步骤S123,将多层结构的最底层以及层高低于预设阈值(例如:玩家控制的游戏角色高度)的部分层空间滤除,得到中间过滤结果;
步骤S124,根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
在非飞行模拟类游戏中,世界具有一个方向朝下的重力,玩家控制的游戏角色大部分时间行走于地面上,只有在跳跃或滑翔的时候才会短暂地离开地表。因此,可达区域的生成应该与地表贴服。在优选实施中,规定向上的方向为Y轴,海平面为X-Z平面。海平面是游戏场景中的某一预设参考平面,代表游戏场景中的水平方向。
首先,将游戏场景沿X-Z平面均匀划分成正方形的格子,每个格子成为一个矩形遮挡剔除区域(Tile)。在每个Tile的中心点发射一条自上而下的垂直射线。该射线长度为无限长,每条射线均会与场景发生n次碰撞。对于场景中每个(x,z)坐标位置,在Y轴方向上会被划分成几个空间。例如,如果该位置为一片平地,则空间被地表划分为上、下两个空间,其分别为地上和地下。再例如,如果该位置为一栋楼房,则需要查找到每一层楼所处的空间。根据碰撞点的Y轴坐标,可将Tile在Y轴方向上划分为n+1层。即,发生一次碰撞便可将空间按照碰撞点的Y轴坐标划分成上、下两层。如果发生n次碰撞,则会将Tile在Y轴方向上划分为n+1层。
对于每一层而言,上下两个碰撞点的间隔即为该层的高度。对于最上层而言,其高度可以认为是无限高。对于最底层而言,其已经位于地表以下,因此总是不可达的,故而可以直接将最底层过滤掉。
随后,还可以根据玩家控制的游戏角色高度过滤掉那些过“矮”的层,例如:狭窄的缝隙。如果某层的高度比玩家控制的游戏角色高度要小,则认为玩家控制的游戏角色无法进入这些狭窄的区域,从而将这些层过滤掉。
最后,再使用实心模型列表和空心模型列表,进一步地过滤掉不可达区域。
可选地,步骤S124,根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域可以包括以下执行步骤:
步骤S1241,计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;
步骤S1242,获取射线与任一模型发生碰撞的碰撞点所在表面的法线方向;
步骤S1243,根据预设实心模型集合与预设空心模型集合确定任一模型归属的模型类型;
步骤S1244,采用次数、法线方向以及模型类型从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
在可达区域的生成过程中,烘焙器首先根据输入参数将每个地块划分成n*n的格子,并在每个格子中自上而下地进行一连串地射线检测,以此来确定地表高度。
对于只有一层地表的情况,生成的可达区域也只有一层。当特定区域存在建筑物时,空间在垂直上被划分为多层,生成的可达区域也是多层的。例如:假设游戏场景中有大桥存在,则可达空间会被大桥分割为上、下两层。
在寻找可达中间层时,烘焙器会使用player_height过滤掉大部分高度过低,不可进入的区域。然而,当场景较为复杂时,这样的自动化手段是远远不够的。例如:假设场景内有一个三层楼房建筑,该建筑虽然较高但只有第一层是允许玩家控制的游戏角色进入的,然而烘焙器无法获知哪些区域是允许玩家控制的游戏角色进入的,故而为每一层都生成了可达区域。为了避免浪费烘焙时间,同时也为了缩小最终生成vis文件的大小,此时需要更加精确地剔除掉那些玩家控制的游戏角色不可达的区域。该建筑由一个外墙模型和一个室内模型组成。为此,可以将外墙模型标记为实心模型,以及将室内模型标记为空心模型。烘焙器通过使用这些额外的信息,最终精确地过滤掉玩家控制的游戏角色不可达的区域。
可达区域的生成依赖于玩家控制的游戏角色高度。烘焙器只会在这种地方生成可见集。当场景拥有非常复杂的建筑群、山洞、室内与室外结构时,这种技术可以显著地降低烘焙时间和vis文件大小。
实心模型列表和空心模型列表需要在制作模型时通过人工方式加以标记。如果一个模型的内部是玩家控制的游戏角色不可达的(例如:岩石、密封的箱子、不可进入的建筑等),则该模型可被认为是实心模型。如果一个模型的内部是可达的(例如:房间、山洞等),则该模型可被认为是空心模型。由于目前市面上的3D渲染引擎均会开启背面剔除功能,因此美术设计人员在制作场景模型时,会让模型三角面的法线方向朝向玩家控制的游戏角色可达的那一面。当垂直射线与场景发生碰撞时,可以通过判断碰撞点所在面的法线方向、所属模型,以及计算射线与同一模型的穿入、穿出次数,从而精确地知道当前是处于某个模型的里面还是外面。实心模型的法线朝向是由模型边缘指向模型外部,而空心模型的法线朝向则是由模型边缘指向模型中心。因此,通过计算射线穿入、穿出模型表面的次数,再辅以表面法线的方向,便可以精确地获知何处是模型的“里面”,何处是模型的“外面”。对于实心模型而言,其内部不应该生成可达区域。而对于空心模型而言,其内部应该生成可达区域。通过将实心模型和空心模型嵌套在一起,烘焙器便能够确定真正的可达区域。通过上述信息可以过滤掉那些不可达的层。地形可以看作是一个特殊的实心模型。在通常情况下,地形只有一层三角面,垂直射线只会与地形发生一次碰撞(穿入)。因此,除非有空心模型存在,地表以下的区域都是不可达区域。
相比于直接标记可达区域,标记实心模型和空心模型的工作量几乎可以忽略不计,其原因主要包括:实心模型和空心模型仅与模型有关,与同一种模型在场景中摆放的位置无关。在通常情况下,只需要在模型制作完成后标记一次,未来不再需要更改。而与实心模型和空心模型只需要标记“是”或“否”不同,手工标记可达区域还需要考虑所在位置与大小。而且当场景发生变动时,需要人工重新调整可达区域的范围。
另外,还可以通过文件名和文件路径的方式,批量地将模型标记为实心模型或空心模型。例如,可以将所有文件名中带有“岩石(rock)”字样的模型标记为实心模型,以进一步减少人工标记的工作量。
这时,场景中的可达区域均已生成完毕。这些可达区域在X-Z平面上是均匀分布的,但是在每一个Tile中,可能会在Y轴方向上存在1层或多层可达区域,且每一层可达区域在Y轴方向上是非均匀分布的。
图2是根据本发明其中一优选实施例的可达区域生成过程的流程图,如图2所示,该流程可以包括以下处理步骤:
步骤S201:根据用户输入参数将场景沿X-Z平面划分成大小均等的方格,每个格子称为一个Tile。
步骤S202:在每个Tile的中心点由上到下引出一条无限长的垂直射线。
步骤S203:每当检测到一个碰撞点,则需要判断当前碰撞点与上一碰撞点的高度差是否小于玩家控制的游戏角色高度。如果是,则继续执行步骤S204;如果否,则继续执行步骤S205。
步骤S204:忽略该碰撞点。
步骤S205:判断当前碰撞点是否位于一个空心模型内部。如果是,则继续执行步骤S206;如果否,则继续执行步骤S207。
步骤S206:记录该碰撞点。
步骤S207:判断当前碰撞点是否位于一个实心模型内部。如果是,则继续执行步骤S208;如果否,则继续执行步骤S209。
步骤S208:忽略该碰撞点。
步骤S209:记录该碰撞点。在默认情况下,场景中的模型没有进行过人工标注,因此,既不是实心模型,也不是空心模型,只要存在碰撞点且当前碰撞点与上一碰撞点的高度差是否小于玩家控制的游戏角色高度,则会记录该碰撞点。
步骤S210:检查当前碰撞点所在模型以及所属面的法线方向。即判断碰撞模型是否为空心模型;如果是,则继续执行步骤S211;如果否,则继续执行步骤S218。
步骤S211:判断当前是否已经位于该空心模型内部;如果是,则继续执行步骤S212;如果否,则继续执行步骤S215。
步骤S212:判断当前面法线方向是否朝上(即,从地表指向空中,即Y轴的正方向);如果是,则继续执行步骤S213;如果否,则继续执行步骤S214。
步骤S213:确定射线即将穿出该空心模型,并确定当前不再位于该空心模型内部。
步骤S214:确定当前仍然位于该空心模型内部。
步骤S215:判断当前面法线方向是否朝下。如果是,则继续执行步骤S216;如果否,则继续执行步骤S217。
步骤S216:确定射线即将穿入该空心模型,并认为当前位于该空心模型内部。
步骤S217:确定当前依旧位于该空心模型外部。
步骤S218:判断碰撞模型是否为实心模型;如果是,则继续执行步骤S219。
步骤S219:判断当前是否已位于该实心模型内部;如果是,则继续执行步骤S220;如果否,则继续执行步骤S223。
步骤S220:判断当前面法线方向是否朝下;如果是,则继续执行步骤S221;如果否,则继续执行步骤S222。
步骤S221:确定射线即将穿出该实心模型,并认为当前不再位于该实心模型内部。
步骤S222:确定当前依旧位于该实心模型内部。
步骤S223:判断当前面法线方向是否朝上;如果是,则继续执行步骤S224;如果否,则继续执行步骤S225。
步骤S224:确定射线即将穿入该实心模型,并确定当前位于该实心模型内部。
步骤S225:确定当前依旧位于该实心模型外部。
步骤S226:若当前位于任何一个空心模型内部,则确定当前位于空心模型内部。否则,若当前位于任何一个实心模型内部,则确定当前位于实心模型内部。否则,确定当前即不位于实心模型内部,也不位于空心模型内部。
步骤S227:每当记录一个碰撞点,则将上一碰撞点到当前碰撞点的区域记录为一段可达区域。
步骤S228:若射线检测不到碰撞点,则退出循环。
步骤S229:判断当前Tile是否一个可达区域都没有;如果是,则继续执行步骤S230;如果否,则流程结束。
步骤S230:使用相邻8个Tile可达区域的并集,作为当前Tile的可达区域,由此可以确保整个场景的每一处都至少存在一个采样点,而不会出现“空洞”。
可选地,在步骤S14中,在每个可达区域内获取一个或多个遮挡剔除区域可以包括以下执行步骤:
步骤S141,在当前可达区域内生成至少一个遮挡剔除区域,其中,至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;
步骤S142,获取与当前可达区域相邻的多个可达区域;
步骤S143,在根据多个可达区域的最低点的高度确定最低点位于至少一个遮挡剔除区域中的其中一遮挡剔除区域中且最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值(例如:玩家控制的游戏角色高度)的情况下,将确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据多个可达区域的最低点的高度确定最低点位于最顶层遮挡剔除区域上方的情况下,从最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
在获取到上述可达区域之后,将使用已经得到的可达区域来生成遮挡剔除区域。
首先,对于每个可达区域而言,至少需要生成一个遮挡剔除区域,该遮挡剔除区域的位置和高度与相应可达区域完全一致。对于最上层的可达区域,虽然其高度为无限高,但考虑到玩家控制的游戏角色通常不会飞,所以将最上层遮挡剔除区域的高度设置为玩家控制的游戏角色高度即可。进一步地,通常考虑到玩家控制的游戏角色可能会有跳跃操作或者游戏为第三人称视角,因此可以将最上层高度设置成比玩家控制的游戏角色高度稍高。
随后,对于第三人称视角的游戏,由于摄像机与玩家控制的游戏角色总是会有一定距离的偏移,摄像机可能会位于玩家控制的游戏角色无法到达的区域。例如:当玩家控制的游戏角色背对着站在一个悬崖边缘时,摄像机所在的位置则是万丈深渊。根据贴地生成的原则,该位置不存在一个遮挡剔除区域,因此遮挡剔除系统在此处便会失效。对此,应该根据周围可达区域的信息,在适当的高度上补充插入一个遮挡剔除区域。这样既能够确保遮挡剔除区域覆盖全面,又能够确保遮挡剔除区域不会生成在玩家控制的游戏角色不可达的地方,效果极佳。
图3是根据本发明其中一优选实施例的遮挡剔除区域生成过程的流程图,如图3所示,该流程可以包括以下处理步骤:
步骤S301:针对场景中的每个Tile中的每一段可达区域,生成一片遮挡剔除区域,其中,遮挡剔除区域的长和宽即为Tile的长和宽,遮挡剔除区域的高为可达区域的高度。
步骤S302:获取相邻8个Tile的可达区域,对于每个相邻Tile的可达区域,判断该可达区域的最低点高度是否位于当前Tile某个遮挡剔除区域中;如果是,则继续执行步骤S303;如果否,则继续执行步骤S305。
步骤S303:判断该最低点是否与当前遮挡剔除区域的上下边界相差多于一个玩家控制的游戏角色高度;如果是,则继续执行步骤S304。
步骤S304:将当前遮挡剔除区域拆分成上下两个遮挡剔除区域。
步骤S305:判断该最低点是否位于最顶层遮挡剔除区域上方。如果是,则继续执行步骤S306。
步骤S306:自现有最顶层遮挡区域的最高点开始,不断向上累加单位玩家控制的游戏角色高度,直至超过该点所在高度位为止,并将整个区域划分为一个新的遮挡剔除区域。
可选地,在步骤S16中,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS可以包括以下执行步骤:
步骤S161,在每个遮挡剔除区域内生成多个采样点;控制多个采样点中的每个采样点均匀地向四周发射多条射线;
步骤S162,当多条射线的每条射线与游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;
步骤S163,汇集多个采样点的可见模型,得到PVS。
在每个遮挡剔除区域内部通常会生成若干个采样点,用于进行后续的模型可见性测试。生成的方式可以是按照一定密度随机生成,也可以是按照预设分布算法生成。在采样点的生成过程中,烘焙器会在每个可达区域中生成对应的采样点。当采样点相邻的可达区域的高度差过大时,为了防止错误的剔除结果,烘焙器会根据相邻区域的高度补充一些采样点。烘焙器会尽可能使用最少的采样点来覆盖更多的位置,以减少烘焙时间和内存占用。
对于遮挡剔除区域内的每个采样点,可均匀地向四周发射出大量的射线。当射线与场景中的模型相交时,获取与采样点最近的交点所属的模型,该模型对于当前采样点而言就是可见的。将所有采样点可见模型汇集在一起,便会构成当前遮挡剔除区域的PVS。在经过烘焙后,每个PVS都包含该PVS所在区域的所有可见模型的数据。由于整个场景的遮挡剔除数据是由大量的PVS共同构成的,通常需要占用大量的存储空间,因此,需要将相邻遮挡剔除区域相似度较高的PVS进行合并,以降低最终生成文件大小。
采样点只会在可达区域生成。烘焙器将会在采样点的位置进行遮挡测试,生成该位置的可见集。最终的可见集通常由同一区域的多个采样点共同生成。采样点通常会在附近位置生成多个多重采样点,以减少剔除错误。采样点与多重采样点组成一个集合,如果特定模型能够被该集合中任意一个位置的点观测到,则认为该采样点能够观察到这个模型。
烘焙器会在采样点与模型之间视距离而定进行数次到数百次的射线检测,以确定该采样点能否看见这个模型。射线通常会尽可能地平均分布,以维持一定的密度。烘焙器最终会将每个区域中多个采样点及其附属的多重采样点的采样结果合并成可见集。在实际运行过程中,会采用这些数据来判断哪些模型无需被渲染。
在多重采样点的生成过程中,每个采样点都会在附近生成若干个多重采样点,以辅助进行遮挡测试,减少剔除错误的产生。多重采样点分为垂直多重采样和水平多重采样两种。
垂直多重采样点通常基于以下策略生成:在绝大部分情况下,烘焙器会在采样点下方偏移1/2玩家控制的游戏角色高度处生成一个垂直多重采样点。如果两个采样点之间距离较远,则烘焙器会在这两个采样点之间,相隔玩家控制的游戏角色高度,均匀地插入垂直多重采样点。
而针对水平多重采样,烘焙器会在每个采样点(包括垂直多重采样点)的四个对角线方向上水平发射4条水平射线。如果这些射线与场景发生碰撞,则会在对应位置生成一个水平多重采样点。
在射线的生成过程中,烘焙器会在采样点与目标之间进行一系列的射线检测,来判定特定模型是否在某个采样点中可见。烘焙器首先会在被遮挡体表面生成一系列的测试点,最终的射线即为采样点与测试点之间的连线。烘焙器会通过测试点间的最小距离和射线间的最小角度两个参数,来控制射线的密度不会过于密集。只要任意一条射线没有发生阻挡,便意味着被遮挡体可见。反之,如果所有射线均被阻挡,则表示被遮挡体不可见。
超采样与多重采样意义不同。多重采样是烘焙器的自动行为,而超采样需要用户手动设置。每增加一级超采样,采样点的数量会提升4倍。与多重采样点类似,超采样仅用于在烘焙时减少剔除错误,并不会增加vis文件的大小。
在可见集的生成过程中,最终可见集是临近4个采样点的并集,如果开启2重超采样,则是临近9个采样点的并集。对于3重超采样,则是临近16个采样点的并集,以此类推。使用4个角点生成可见集可极大地减少错误剔除的概率。
可选地,在步骤S16,在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS之后,还可以包括以下执行步骤:
步骤S17,对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
在优选实施过程中,可以尝试对烘焙结果进行一些优化。例如:如果某些相邻遮挡剔除区域中的PVS相似,则可以将多个遮挡剔除区域合并,以减少最终生成文件的大小。
综上所述,通过上述实施例可以实现如下技术效果:
首先,降低了人工参与遮挡剔除烘焙过程所花费的时间。相关技术中由于需要人工标定遮挡剔除区域,需要人为区分哪些区域应该标记,哪些区域不应该标记。如果标记的区域过多,则烘焙时间过长且生成文件大小过大,易造成浪费。如果标记的区域较少,则未标记的区域无法享受到遮挡剔除所带来的性能提升。更为重要的是,当场景发生修改变动时,人工标记的遮挡剔除区域也需要随之修改以适应新的场景,从而浪费了大量人力成本。而在本发明实施例所提供的技术方案中,遮挡剔除区域由程序自动生成,不但无需人类参与,而且生成的遮挡剔除区域质量也更高,进而节省了大量的人力成本。
其次,人工标定的遮挡剔除区域粒度较粗,许多玩家控制的游戏角色不可达的区域也会被标记为遮挡剔除区域生成PVS,进而浪费烘焙时间和生成文件大小。而在本发明实施例所提供的技术方案中,在可达区域生成遮挡剔除区域,粒度更加细致,分布更科学合理,进而降低烘焙时间和生成文件的大小。
根据本发明其中一实施例,还提供了一种游戏场景的遮挡剔除装置的实施例,图4是根据本发明其中一实施例的游戏场景的遮挡剔除装置的结构框图,如图4所示,该装置包括:处理模块10,用于根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,初始输入信息包括:用于可见性烘焙的原材料信息以及基于原材料数据执行烘焙行为的参数信息;获取模块20,用于在每个可达区域内获取一个或多个遮挡剔除区域;检测模块30,用于在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到PVS;输出模块40,用于将每个遮挡剔除区域的PVS进行序列化输出。
可选地,处理模块10包括:建立单元(图中未示出),用于以海平面为基准建立三维直角坐标系,其中,XOZ平面为海平面或者与海平面相互平行的平面,从海平面指向天空的方向为Y轴的正方向;划分单元(图中未示出),用于将XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;过滤单元(图中未示出),用于将多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;第一获取单元(图中未示出),用于根据预设实心模型集合与预设空心模型集合从中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
可选地,获取单元(图中未示出)包括:计算子单元(图中未示出),用于计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;第一获取子单元(图中未示出),用于获取射线与任一模型发生碰撞的碰撞点所在表面的法线方向;确定子单元(图中未示出),用于根据预设实心模型集合与预设空心模型集合确定任一模型归属的模型类型;第二获取子单元(图中未示出),用于采用次数、法线方向以及模型类型从中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
可选地,获取模块20包括:生成单元(图中未示出),用于在当前可达区域内生成至少一个遮挡剔除区域,其中,至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;第二获取单元(图中未示出),用于获取与当前可达区域相邻的多个可达区域;处理单元(图中未示出),用于在根据多个可达区域的最低点的高度确定最低点位于至少一个遮挡剔除区域中的其中一遮挡剔除区域中且最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据多个可达区域的最低点的高度确定最低点位于最顶层遮挡剔除区域上方的情况下,从最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
可选地,检测模块30包括:生成单元(图中未示出),用于在每个遮挡剔除区域内生成多个采样点;控制单元(图中未示出),用于控制多个采样点中的每个采样点均匀地向四周发射多条射线;确定单元(图中未示出),用于当多条射线的每条射线与游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;汇集单元(图中未示出),用于汇集多个采样点的可见模型,得到PVS。
可选地,图5是根据本发明其中一优选实施例的游戏场景的遮挡剔除装置的结构框图,如图5所示,上述装置还包括:合并模块50,用于对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
根据本发明其中一实施例,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述游戏场景的遮挡剔除方法。上述存储介质可以包括但不限于:U盘、只读存储器(ROM)、随机存取存储器(RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本发明其中一实施例,还提供了一种处理器,处理器用于运行程序,其中,程序运行时执行上述游戏场景的遮挡剔除方法。上述处理器可以包括但不限于:微处理器(MCU)或可编程逻辑器件(FPGA)等的处理装置。
根据本发明其中一实施例,还提供了一种终端,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,一个或多个程序被存储在存储器中,并且被配置为由一个或多个处理器执行,一个或多个程序用于执行上述游戏场景的遮挡剔除方法。在一些实施例中,上述终端可以是智能手机(例如:Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,简称为MID)、PAD等终端设备。上述显示装置可以是触摸屏式的液晶显示器(LCD),该液晶显示器可使得用户能够与终端的用户界面进行交互。此外,上述终端还可以包括:输入/输出接口(I/O接口)、通用串行总线(USB)端口、网络接口、电源和/或相机。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (15)
1.一种游戏场景的遮挡剔除方法,其特征在于,包括:
根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,所述初始输入信息包括:用于可见性烘焙的原材料信息以及基于所述原材料数据执行烘焙行为的参数信息;
在每个可达区域内获取一个或多个遮挡剔除区域;
在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到潜在可视集合PVS;
将每个遮挡剔除区域的PVS进行序列化输出。
2.根据权利要求1所述的方法,其特征在于,根据所述初始输入信息将所述游戏场景划分为所述多个单位空间,并分别在每个单位空间内查找一个或多个可达区域包括:
以海平面为基准建立三维直角坐标系,其中,XOZ平面为所述海平面或者与所述海平面相互平行的平面,从所述海平面指向天空的方向为Y轴的正方向;
将所述XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与所述游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,所述多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;
将所述多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;
根据预设实心模型集合与预设空心模型集合从所述中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
3.根据权利要求2所述的方法,其特征在于,根据所述预设实心模型集合与所述预设空心模型集合从所述中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域包括:
计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;
获取所述射线与所述任一模型发生碰撞的碰撞点所在表面的法线方向;
根据所述预设实心模型集合与所述预设空心模型集合确定所述任一模型归属的模型类型;
采用所述次数、所述法线方向以及所述模型类型从所述中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
4.根据权利要求1所述的方法,其特征在于,在每个可达区域内获取一个或多个遮挡剔除区域包括:
在当前可达区域内生成至少一个遮挡剔除区域,其中,所述至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,所述至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;
获取与所述当前可达区域相邻的多个可达区域;
在根据所述多个可达区域的最低点的高度确定所述最低点位于所述至少一个遮挡剔除区域中的其中一遮挡剔除区域中且所述最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将所述确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据所述多个可达区域的最低点的高度确定所述最低点位于最顶层遮挡剔除区域上方的情况下,从所述最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过所述最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
5.根据权利要求1所述的方法,其特征在于,在每个遮挡剔除区域内生成所述多个采样点进行可见性检测,得到所述PVS包括:
在每个遮挡剔除区域内生成所述多个采样点;
控制所述多个采样点中的每个采样点均匀地向四周发射多条射线;
当所述多条射线的每条射线与所述游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;
汇集所述多个采样点的可见模型,得到所述PVS。
6.根据权利要求5所述的方法,其特征在于,在每个遮挡剔除区域内生成所述多个采样点进行可见性检测,得到所述PVS之后,还包括:
对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
7.一种游戏场景的遮挡剔除装置,其特征在于,包括:
处理模块,用于根据初始输入信息将游戏场景划分为多个单位空间,并分别在每个单位空间内查找一个或多个可达区域,其中,所述初始输入信息包括:用于可见性烘焙的原材料信息以及基于所述原材料数据执行烘焙行为的参数信息;
获取模块,用于在每个可达区域内获取一个或多个遮挡剔除区域;
检测模块,用于在每个遮挡剔除区域内生成多个采样点进行可见性检测,得到潜在可视集合PVS;
输出模块,用于将每个遮挡剔除区域的PVS进行序列化输出。
8.根据权利要求7所述的装置,其特征在于,所述处理模块包括:
建立单元,用于以海平面为基准建立三维直角坐标系,其中,XOZ平面为所述海平面或者与所述海平面相互平行的平面,从所述海平面指向天空的方向为Y轴的正方向;
划分单元,用于将所述XOZ平面均匀划分为多个单元格,并从每个单元格的中心位置沿重力方向引出射线,与所述游戏场景内设置的模型发生多次碰撞将每个单元格所对应的单位空间划分为多层结构,其中,所述多层结构的层数为碰撞次数加1,相邻两个碰撞点之间的间隔为层高;
过滤单元,用于将所述多层结构的最底层以及层高低于预设阈值的部分层空间滤除,得到中间过滤结果;
第一获取单元,用于根据预设实心模型集合与预设空心模型集合从所述中间过滤结果滤除不可达区域,获取每个单位空间内的一个或多个可达区域。
9.根据权利要求8所述的装置,其特征在于,所述获取单元包括:
计算子单元,用于计算由每个单元格引出的射线穿入和穿出对应单位空间内的任一模型的次数;
第一获取子单元,用于获取所述射线与所述任一模型发生碰撞的碰撞点所在表面的法线方向;
确定子单元,用于根据所述预设实心模型集合与所述预设空心模型集合确定所述任一模型归属的模型类型;
第二获取子单元,用于采用所述次数、所述法线方向以及所述模型类型从所述中间过滤结果滤除不可达区域,获取每个单位空间内的可达区域。
10.根据权利要求7所述的装置,其特征在于,所述获取模块包括:
生成单元,用于在当前可达区域内生成至少一个遮挡剔除区域,其中,所述至少一个遮挡剔除区域中每个遮挡剔除区域的长度和宽度与对应单元格的长度和宽度相同,所述至少一个遮挡剔除区域中每个遮挡剔除区域的高度与对应的可达区域的高度相同;
第二获取单元,用于获取与所述当前可达区域相邻的多个可达区域;
处理单元,用于在根据所述多个可达区域的最低点的高度确定所述最低点位于所述至少一个遮挡剔除区域中的其中一遮挡剔除区域中且所述最低点与确定的遮挡剔除区域的上下方界面之间的距离超过预设阈值的情况下,将所述确定的遮挡剔除区域拆分成上下两个遮挡剔除区域;或者,在根据所述多个可达区域的最低点的高度确定所述最低点位于最顶层遮挡剔除区域上方的情况下,从所述最顶层遮挡剔除区域的最高点开始向上累加单位高度直至超过所述最高点所在高度位为止,并将整个遮挡剔除区域划分为新的遮挡剔除区域。
11.根据权利要求7所述的装置,其特征在于,所述检测模块包括:
生成单元,用于在每个遮挡剔除区域内生成所述多个采样点;
控制单元,用于控制所述多个采样点中的每个采样点均匀地向四周发射多条射线;
确定单元,用于当所述多条射线的每条射线与所述游戏场景中的一个或多个模型相交时,确定每条射线与当前采样点所在位置之间距离最近的模型对当前采样点可见;
汇集单元,用于汇集所述多个采样点的可见模型,得到所述PVS。
12.根据权利要求11所述的装置,其特征在于,所述装置还包括:
合并模块,用于对相邻遮挡剔除区域内相似度超过预设阈值的PVS进行合并。
13.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至6中任意一项所述的游戏场景的遮挡剔除方法。
14.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至6中任意一项所述的游戏场景的遮挡剔除方法。
15.一种终端,其特征在于,包括:一个或多个处理器,存储器,显示装置以及一个或多个程序,其中,所述一个或多个程序被存储在所述存储器中,并且被配置为由所述一个或多个处理器执行,所述一个或多个程序用于执行权利要求1至6中任意一项所述的游戏场景的遮挡剔除方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071579.9A CN108257103B (zh) | 2018-01-25 | 2018-01-25 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810071579.9A CN108257103B (zh) | 2018-01-25 | 2018-01-25 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108257103A true CN108257103A (zh) | 2018-07-06 |
CN108257103B CN108257103B (zh) | 2020-08-25 |
Family
ID=62742775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810071579.9A Active CN108257103B (zh) | 2018-01-25 | 2018-01-25 | 游戏场景的遮挡剔除方法、装置、处理器及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108257103B (zh) |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377552A (zh) * | 2018-10-19 | 2019-02-22 | 珠海金山网络游戏科技有限公司 | 图像遮挡计算方法、装置、计算设备及存储介质 |
CN109615686A (zh) * | 2018-12-07 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 潜在可视集合的确定方法、装置、设备及存储介质 |
CN109663358A (zh) * | 2018-12-21 | 2019-04-23 | 成都四方伟业软件股份有限公司 | 动态场景剔除遮挡物体的方法、装置及电子设备 |
CN109685726A (zh) * | 2018-11-27 | 2019-04-26 | Oppo广东移动通信有限公司 | 游戏场景处理方法、装置、电子设备以及存储介质 |
CN109754454A (zh) * | 2019-01-30 | 2019-05-14 | 腾讯科技(深圳)有限公司 | 物体模型的渲染方法、装置、存储介质及设备 |
CN110090440A (zh) * | 2019-04-30 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 虚拟对象显示方法、装置、电子设备及存储介质 |
CN110415320A (zh) * | 2019-07-25 | 2019-11-05 | 上海米哈游网络科技股份有限公司 | 一种场景预烘焙方法、装置、存储介质及电子设备 |
CN111773685A (zh) * | 2020-06-16 | 2020-10-16 | 网易(杭州)网络有限公司 | 动态生成游戏角色视野的方法和装置 |
CN111862052A (zh) * | 2020-07-22 | 2020-10-30 | 上海米哈游天命科技有限公司 | 检测缝隙的方法、装置、设备及介质 |
CN111862053A (zh) * | 2020-07-22 | 2020-10-30 | 上海米哈游天命科技有限公司 | 查找缝隙的方法、装置、设备及介质 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113457161A (zh) * | 2021-07-16 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 画面展示方法、信息生成方法、装置、设备及存储介质 |
CN113628102A (zh) * | 2021-08-16 | 2021-11-09 | 广东三维家信息科技有限公司 | 实体模型消隐方法、装置、电子设备及存储介质 |
CN113724364A (zh) * | 2021-08-03 | 2021-11-30 | 深圳市瑞立视多媒体科技有限公司 | 一种利用多边形实现遮挡且本体不渲染的设置方法及装置 |
CN115205485A (zh) * | 2022-06-30 | 2022-10-18 | 广州极点三维信息科技有限公司 | 基于包围盒的三维空间探测扩充方法、系统、装置及介质 |
CN115631320A (zh) * | 2022-12-23 | 2023-01-20 | 腾讯科技(深圳)有限公司 | 预计算单元格显示方法、预计算单元格生成方法及装置 |
WO2023155348A1 (zh) * | 2022-02-16 | 2023-08-24 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置、计算机设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419721A (zh) * | 2008-10-30 | 2009-04-29 | 上海大学 | 一种基于视域剔除的复杂室内场景快速绘制方法 |
CN102542608A (zh) * | 2011-12-16 | 2012-07-04 | 大连兆阳软件科技有限公司 | 一种离线优化的地形渲染的方法 |
CN102682466A (zh) * | 2011-03-17 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 三维角色扮演游戏中实现动态阻挡的方法、装置及系统 |
US8339398B2 (en) * | 2006-09-28 | 2012-12-25 | International Business Machines Corporation | Integrated acceleration data structure for physics and ray tracing workload |
CN103984684A (zh) * | 2013-02-07 | 2014-08-13 | 百度在线网络技术(北京)有限公司 | 基于lbs的可达区域确定方法及设备 |
CN105389850A (zh) * | 2015-11-03 | 2016-03-09 | 北京大学(天津滨海)新一代信息技术研究院 | 一种大规模三维场景的新型可见性生成方法 |
US20160155260A1 (en) * | 2010-06-30 | 2016-06-02 | Primal Space Systems, Inc. | Pursuit path camera model method and system |
CN106296786A (zh) * | 2016-08-09 | 2017-01-04 | 网易(杭州)网络有限公司 | 游戏场景可见区域的确定方法及装置 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN106503347A (zh) * | 2016-10-25 | 2017-03-15 | 福州大学 | 一种基于aabb与obb自适应的复合包围盒算法 |
CN107093203A (zh) * | 2010-06-30 | 2017-08-25 | 巴里·林恩·詹金斯 | 图形信息的基于导航的预取发送或接收的控制方法和系统 |
-
2018
- 2018-01-25 CN CN201810071579.9A patent/CN108257103B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8339398B2 (en) * | 2006-09-28 | 2012-12-25 | International Business Machines Corporation | Integrated acceleration data structure for physics and ray tracing workload |
CN101419721A (zh) * | 2008-10-30 | 2009-04-29 | 上海大学 | 一种基于视域剔除的复杂室内场景快速绘制方法 |
US20160155260A1 (en) * | 2010-06-30 | 2016-06-02 | Primal Space Systems, Inc. | Pursuit path camera model method and system |
CN107093203A (zh) * | 2010-06-30 | 2017-08-25 | 巴里·林恩·詹金斯 | 图形信息的基于导航的预取发送或接收的控制方法和系统 |
CN102682466A (zh) * | 2011-03-17 | 2012-09-19 | 腾讯科技(深圳)有限公司 | 三维角色扮演游戏中实现动态阻挡的方法、装置及系统 |
CN102542608A (zh) * | 2011-12-16 | 2012-07-04 | 大连兆阳软件科技有限公司 | 一种离线优化的地形渲染的方法 |
CN103984684A (zh) * | 2013-02-07 | 2014-08-13 | 百度在线网络技术(北京)有限公司 | 基于lbs的可达区域确定方法及设备 |
CN105389850A (zh) * | 2015-11-03 | 2016-03-09 | 北京大学(天津滨海)新一代信息技术研究院 | 一种大规模三维场景的新型可见性生成方法 |
CN106296786A (zh) * | 2016-08-09 | 2017-01-04 | 网易(杭州)网络有限公司 | 游戏场景可见区域的确定方法及装置 |
CN106355644A (zh) * | 2016-08-31 | 2017-01-25 | 北京像素软件科技股份有限公司 | 三维电子游戏画面中的物体模型剔除方法及装置 |
CN106503347A (zh) * | 2016-10-25 | 2017-03-15 | 福州大学 | 一种基于aabb与obb自适应的复合包围盒算法 |
Non-Patent Citations (3)
Title |
---|
SEBASTIAN FREITAG 等,: "Efficient approximate computation of scene visibility based on navigation meshes and applications for navigation and scene analysis", 《2017 IEEE SYMPOSIUM ON 3D USER INTERFACES (3DUI)》 * |
王振玉: "基于视点区域的全局遮挡图及精确PVS算法研究", 《中国优秀硕士学位论文全文数据库》 * |
黄翔: "大规模复杂场景可见性判断及剔除技术研究与实现", 《中国优秀硕士学位论文全文数据库》 * |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109377552A (zh) * | 2018-10-19 | 2019-02-22 | 珠海金山网络游戏科技有限公司 | 图像遮挡计算方法、装置、计算设备及存储介质 |
CN109685726B (zh) * | 2018-11-27 | 2021-04-13 | Oppo广东移动通信有限公司 | 游戏场景处理方法、装置、电子设备以及存储介质 |
CN109685726A (zh) * | 2018-11-27 | 2019-04-26 | Oppo广东移动通信有限公司 | 游戏场景处理方法、装置、电子设备以及存储介质 |
CN109615686A (zh) * | 2018-12-07 | 2019-04-12 | 腾讯科技(深圳)有限公司 | 潜在可视集合的确定方法、装置、设备及存储介质 |
CN109615686B (zh) * | 2018-12-07 | 2022-11-29 | 腾讯科技(深圳)有限公司 | 潜在可视集合的确定方法、装置、设备及存储介质 |
CN109663358A (zh) * | 2018-12-21 | 2019-04-23 | 成都四方伟业软件股份有限公司 | 动态场景剔除遮挡物体的方法、装置及电子设备 |
CN109754454A (zh) * | 2019-01-30 | 2019-05-14 | 腾讯科技(深圳)有限公司 | 物体模型的渲染方法、装置、存储介质及设备 |
CN109754454B (zh) * | 2019-01-30 | 2022-11-04 | 腾讯科技(深圳)有限公司 | 物体模型的渲染方法、装置、存储介质及设备 |
CN110090440A (zh) * | 2019-04-30 | 2019-08-06 | 腾讯科技(深圳)有限公司 | 虚拟对象显示方法、装置、电子设备及存储介质 |
CN110415320A (zh) * | 2019-07-25 | 2019-11-05 | 上海米哈游网络科技股份有限公司 | 一种场景预烘焙方法、装置、存储介质及电子设备 |
CN111773685A (zh) * | 2020-06-16 | 2020-10-16 | 网易(杭州)网络有限公司 | 动态生成游戏角色视野的方法和装置 |
CN111862052B (zh) * | 2020-07-22 | 2023-09-05 | 上海米哈游天命科技有限公司 | 检测缝隙的方法、装置、设备及介质 |
CN111862053A (zh) * | 2020-07-22 | 2020-10-30 | 上海米哈游天命科技有限公司 | 查找缝隙的方法、装置、设备及介质 |
CN111862052A (zh) * | 2020-07-22 | 2020-10-30 | 上海米哈游天命科技有限公司 | 检测缝隙的方法、装置、设备及介质 |
CN111862053B (zh) * | 2020-07-22 | 2023-11-28 | 上海米哈游天命科技有限公司 | 查找缝隙的方法、装置、设备及介质 |
CN112691381B (zh) * | 2021-01-13 | 2022-07-29 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN112691381A (zh) * | 2021-01-13 | 2021-04-23 | 腾讯科技(深圳)有限公司 | 虚拟场景的渲染方法、装置、设备及计算机可读存储介质 |
CN113457161A (zh) * | 2021-07-16 | 2021-10-01 | 腾讯科技(深圳)有限公司 | 画面展示方法、信息生成方法、装置、设备及存储介质 |
CN113457161B (zh) * | 2021-07-16 | 2024-02-13 | 深圳市腾讯网络信息技术有限公司 | 画面展示方法、信息生成方法、装置、设备及存储介质 |
CN113724364A (zh) * | 2021-08-03 | 2021-11-30 | 深圳市瑞立视多媒体科技有限公司 | 一种利用多边形实现遮挡且本体不渲染的设置方法及装置 |
CN113724364B (zh) * | 2021-08-03 | 2024-08-13 | 深圳市瑞立视多媒体科技有限公司 | 一种利用多边形实现遮挡且本体不渲染的设置方法及装置 |
CN113628102A (zh) * | 2021-08-16 | 2021-11-09 | 广东三维家信息科技有限公司 | 实体模型消隐方法、装置、电子设备及存储介质 |
WO2023155348A1 (zh) * | 2022-02-16 | 2023-08-24 | 网易(杭州)网络有限公司 | 游戏数据处理方法、装置、计算机设备及存储介质 |
CN115205485B (zh) * | 2022-06-30 | 2023-03-24 | 广州极点三维信息科技有限公司 | 基于包围盒的三维空间探测扩充方法、系统、装置及介质 |
CN115205485A (zh) * | 2022-06-30 | 2022-10-18 | 广州极点三维信息科技有限公司 | 基于包围盒的三维空间探测扩充方法、系统、装置及介质 |
CN115631320A (zh) * | 2022-12-23 | 2023-01-20 | 腾讯科技(深圳)有限公司 | 预计算单元格显示方法、预计算单元格生成方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108257103B (zh) | 2020-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108257103A (zh) | 游戏场景的遮挡剔除方法、装置、处理器及终端 | |
CN105701204B (zh) | 基于道路网的电子地图兴趣点的提取方法及显示方法 | |
CN106296721B (zh) | 基于立体视觉的对象聚集检测方法和装置 | |
CN106647742B (zh) | 移动路径规划方法及装置 | |
CN106127853B (zh) | 一种无人机探测范围分析方法 | |
CN108226894A (zh) | 一种点云数据处理方法及装置 | |
CN107247926B (zh) | 一种人体检测方法及装置 | |
CN111870952B (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN106295502A (zh) | 一种人脸检测方法及装置 | |
CN109583345A (zh) | 道路识别方法、装置、计算机装置及计算机可读存储介质 | |
CN111932943A (zh) | 动态目标的检测方法、装置、存储介质及路基监测设备 | |
CN108257173A (zh) | 一种图像信息中的物体分离方法及装置及系统 | |
CN108764328A (zh) | 太赫兹图像危险品识别方法、装置、设备及可读存储介质 | |
CN116883612B (zh) | 一种三维场景模型生成方法及系统 | |
CN106842193A (zh) | 道路检测信息的处理方法、装置和系统 | |
CN112182917B (zh) | 基于多目标优化的摄像设备布控优化方法、系统、设备及存储介质 | |
CN108225334A (zh) | 一种基于三维实景数据的定位方法及装置 | |
McKinnon et al. | Automatic identification of large fragments in a pile of broken rock using a time-of-flight camera | |
CN107358640A (zh) | 一种晕渲目标区域的地形和地物的方法及装置 | |
CN117576053A (zh) | 一种三维地质模型建模质量评估方法 | |
CN109255792A (zh) | 一种视频图像的分割方法、装置、终端设备及存储介质 | |
JP5811923B2 (ja) | 情報処理装置、画像処理方法およびプログラム | |
CN113689569A (zh) | 基于实景三维平台建筑物快速设计方法及系统、存储介质 | |
CN107748643A (zh) | 一种基于地下三维空间的交互式对象拾取方法 | |
CN104867129A (zh) | 一种光场图像分割方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |