CN112802175B - 大规模场景遮挡剔除方法、装置、设备及存储介质 - Google Patents
大规模场景遮挡剔除方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN112802175B CN112802175B CN201911107500.4A CN201911107500A CN112802175B CN 112802175 B CN112802175 B CN 112802175B CN 201911107500 A CN201911107500 A CN 201911107500A CN 112802175 B CN112802175 B CN 112802175B
- Authority
- CN
- China
- Prior art keywords
- scene
- scene model
- model
- quadtree
- virtual camera
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 239000011159 matrix material Substances 0.000 claims description 23
- 238000009877 rendering Methods 0.000 claims description 15
- 238000010276 construction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 claims description 9
- 230000008520 organization Effects 0.000 claims description 8
- 230000000007 visual effect Effects 0.000 claims description 8
- 230000008030 elimination Effects 0.000 claims description 4
- 238000003379 elimination reaction Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/005—Tree description, e.g. octree, quadtree
Abstract
本申请涉及一种大规模场景遮挡剔除方法,包括:对大规模场景数据进行组织,得到与大规模场景数据相应的场景图;根据空间相机参数构建三维场景中的虚拟相机,并创建与虚拟相机相匹配的深度图;确定深度图的有效屏幕坐标范围,并根据有效屏幕坐标范围构建四叉树;遍历场景图中的各场景模型,并获取各场景模型的屏幕空间位置以及各场景模型的最小深度值;基于各场景模型的屏幕空间位置以及各场景模型的最小深度值,遍历四叉树,确定各场景模型的遮挡结果;将确定出遮挡结果为被遮挡的场景模型进行剔除处理。相较于相关技术中计算原始的PVS方式,降低了场景实时绘制过程中对内存的消耗,提高了大规模场景数据的绘制速度。
Description
技术领域
本公开涉及计算机视觉技术领域,尤其涉及一种大规模场景遮挡剔除方法、装置、设备及存储介质。
背景技术
大规模复杂场景的可见性问题是研究虚拟现实、实时仿真以及三维交互设计等许多重要应用的基础。遮挡剔除算法是可见性问题研究中的支撑技术,可以大量减少当前所需渲染的场景模型数量,对于大规模场景实时绘制能够起到明显的优化作用。
在大多数的三维可视化软件中,通过采用预计算原始的PVS(潜在可见物体集)来判断场景中模型之间的遮挡关系,从而再过滤掉被遮挡的模型。但是,预计算原始的PVS需要占用额外的大量内存,可见性烘焙时间较长。
发明内容
有鉴于此,本公开提出了一种大规模场景遮挡剔除方法,可以有效减少内存消耗,提高渲染效率。
根据本公开的一方面,提供了一种大规模场景遮挡剔除方法,包括:
对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
根据空间相机参数构建三维场景中的虚拟相机,并创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
确定所述深度图的有效屏幕坐标范围,并根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值;
基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;
将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理。
在一种可能的实现方式中,根据空间相机参数构建三维场景中的虚拟相机时,包括获取所述空间相机参数,并根据所述空间相机参数得到所述虚拟相机的投影矩阵的步骤;
其中,所述空间相机参数包括:视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种;
所述投影矩阵为:
其中,near为所述虚拟相机椎体内的近裁剪平面,far为所述虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界。
在一种可能的实现方式中,各所述场景模型的深度包括各所述场景模型相对于所述虚拟相机的距离;
其中,创建与所述虚拟相机相匹配的深度图包括:
获取所述场景图中各所述场景模型相对于所述虚拟相机的距离,并创建与所述虚拟相机的视口宽度和视口高度相匹配的初始深度图;
将各所述场景模型相对于所述虚拟相机的距离实时渲染至所述初始深度图后,得到相应的所述深度图;
其中,各所述场景模型相对于所述虚拟相机的距离通过公式:计算得到;
其中,z为视点距离,Zc为深度。
在一种可能的实现方式中,所述有效屏幕坐标范围为包含所述深度图中所有场景模型的深度信息的最小矩形区域;
所述预设数值的取值为16。
在一种可能的实现方式中,获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,包括:
基于所述场景图获取各所述场景模型的包围盒信息,并将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间,得到相应的各场景模型的屏幕空间位置;
根据各所述场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各所述场景模型的包围盒的八个角点的深度值;
由八个角点的深度值中提取出数值最小的深度值作为各所述场景模型的最小深度值;
其中,将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间时,通过公式:Coords=Coordn×M×V×P×W转换得到;
其中,Coordm为角点模型空间坐标;Coords为角点屏幕空间坐标;M为所述场景模型的模型矩阵;V为所述虚拟相机的视图矩阵;P为所述虚拟相机的投影矩阵;W为所述虚拟相机的视口矩阵;角点的深度值为角点屏幕空间坐标的z值。
在一种可能的实现方式中,基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果,包括:
基于各所述场景模型的屏幕空间位置,遍历所述四叉树,确定各所述场景模型是否到达至所述四叉树中的叶节点;
在所述场景模型到达至所述四叉树中的叶节点时,确定所述遮挡结果为未被遮挡;
在所述场景模型未到达至所述四叉树中的叶节点时,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
在一种可能的实现方式中,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果,包括:
判断所述场景模型的最小深度值是否大于所述四叉树的当前节点中的最大深度值;其中,所述当前节点为所述场景模型在所述四叉树中的当前位置;
在所述场景模型的最小深度值大于所述四叉树的当前节点的最大深度值时,确定所述遮挡结果为被遮挡;
在所述场景模型的最小深度值小于或等于所述四叉树的当前节点的最大深度值时,遍历所述四叉树的当前节点的下一级节点,并根据各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
根据本申请的另一方面,还提供了一种大规模场景遮挡剔除装置,包括数据组织模块、相机构建模块、深度图创建模块、有效范围确定模块、四叉树构建模块、空间位置获取模块、最小深度值获取模块、遮挡结果确定模块和剔除处理模块;
所述数据组织模块,被配置为对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
所述相机构建模块,被配置为根据空间相机参数构建三维场景中的虚拟相机;
所述深度图创建模块,被配置为创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
所述有效范围确定模块,被配置为确定所述深度图的有效屏幕坐标范围;
所述四叉树构建模块,被配置为根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
所述空间位置获取模块,被配置为遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置;
所述最小深度值获取模块,被配置为遍历所述场景图中的各所述场景模型,并获取各所述场景模型的最小深度值;
所述遮挡结果确定模块,被配置为基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;
所述剔除处理模块,被配置为将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理。
根据本申请的一方面,还提供了一种大规模场景遮挡剔除设备,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现前面任一所述的方法。
根据本申请的一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现前面任一所述的方法。
本申请的大规模场景遮挡剔除方法,通过采用深度图技术,并基于所创建的深度图构建相应的四叉树,根据深度图中各场景模型的深度以及四叉树进行各场景模型的遮挡结果判断,相较于相关技术中计算原始的PVS方式,降低了场景实时绘制过程中对内存的消耗,提高了大规模场景数据的绘制速度。
根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。
图1示出本申请一实施例的大规模场景遮挡剔除方法的流程图;
图2示出本申请的大规模场景遮挡剔除方法中对大规模场景数据进行组织得到场景图的数据组织结构;
图3示出本申请另一实施例的大规模场景遮挡剔除方法的流程图;
图4示出采用本申请的大规模场景遮挡剔除方法的渲染结果图;
图5示出未采用本申请的大规模场景遮挡剔除方法的渲染结果图;
图6示出本申请的大规模场景遮挡剔除装置的框图;
图7示出本申请的大规模场景遮挡剔除设备的框图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。
图1示出本申请一实施例的大规模场景遮挡剔除方法的流程图。参阅图1,在本申请的大规模场景遮挡剔除方法中,首先包括步骤S100,对大规模场景数据进行组织,得到与大规模场景数据相应的场景图。此处,本领域技术人员可以理解,对大规模场景数据组织为场景图的方式可以采用本领域的常规技术手段来实现。其中需要指出的是,与本领域常规技术手段中组织得到的场景图的数据组织结构不同,本申请中对大规模场景数据组织得到的场景图的数据结构为一种自顶向下、分层的树状数据结构,如图2所示。
步骤S200,根据空间相机参数构建三维场景中的虚拟相机,并创建与虚拟相机相匹配的深度图。其中,需要指出的是,所创建的深度图中包含场景图中各场景模型的深度信息。步骤S300,确定深度图的有效屏幕坐标范围,并根据所确定的有效屏幕坐标范围构建四叉树。其中,在根据有效屏幕坐标范围构建四叉树过程中,对四叉树的划分过程可以根据预先设置的收敛条件来进行。即,在达到收敛条件后即可停止四叉树的继续划分。在一种可能的实现方式中,收敛条件可以为当前所构建的四叉树的各块的像素个数大于或等于预设数值。其中,预设数值的取值可以根据实际情况进行灵活设置。预设数值的取值越大,所构建的四叉树的深度越小,在判断遮挡关系时,递归计算的次数也就越少,效率越高,但是精度会相对较低;设置的值越小,四叉树深度越大,计算次数较多,但是精度会较高。需要说明的是,在本申请的大规模场景遮挡剔除方法中,预设数值的取值可以设置为16。即,所构建的四叉树的各块的像素个数大于或等于16。
在构建与深度图相应的四叉树后,即可执行步骤S400,遍历场景图中的各场景模型,并获取各场景模型的屏幕空间位置以及各场景模型的最小深度值,然后通过步骤S500,基于各场景模型的屏幕空间位置以及各场景模型的最小深度值,遍历所构建的四叉树,确定各场景模型的遮挡结果。最后,再通过步骤S600,将确定出遮挡结果为被遮挡的场景模型进行剔除处理。即,在渲染队列中剔除掉被遮挡的场景模型。
由此,本申请的大规模场景遮挡剔除方法,通过采用深度图技术,并基于所创建的深度图构建相应的四叉树,根据深度图中各场景模型的深度以及四叉树进行各场景模型的遮挡结果判断,相较于相关技术中计算原始的PVS方式,降低了场景实时绘制过程中对内存的消耗,提高了大规模场景数据的绘制速度。
其中,参阅图3,在一种可能的实现方式中,采用场景图的方式将大规模场景数据组织之后,即可执行步骤S210,根据空间相机参数构建三维场景中的虚拟相机。其中,根据空间相机参数构建三维场景中的虚拟相机时,可以通过获取空间相机参数,根据空间相机参数得到虚拟相机的投影矩阵的方式来实现。
其中,需要说明的是,空间相机参数包括视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种。所得到的虚拟相机的投影矩阵为:
其中,near为虚拟相机椎体内的近裁剪平面,far为虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界。
进一步地,需要说明的是,各场景模型的深度包括各场景模型相对于虚拟相机的距离。相应的,创建完虚拟相机之后,即可执行步骤S220,创建一张与虚拟相机的视口宽度、视口高度相匹配的深度图。其中,在创建深度图时,可以通过以下方式来实现。
即,首先获取场景图中各场景模型相对于虚拟相机的距离,并创建与虚拟相机的视口宽度和视口高度相匹配的初始深度图。然后,将各场景模型相对于虚拟相机的距离实时渲染至初始深度图中,即可得到相应的深度图。
需要指出的是,在将各场景模型相对于虚拟相机的距离实时渲染至初始深度图中时,可以采用RTT技术。并且,在获取各场景模型相对于虚拟相机的距离(即,各场景模型的深度)时,可以采用深度计算公式:计算得到。其中,z为视点距离,Zc为深度。
通过采用RTT技术,将各场景模型相对于虚拟相机的距离实时渲染至初始深度图中构建得到深度图,实现了根据视点的位置不同,实时绘制深度图的目的。由此可以实现对动态场景模型的处理,从而进一步地提高了大规模场景数据绘制结果的精确性。
更进一步地,在确定深度图的有效屏幕坐标范围时,有效屏幕坐标范围为包含深度图中所有场景模型的深度信息的最小矩形区域。并且,在确定该有效屏幕坐标范围时,可以通过扫描深度图的方式进行有效屏幕坐标范围的筛选。即,通过步骤S310,扫描深度图中的深度信息,筛选出深度图中包含模型深度嘻嘻的有效屏幕坐标范围来实现有效屏幕坐标范围的确定。
其中,对深度图的扫描方式可以为从左到右,也可以从右到左等,此处不进行具体限定。通过采用从左到右的方式扫描深度图的深度信息,避免了处于边缘位置处的场景模型的深度信息的遗漏,使得筛选出的深度图的有效屏幕坐标范围更加完整和精确。
在确定出深度图中的有效屏幕坐标范围后,即可执行步骤S320,根据深度图中的有效屏幕坐标范围,构建相应的四叉树。根据前面所述,在进行四叉树的构建时,可以实时判断或检测当前所构建的四叉树是否达到预先设置的收敛条件(其中,收敛条件可以为当前所构建的四叉树的各块的像素个数大于或等于16),在达到收敛条件后即可停止四叉树的下一步划分。
参阅图3,在构建出相应的四叉树后,即可执行步骤S410,遍历场景图中的各场景模型,并通过步骤S420,获取各场景模型的屏幕空间位置以及各场景模型的最小深度值。
其中,在一种可能的实现方式中,获取各场景模型的屏幕空间位置以及各场景模型的最小深度值,可以通过以下方式来实现。
即,首先基于场景图获取各场景模型的包围盒信息,并将包围盒的八个角点的模型空间坐标转换为屏幕空间,由此即可得到各场景模型的屏幕空间位置。其中,转换方式可以通过模型空间坐标转屏幕空间的公式来实现。具体的,模型空间坐标转屏幕空间的公式为:
Coords=Coordm×M×V×P×W;
其中,Coordm为角点模型空间坐标;Coords为角点屏幕空间坐标;M为场景模型的模型矩阵;V为虚拟相机的视图矩阵;P为虚拟相机的投影矩阵;W为虚拟相机的视口矩阵;角点的深度值为角点屏幕空间坐标的z值。
进而,再根据各场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各场景模型的包围盒的八个角点的深度值。再由八个角点的深度值中提取出数值最小的深度值作为各场景模型的最小深度值。
此处,需要指出的是,获取各场景模型的最小深度值也可以通过其他方式计算出各场景模型的包围盒的八个角点中的最小深度值来实现,其不局限于上述一种方式。
在获取到各场景模型的屏幕空间位置以及各场景模型的最小深度值之后,即可通过步骤S500,基于各场景模型的屏幕空间位置以及各场景模型的最小深度值,遍历四叉树,确定各场景模型的遮挡结果。
其中,参阅图3,在一种可能的实现方式中,可以首先通过步骤S510,基于各场景模型的屏幕空间位置,遍历四叉树,并通过步骤S520,确定各场景模型是否到达至四叉树中的叶节点。即,通过遍历四叉树,判断当前的场景模型是否处于四叉树的叶节点位置。在判断出当前的场景模型处于四叉树的叶节点位置,则表明该场景模型没有被遮挡,因此可以通过步骤S530,直接确定当前的场景模型的遮挡结果为未被遮挡。在判断出当前的场景模型没有处于四叉树的叶节点(即,当前的场景模型未到达至四叉树的叶节点)时,此时还不能直接确定该场景模型的遮挡结果。因此,还需要通过步骤S540,基于各场景模型的最小深度,确定各场景模型的遮挡结果。
进一步地,在基于各场景模型的最小深度值并结合四叉树,确定各场景模型的遮挡结果时,首先需要通过步骤S541,判断场景模型的最小深度值是否大于四叉树的当前节点中的最大深度值。此处,需要指出的是,当前节点为场景模型在四叉树中的当前节点位置。如:通过前面所述的方式确定当前的场景模型处于四叉树中的第二层节点位置处,则在判断该场景模型的最小深度值是否大于四叉树的当前节点中的最大深度值时,只需要判断该场景模型的最小深度值是否大于四叉树的第二层节点中最大深度值即可。在场景模型的最小深度值大于四叉树的当前节点的最大深度值时,可通过步骤S542,确定该场景模型的遮挡结果为被遮挡。在场景模型的最小深度值小于或等于四叉树的当前节点的最大深度值时,则可返回步骤S510,继续遍历四叉树,并通过根据各场景模型的屏幕空间位置以及各场景模型的最小深度值,确定各场景模型的遮挡结果。
此处,本领域技术人员可以理解的是,在判断出场景模型的最小深度值小于或等于四叉树的当前节点的最大深度值时,在继续遍历四叉树进行该场景模型的遮挡结果确定过程中,此时遍历四叉树的节点位置为四叉树的当前节点的下一级节点位置。也就是说,此时所遍历的四叉树的深度相较于前一次遍历四叉树的深度要深一层。
举例来说,在本申请的大规模场景遮挡剔除方法中,所构建的四叉树的深度至少包括两层。首层节点包括数据块A、数据块B、数据块C和数据块D。数据块A的下一级节点包括数据块A1、数据块A2、数据块A3和数据块A4,数据块B的下一级节点包括数据块B1、数据块B2、数据块B3和数据块B4。其中,数据块A和数据块B均为根节点,数据块C和数据块D均为叶节点。同时,数据块A1、数据块A2、数据块A3和数据块A4,以及数据块B1、数据块B2、数据块B3和数据块B4均为叶节点。
基于以上数据结构的四叉树,在当前次的判断过程中,通过当前正在判断的场景模型的屏幕空间位置,确定该场景模型处于四叉树的数据块A的位置处,即,该场景模型未到达四叉树的叶节点。因此,此时还需要根据该场景模型的最小深度值与四叉树的当前节点位置处的最大深度值进行比较(即,对数据块A、数据块B、数据块C和数据块D中深度值最大的值)。在该场景模型的最小深度值大于四叉树的当前节点位置处的最大深度值时,表明有其他的场景模型距离虚拟相机的位置要比该场景模型距离虚拟相机的位置近,这也就说明当前的场景模型被遮挡了,因此可以直接确定该场景模型的遮挡结果为被遮挡。在该场景模型的最小深度值小于或等于四叉树的当前节点位置处的最大深度值时,则此时需要继续遍历四叉树的下一级节点(即,数据块A1、数据块A2、数据块A3和数据块A4所在的节点级别)进行相应的判断。
由此,通过上述逐层遍历四叉树的方式,将场景图中的各场景模型均判断完成之后,即可得到场景图中各场景模型的遮挡结果。其中,在一种可能的实现方式中,可以将遮挡结果为被遮挡的场景模型由渲染队列中剔除出去。
进一步地,参阅图3,在一种可能的实现方式中,为了更进一步地提高剔除结果的精确度,还可以包括步骤S550,判断场景图中的各场景模型是否均遍历完毕,在将场景图中的所有场景模型均遍历完毕之后即可直接进行剔除渲染的操作。在判断出场景图中还有部分场景模型没有进行遍历,此时则返回步骤S410,继续进行场景图中的场景模型的遍历,以实现将剩余部分的场景模型进行遮挡的判断,直至将场景图中的所有场景模型均遍历完毕为止。
参阅图4和图5,分别为采用本申请的大规模场景遮挡剔除方法进行剔除后的渲染结果图和未采用本申请的大规模场景模型遮挡剔除方法进行剔除的渲染结果图。通过两幅图的显示效果对比,可以看出开启深度图剔除后,大量减少了当前所需渲染的场景模型数量,从而有效地提高了场景绘制的速度。
另外,还需要指出的是,在遍历场景图中的场景模型,对各场景模型进行遮挡结果的确定过程中,可以在判断出一个场景模型的遮挡结果后便直接进行相应的剔除渲染操作,也可以将所有的场景模型的遮挡结果都确定完毕之后再统一进行相应的剔除渲染操作,在本申请中不进行具体限定。
相应的,基于前面任一所述的大规模场景模型遮挡剔除方法,本申请还提供了一种大规模场景模型遮挡剔除装置。由于本申请提供的大规模场景模型遮挡剔除装置的工作原理与本申请的大规模场景模型遮挡剔除方法的原理相同或相似,因此重复之处不再赘述。
参阅图6,本申请的大规模场景遮挡剔除装置100包括数据组织模块110、相机构建模块120、深度图创建模块130、有效范围确定模块140、四叉树构建模块150、空间位置获取模块160、最小深度值获取模块170、遮挡结果确定模块180和剔除处理模块190。
其中,数据组织模块110,被配置为对大规模场景数据进行组织,得到与大规模场景数据相应的场景图。相机构建模块120,被配置为根据空间相机参数构建三维场景中的虚拟相机。深度图创建模块130,被配置为创建与虚拟相机相匹配的深度图;其中,深度图中包含场景图中各场景模型的深度。有效范围确定模块140,被配置为确定深度图的有效屏幕坐标范围。四叉树构建模块150,被配置为根据有效屏幕坐标范围构建四叉树;其中,四叉树的各块中像素个数大于或等于预设数值。空间位置获取模块160,被配置为遍历场景图中的各场景模型,并基于深度图获取各场景模型的屏幕空间位置。最小深度值获取模块170,被配置为遍历场景图中的各场景模型,并基于深度图各场景模型的最小深度值。遮挡结果确定模块180,被配置为基于各场景模型的屏幕空间位置以及各场景模型的最小深度值并结合四叉树,确定各场景模型的遮挡结果。剔除处理模块190,被配置为将确定出遮挡结果为被遮挡的场景模型进行剔除处理。
更进一步地,根据本公开的另一方面,还提供了一种大规模场景遮挡剔除设备200。参阅图7,本公开实施例大规模场景遮挡剔除设备200包括处理器210以及用于存储处理器210可执行指令的存储器220。其中,处理器210被配置为执行可执行指令时实现前面任一所述的大规模场景遮挡剔除方法。
此处,应当指出的是,处理器210的个数可以为一个或多个。同时,在本公开实施例的大规模场景遮挡剔除设备200中,还可以包括输入装置230和输出装置240。其中,处理器210、存储器220、输入装置230和输出装置240之间可以通过总线连接,也可以通过其他方式连接,此处不进行具体限定。
存储器220作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序和各种模块,如:本公开实施例的大规模场景遮挡剔除方法所对应的程序或模块。处理器210通过运行存储在存储器220中的软件程序或模块,从而执行大规模场景遮挡剔除设备200的各种功能应用及数据处理。
输入装置230可用于接收输入的数字或信号。其中,信号可以为产生与设备/终端/服务器的用户设置以及功能控制有关的键信号。输出装置240可以包括显示屏等显示设备。
根据本公开的另一方面,还提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器210执行时实现前面任一所述的大规模场景遮挡剔除方法。
以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (6)
1.一种大规模场景遮挡剔除方法,其特征在于,包括:
对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
根据空间相机参数构建三维场景中的虚拟相机,并创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
确定所述深度图的有效屏幕坐标范围,并根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值;
基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;
将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理;
其中,根据空间相机参数构建三维场景中的虚拟相机时,包括获取所述空间相机参数,并根据所述空间相机参数得到所述虚拟相机的投影矩阵的步骤;
其中,所述空间相机参数包括:视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种;
所述投影矩阵为:
其中,near为所述虚拟相机椎体内的近裁剪平面,far为所述虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界;
其中,各所述场景模型的深度包括各所述场景模型相对于所述虚拟相机的距离;
其中,创建与所述虚拟相机相匹配的深度图包括:
获取所述场景图中各所述场景模型相对于所述虚拟相机的距离,并创建与所述虚拟相机的视口宽度和视口高度相匹配的初始深度图;
将各所述场景模型相对于所述虚拟相机的距离实时渲染至所述初始深度图后,得到相应的所述深度图;
其中,各所述场景模型相对于所述虚拟相机的距离通过公式:计算得到;
其中,z为视点距离,Zc为深度;
其中,获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,包括:
基于所述场景图获取各所述场景模型的包围盒信息,并将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间,得到相应的各场景模型的屏幕空间位置;
根据各所述场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各所述场景模型的包围盒的八个角点的深度值;
由八个角点的深度值中提取出数值最小的深度值作为各所述场景模型的最小深度值;
其中,将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间时,通过公式:Coords=Coordm×M×V×P×W转换得到;
其中,Coordm为角点模型空间坐标;Coords为角点屏幕空间坐标;M为所述场景模型的模型矩阵;V为所述虚拟相机的视图矩阵;P为所述虚拟相机的投影矩阵;W为所述虚拟相机的视口矩阵;角点的深度值为角点屏幕空间坐标的z值;
其中,基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果,包括:
基于各所述场景模型的屏幕空间位置,遍历所述四叉树,确定各所述场景模型是否到达至所述四叉树中的叶节点;
在所述场景模型到达至所述四叉树中的叶节点时,确定所述遮挡结果为未被遮挡;
在所述场景模型未到达至所述四叉树中的叶节点时,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
2.根据权利要求1所述的方法,其特征在于,所述有效屏幕坐标范围为包含所述深度图中所有场景模型的深度信息的最小矩形区域;
所述预设数值的取值为16。
3.根据权利要求1所述的方法,其特征在于,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果,包括:
判断所述场景模型的最小深度值是否大于所述四叉树的当前节点中的最大深度值;其中,所述当前节点为所述场景模型在所述四叉树中的当前位置;
在所述场景模型的最小深度值大于所述四叉树的当前节点的最大深度值时,确定所述遮挡结果为被遮挡;
在所述场景模型的最小深度值小于或等于所述四叉树的当前节点的最大深度值时,遍历所述四叉树的当前节点的下一级节点,并根据各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
4.一种大规模场景遮挡剔除装置,其特征在于,包括数据组织模块、相机构建模块、深度图创建模块、有效范围确定模块、四叉树构建模块、空间位置获取模块、最小深度值获取模块、遮挡结果确定模块和剔除处理模块;
所述数据组织模块,被配置为对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
所述相机构建模块,被配置为根据空间相机参数构建三维场景中的虚拟相机;
所述深度图创建模块,被配置为创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
所述有效范围确定模块,被配置为确定所述深度图的有效屏幕坐标范围;
所述四叉树构建模块,被配置为根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
所述空间位置获取模块,被配置为遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置;
所述最小深度值获取模块,被配置为遍历所述场景图中的各所述场景模型,并获取各所述场景模型的最小深度值;
所述遮挡结果确定模块,被配置为基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;
所述剔除处理模块,被配置为将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理;
其中,根据空间相机参数构建三维场景中的虚拟相机时,包括获取所述空间相机参数,并根据所述空间相机参数得到所述虚拟相机的投影矩阵的步骤;
其中,所述空间相机参数包括:视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种;
所述投影矩阵为:
其中,near为所述虚拟相机椎体内的近裁剪平面,far为所述虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界;
其中,各所述场景模型的深度包括各所述场景模型相对于所述虚拟相机的距离;
其中,创建与所述虚拟相机相匹配的深度图包括:
获取所述场景图中各所述场景模型相对于所述虚拟相机的距离,并创建与所述虚拟相机的视口宽度和视口高度相匹配的初始深度图;
将各所述场景模型相对于所述虚拟相机的距离实时渲染至所述初始深度图后,得到相应的所述深度图;
其中,各所述场景模型相对于所述虚拟相机的距离通过公式:计算得到;
其中,z为视点距离,Zc为深度;
其中,获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,包括:
基于所述场景图获取各所述场景模型的包围盒信息,并将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间,得到相应的各场景模型的屏幕空间位置;
根据各所述场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各所述场景模型的包围盒的八个角点的深度值;
由八个角点的深度值中提取出数值最小的深度值作为各所述场景模型的最小深度值;
其中,将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间时,通过公式:Coords=Coordm×M×V×P×W转换得到;
其中,Coordm为角点模型空间坐标;Coords为角点屏幕空间坐标;M为所述场景模型的模型矩阵;V为所述虚拟相机的视图矩阵;P为所述虚拟相机的投影矩阵;W为所述虚拟相机的视口矩阵;角点的深度值为角点屏幕空间坐标的z值;
其中,基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果,包括:
基于各所述场景模型的屏幕空间位置,遍历所述四叉树,确定各所述场景模型是否到达至所述四叉树中的叶节点;
在所述场景模型到达至所述四叉树中的叶节点时,确定所述遮挡结果为未被遮挡;
在所述场景模型未到达至所述四叉树中的叶节点时,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
5.一种大规模场景遮挡剔除设备,其特征在于,包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述可执行指令时实现权利要求1至3中任意一项所述的方法。
6.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1至3中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107500.4A CN112802175B (zh) | 2019-11-13 | 2019-11-13 | 大规模场景遮挡剔除方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911107500.4A CN112802175B (zh) | 2019-11-13 | 2019-11-13 | 大规模场景遮挡剔除方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112802175A CN112802175A (zh) | 2021-05-14 |
CN112802175B true CN112802175B (zh) | 2023-09-19 |
Family
ID=75803207
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911107500.4A Active CN112802175B (zh) | 2019-11-13 | 2019-11-13 | 大规模场景遮挡剔除方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112802175B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114900679B (zh) * | 2022-05-25 | 2023-11-21 | 安天科技集团股份有限公司 | 一种三维模型展示方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN104331918A (zh) * | 2014-10-21 | 2015-02-04 | 无锡梵天信息技术股份有限公司 | 基于深度图实时绘制室外地表遮挡剔除以及加速方法 |
WO2017201751A1 (zh) * | 2016-05-27 | 2017-11-30 | 北京大学深圳研究生院 | 虚拟视点视频、图像的空洞填充方法、装置和终端 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104134230B (zh) * | 2014-01-22 | 2015-10-28 | 腾讯科技(深圳)有限公司 | 一种图像处理方法、装置及计算机设备 |
US9697647B2 (en) * | 2014-04-28 | 2017-07-04 | The Regents Of The University Of Michigan | Blending real and virtual construction jobsite objects in a dynamic augmented reality scene of a construction jobsite in real-time |
-
2019
- 2019-11-13 CN CN201911107500.4A patent/CN112802175B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6574360B1 (en) * | 1999-07-23 | 2003-06-03 | International Business Machines Corp. | Accelerated occlusion culling using directional discretized occluders and system therefore |
CN104331918A (zh) * | 2014-10-21 | 2015-02-04 | 无锡梵天信息技术股份有限公司 | 基于深度图实时绘制室外地表遮挡剔除以及加速方法 |
WO2017201751A1 (zh) * | 2016-05-27 | 2017-11-30 | 北京大学深圳研究生院 | 虚拟视点视频、图像的空洞填充方法、装置和终端 |
Non-Patent Citations (3)
Title |
---|
Quadtree-based eigendecomposition for pose estimation in the presence of occlusion and background clutter;Chu-Yin Chang 等;《Theoretical Advances》;第10卷;15-31 * |
一种偏振普适性多尺度实时的图像去雾算法;吕晓宁 等;《光子学报》;第48卷(第8期);0810003-1-11 * |
基于多核融合的目标大面积遮挡处理方法;肖鹏 等;《北京航空航天大学学报》;第38卷(第6期);829-834、841 * |
Also Published As
Publication number | Publication date |
---|---|
CN112802175A (zh) | 2021-05-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113192179B (zh) | 一种基于双目立体视觉的三维重建方法 | |
CN111598916A (zh) | 一种基于rgb-d信息的室内占据栅格地图的制备方法 | |
US8368714B2 (en) | Curved surface rendering system and method | |
CN111028350B (zh) | 一种利用双目立体相机构建栅格地图的方法 | |
CN110349092B (zh) | 一种点云滤波方法及设备 | |
CN111080662A (zh) | 车道线的提取方法、装置及计算机设备 | |
EP3736776A1 (en) | Apparatus, system and method for the generation of polygonal meshes | |
CN115330940B (zh) | 一种三维重建方法、装置、设备和介质 | |
CN112488910A (zh) | 点云优化方法、装置及设备 | |
CN114332134B (zh) | 一种基于密集点云的建筑物立面提取方法和装置 | |
TWI716874B (zh) | 影像處理裝置、影像處理方法、及影像處理程式 | |
US11651533B2 (en) | Method and apparatus for generating a floor plan | |
CN112802175B (zh) | 大规模场景遮挡剔除方法、装置、设备及存储介质 | |
CN114782645A (zh) | 虚拟数字人制作方法、相关设备及可读存储介质 | |
JP2020098421A (ja) | 三次元形状モデル生成装置、三次元形状モデル生成方法、及びプログラム | |
CN116468838B (zh) | 一种区域资源渲染方法、系统、计算机及可读存储介质 | |
CN116310060B (zh) | 一种渲染数据的方法、装置、设备及存储介质 | |
CN111870953A (zh) | 一种高度图生成方法、装置、设备及存储介质 | |
CN113744416B (zh) | 一种基于遮罩的全局点云滤波方法、设备和存储介质 | |
CN112991525B (zh) | 像方和物方混合匹配基元的数字表面模型生成方法 | |
CN114332411A (zh) | 一种三维图形实时网格的生成方法 | |
CN114708382A (zh) | 基于增强现实的三维建模方法、装置、存储介质、设备 | |
CN114170367A (zh) | 无限视距椎状热图渲染的方法、装置、存储介质和设备 | |
CN113592976A (zh) | 地图数据的处理方法、装置、家用电器和可读存储介质 | |
WO2012076757A1 (en) | Method, system, processing unit and computer program product for point cloud visualization |
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 |