大规模场景遮挡剔除方法、装置、设备及存储介质制造方法及图纸

技术编号:28445929 阅读:14 留言:0更新日期:2021-05-15 21:06
本申请涉及一种大规模场景遮挡剔除方法,包括:对大规模场景数据进行组织,得到与大规模场景数据相应的场景图;根据空间相机参数构建三维场景中的虚拟相机,并创建与虚拟相机相匹配的深度图;确定深度图的有效屏幕坐标范围,并根据有效屏幕坐标范围构建四叉树;遍历场景图中的各场景模型,并获取各场景模型的屏幕空间位置以及各场景模型的最小深度值;基于各场景模型的屏幕空间位置以及各场景模型的最小深度值,遍历四叉树,确定各场景模型的遮挡结果;将确定出遮挡结果为被遮挡的场景模型进行剔除处理。相较于相关技术中计算原始的PVS方式,降低了场景实时绘制过程中对内存的消耗,提高了大规模场景数据的绘制速度。提高了大规模场景数据的绘制速度。提高了大规模场景数据的绘制速度。

【技术实现步骤摘要】
大规模场景遮挡剔除方法、装置、设备及存储介质


[0001]本公开涉及计算机视觉
,尤其涉及一种大规模场景遮挡剔除方法、装置、设备及存储介质。

技术介绍

[0002]大规模复杂场景的可见性问题是研究虚拟现实、实时仿真以及三维交互设计等许多重要应用的基础。遮挡剔除算法是可见性问题研究中的支撑技术,可以大量减少当前所需渲染的场景模型数量,对于大规模场景实时绘制能够起到明显的优化作用。
[0003]在大多数的三维可视化软件中,通过采用预计算原始的PVS(潜在可见物体集)来判断场景中模型之间的遮挡关系,从而再过滤掉被遮挡的模型。但是,预计算原始的PVS需要占用额外的大量内存,可见性烘焙时间较长。

技术实现思路

[0004]有鉴于此,本公开提出了一种大规模场景遮挡剔除方法,可以有效减少内存消耗,提高渲染效率。
[0005]根据本公开的一方面,提供了一种大规模场景遮挡剔除方法,包括:
[0006]对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
[0007]根据空间相机参数构建三维场景中的虚拟相机,并创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
[0008]确定所述深度图的有效屏幕坐标范围,并根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
[0009]遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值;
[0010]基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;
[0011]将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理。
[0012]在一种可能的实现方式中,根据空间相机参数构建三维场景中的虚拟相机时,包括获取所述空间相机参数,并根据所述空间相机参数得到所述虚拟相机的投影矩阵的步骤;
[0013]其中,所述空间相机参数包括:视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种;
[0014]所述投影矩阵为:
[0015]其中,near为所述虚拟相机椎体内的近裁剪平面,far为所述虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界。
[0016]在一种可能的实现方式中,各所述场景模型的深度包括各所述场景模型相对于所述虚拟相机的距离;
[0017]其中,创建与所述虚拟相机相匹配的深度图包括:
[0018]获取所述场景图中各所述场景模型相对于所述虚拟相机的距离,并创建与所述虚拟相机的视口宽度和视口高度相匹配的初始深度图;
[0019]将各所述场景模型相对于所述虚拟相机的距离实时渲染至所述初始深度图后,得到相应的所述深度图;
[0020]其中,各所述场景模型相对于所述虚拟相机的距离通过公式:计算得到;
[0021]其中,z为视点距离,Z
c
为深度。
[0022]在一种可能的实现方式中,所述有效屏幕坐标范围为包含所述深度图中所有场景模型的深度信息的最小矩形区域;
[0023]所述预设数值的取值为16。
[0024]在一种可能的实现方式中,获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,包括:
[0025]基于所述场景图获取各所述场景模型的包围盒信息,并将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间,得到相应的各场景模型的屏幕空间位置;
[0026]根据各所述场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各所述场景模型的包围盒的八个角点的深度值;
[0027]由八个角点的深度值中提取出数值最小的深度值作为各所述场景模型的最小深度值;
[0028]其中,将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间时,通过公式:Coord
s
=Coord
n
×
M
×
V
×
P
×
W转换得到;
[0029]其中,Coord
m
为角点模型空间坐标;Coord
s
为角点屏幕空间坐标;M为所述场景模型的模型矩阵;V为所述虚拟相机的视图矩阵;P为所述虚拟相机的投影矩阵;W为所述虚拟相机的视口矩阵;角点的深度值为角点屏幕空间坐标的z值。
[0030]在一种可能的实现方式中,基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果,包括:
[0031]基于各所述场景模型的屏幕空间位置,遍历所述四叉树,确定各所述场景模型是否到达至所述四叉树中的叶节点;
[0032]在所述场景模型到达至所述四叉树中的叶节点时,确定所述遮挡结果为未被遮挡;
[0033]在所述场景模型未到达至所述四叉树中的叶节点时,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
[0034]在一种可能的实现方式中,基于各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果,包括:
[0035]判断所述场景模型的最小深度值是否大于所述四叉树的当前节点中的最大深度值;其中,所述当前节点为所述场景模型在所述四叉树中的当前位置;
[0036]在所述场景模型的最小深度值大于所述四叉树的当前节点的最大深度值时,确定所述遮挡结果为被遮挡;
[0037]在所述场景模型的最小深度值小于或等于所述四叉树的当前节点的最大深度值时,遍历所述四叉树的当前节点的下一级节点,并根据各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,确定各所述场景模型的遮挡结果。
[0038]根据本申请的另一方面,还提供了一种大规模场景遮挡剔除装置,包括数据组织模块、相机构建模块、深度图创建模块、有效范围确定模块、四叉树构建模块、空间位置获取模块、最小深度值获取模块、遮挡结果确定模块和剔除处理模块;
[0039]所述数据组织模块,被配置为对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;
[0040]所述相机构建模块,被配置为根据空间相机参数构建三维场景中的虚拟相机;
[0041]所述深度图创建模块,被配置为创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;
[0042]所述有效范围确定模块,被配置为确定所述深度图的有效屏幕坐标范围;
[0043]所述四叉树构建模块,被配置为根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;
[0044]所述空间位置获取模块,被配置为遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置;
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种大规模场景遮挡剔除方法,其特征在于,包括:对大规模场景数据进行组织,得到与所述大规模场景数据相应的场景图;根据空间相机参数构建三维场景中的虚拟相机,并创建与所述虚拟相机相匹配的深度图;其中,所述深度图中包含所述场景图中各场景模型的深度;确定所述深度图的有效屏幕坐标范围,并根据所述有效屏幕坐标范围构建四叉树;其中,所述四叉树的各块中像素个数大于或等于预设数值;遍历所述场景图中的各所述场景模型,并获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值;基于各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,遍历所述四叉树,确定各所述场景模型的遮挡结果;将确定出所述遮挡结果为被遮挡的场景模型进行剔除处理。2.根据权利要求1所述的方法,其特征在于,根据空间相机参数构建三维场景中的虚拟相机时,包括获取所述空间相机参数,并根据所述空间相机参数得到所述虚拟相机的投影矩阵的步骤;其中,所述空间相机参数包括:视点位置、视角中心、视口宽度、视口高度、相机角度、近平面和远平面中的至少一种;所述投影矩阵为:其中,near为所述虚拟相机椎体内的近裁剪平面,far为所述虚拟相机椎体内的远裁剪平面,top为近裁剪平面的视觉顶点,bottom为近裁剪平面的视觉低点,left为近裁剪平面的左边界,right为近裁剪平面的右边界。3.根据权利要求1所述的方法,其特征在于,各所述场景模型的深度包括各所述场景模型相对于所述虚拟相机的距离;其中,创建与所述虚拟相机相匹配的深度图包括:获取所述场景图中各所述场景模型相对于所述虚拟相机的距离,并创建与所述虚拟相机的视口宽度和视口高度相匹配的初始深度图;将各所述场景模型相对于所述虚拟相机的距离实时渲染至所述初始深度图后,得到相应的所述深度图;其中,各所述场景模型相对于所述虚拟相机的距离通过公式:计算得到;其中,z为视点距离,Z
c
为深度。4.根据权利要求1所述的方法,其特征在于,所述有效屏幕坐标范围为包含所述深度图中所有场景模型的深度信息的最小矩形区域;所述预设数值的取值为16。
5.根据权利要求1至4任一项所述的方法,其特征在于,获取各所述场景模型的屏幕空间位置以及各所述场景模型的最小深度值,包括:基于所述场景图获取各所述场景模型的包围盒信息,并将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间,得到相应的各场景模型的屏幕空间位置;根据各所述场景模型的包围盒的八个角点的屏幕空间坐标,计算得到各所述场景模型的包围盒的八个角点的深度值;由八个角点的深度值中提取出数值最小的深度值作为各所述场景模型的最小深度值;其中,将各所述场景模型的包围盒的八个角点的模型空间坐标转换到屏幕空间时,通过公式:Coord
s
=Coord
m
×
M
×
V
×
P
×
W转换得到;其中,Coord
m
为角点模型空间坐标;Coord
...

【专利技术属性】
技术研发人员:王亮肖鹏
申请(专利权)人:北京博超时代软件有限公司
类型:发明
国别省市:

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

1