三维模型遮挡体选取方法、系统、计算机设备及可读介质与流程

文档序号:15615954发布日期:2018-10-09 21:23阅读:227来源:国知局

本发明涉及三维模型遮挡体选取方法。更具体地,涉及一种三维模型遮挡体选取方法、系统、计算机设备及可读介质。



背景技术:

复杂产品三维模型(如波音777客机的整机三维模型)包含的零部件数量极多(数万至数百万),零部件之间的遮挡关系复杂,实时绘制难度大,通常需要采用遮挡剔除技术来实时剔除掉被遮挡(不可见)的物体以加速绘制。

现有的遮挡体选取主要采用两种方法:

(1)选取场景中包围球或轴向包围盒较大的物体。这种方法首先计算场景中每一物体的包围球或轴向包围盒,然后按照包围球或包围盒的体积大小进行排序,选取体积较大的一定数量的物体作为遮挡体。

(2)选取场景中面片数较多的物体。这种方法首先计算场景中每一物体的三角面片数量,然后按照面片数进行排序,选取面片数较大的一定数量的物体作为遮挡体。

复杂产品三维模型包含了许多不规则形状的物体(比如在波音777客机模型中任意弯曲的较长的线缆、管路),这些物体通常有较大的包围球、轴向包围盒或较多的面片数量,自身形状狭长不规则。利用包围球或轴向包围盒的体积作为模型大小的近似计算极不准确。这些不规则形状的物体对场景中其它物体构成遮挡的几率较小,在任何视角下均不适合被选取为遮挡体。此外,随物体相对视点的朝向发生变化,其对其它物体所构成的遮挡关系也会发生变化,现有选取方法未考虑此因素,容易将这些不规则形状的物体选取为遮挡体,从而导致剔除效率低。



技术实现要素:

本发明第一方面提供一种三维模型遮挡体选取方法,包括:

加载三维模型,三维模型中包括多个物体;

计算三维模型中每个物体的近似最小包围盒;

基于所述多个物体的近似最小包围盒与用户视角范围的位置得到候选遮挡体集;

计算候选遮挡体集中每个候选遮挡体的权重;

按照权重大小对候选遮挡体集中的多个候选遮挡体排序,并按序选择预设数量的需要剔除的候选遮挡体。

在一个优选的实施例中,所述计算三维模型的场景中物体的近似最小包围盒包括:

输入三维模型的顶点坐标,构建三维随机变量,其中,所述顶点坐标表示为(xi,yi,zi),所述三维随机变量表示为(x,y,z);

建立协方差矩阵,所述协方差矩阵表示为:

对所述协方差矩阵进行相似变换,所述相似变换表示为:

其中,a1表示协方差矩阵,a2表示相似变换矩阵,w1-w9形成的矩阵为a1矩阵的逆矩阵,n1-n3形成的矩阵为a1矩阵的对角矩阵;

获取a2的三个特征向量:v1=(m1,m2,m3)t,v2=(m4,m5,m6)t,v3=(m7,m8,m9)t,每个特征向量对应所述近似最小包围盒的其中一个轴的方向;

计算所述三个特征向量的特征值,获取特征值最大的特征向量,该特征向量的方向为模型的最长轴方向;

计算三维模型的每个顶点分别在三个特征向量所在的轴的投影,获取所述近似最小包围盒的中心点和长宽高。

在另一个优选的实施例中,所述基于所述近似最小包围盒获取候选遮挡体集包括:

建立三维模型顶点在世界坐标系中的坐标,所述世界坐标系中的三维模型顶点坐标表示为:(x,y,z,1);

将该世界坐标系中的坐标变换至裁剪坐标系下的坐标,所述变换的公式为:

p′=pmvp,其中,当前模型矩阵为m,视图矩阵为v,投影矩阵为p,顶点p′为齐次坐标p′(xc,yc,zc,wc);

标准化p′,获得裁剪坐标系下的顶点坐标,其中,标准化的公式为:

选取裁剪坐标系下的顶点坐标满足选取公式的候选遮挡体,选取的候选遮挡体共同形成候选遮挡体集,其中,所述选取公式为:

在又一个优选的实施例中,所述计算候选遮挡体集中每个候选遮挡体的权重的计算公式为:

其中,s表示物体的体积大小,表示物体近似最小包围盒的最大面的法向量,表示沿视点方向的单位矢量,l表示物体中心与视点之间的距离,w表示每个候选遮挡体的权重。

本发明第二方面提供一种三维模型遮挡体选取系统,包括:

加载模块,加载三维模型,三维模型中包括多个物体;

计算模块,计算三维模型中每个物体的近似最小包围盒;

获取模块,基于所述多个物体的近似最小包围盒与用户视角范围的位置得到候选遮挡体集;

权重计算模块,计算候选遮挡体集中每个候选遮挡体的权重;

排序选择模块,按照权重大小对候选遮挡体集中的多个候选遮挡体排序,并按序选择预设数量的需要剔除的候选遮挡体。

在一个优选的实施例中,所述计算模块包括:

随机变量单元,输入三维模型的顶点坐标,构建三维随机变量,其中,所述顶点坐标表示为(xi,yi,zi),所述三维随机变量表示为(x,y,z);

矩阵单元,建立协方差矩阵,所述协方差矩阵表示为:

对所述协方差矩阵进行相似变换,所述相似变换表示为:

其中,a1表示协方差矩阵,a2表示相似变换矩阵,w1-w9形成的矩阵为a1矩阵的逆矩阵,n1-n3形成的矩阵为a1矩阵的对角矩阵;

特征向量单元,获取a2的三个特征向量:v1=(m1,m2,m3)t,v2=(m4,m5,m6)t,v3=(m7,m8,m9)t,每个特征向量对应所述近似最小包围盒的其中一个轴的方向,并计算所述三个特征向量的特征值,获取最大特征值的特征向量,该方向为模型的最长轴方向;

计算单元,计算三维模型的每个顶点分别在三个特征向量所在的轴的投影,获取所述近似最小包围盒的中心点和长宽高。

在另一个优选的实施例中,所述获取模块包括:

第一坐标系转换单元,建立三维模型顶点在世界坐标系中的坐标,所述世界坐标系中的三维模型顶点坐标表示为:(x,y,z,1);

第二坐标系转换单元,将该世界坐标系中的坐标变换至裁剪坐标系下的坐标,所述变换的公式为:

p′=pmvp,其中,当前模型矩阵为m,视图矩阵为v,投影矩阵为p,顶点p′为齐次坐标p′(xc,yc,zc,wc);

标准化单元,标准化p′,获得裁剪坐标系下的顶点坐标,其中,标准化的公式为:

选取单元,选取裁剪坐标系下的顶点坐标满足选取公式的候选遮挡体,选取的候选遮挡体共同形成候选遮挡体集,其中,所述选取公式为:

在又一个优选的实施例中,所述每个候选遮挡体的权重被配置为通过下式计算得到:

其中,s表示物体的体积大小,表示物体近似最小包围盒的最大面的法向量,表示沿视点方向的单位矢量,l表示物体中心与视点之间的距离,w表示每个候选遮挡体的权重。

本发明第三方面提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1-4任一项所述方法。

本发明第四方面提供一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1-4任一项所述方法。

本发明的有益效果如下:

本发明提供一种三维模型遮挡体选取方法、系统、计算机设备及可读介质,针对现有遮挡体选取方法容易出现遮挡体选取不当的问题,能够有效解决现有两种遮挡体选取方法难以适应大规模复杂三维模型的问题,可以更加快速准确地将遮挡体选取出来,使得大规模复杂三维模型的遮挡剔除效率得到显著提高。

附图说明

下面结合附图对本发明的具体实施方式作进一步详细的说明。

图1示出某舱门零件的各种包围体的对比图。

图2示出本发明第一方面实施例提供的一种三维模型遮挡体选取方法场景示意图。

图3示出本发明第一方面实施例提供的一种三维模型遮挡体选取方法流程示意图。

图4示出图3中s200步骤的流程示意图。

图5示出图3中s300步骤的流程示意图。

图6示出本发明第二方面实施例提供的一种三维模型遮挡体选取系统结构示意图。

图7示出图6中计算模块602的结构示意图。

图8示出图6中获取模块603的结构示意图。

图9示出适用于用来实现本发明实施例的终端设备或服务器的计算机设备的结构示意图。

具体实施方式

为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。

复杂产品三维模型包含了许多不规则形状的物体(比如在波音777客机模型中任意弯曲的较长的线缆、管路),这些物体通常有较大的包围球、轴向包围盒或较多的面片数量,自身形状狭长不规则。利用包围球或轴向包围盒的体积作为模型大小的近似计算极不准确。这些不规则形状的物体对场景中其它物体构成遮挡的几率较小,在任何视角下均不适合被选取为遮挡体。此外,随物体相对视点的朝向发生变化,其对其它物体所构成的遮挡关系也会发生变化,现有选取方法未考虑此因素,容易将这些不规则形状的物体选取为遮挡体,从而导致剔除效率低。

图1为某舱门零件的各种包围体的对比图。其中,11表示包围球,12表示轴向包围盒,13表示近似最小包围盒。从图中可以看出,舱门的三个包围体中,近似最小包围盒的体积最小,其体积最接近舱门体积,且从计算过程可以看出,其体积不受舱门在三维空间任意旋转的影响。

有鉴于此,针对现有遮挡体选取方法容易出现遮挡体选取不当的问题,本发明进行了改进,具体如下所示:

本发明的第一方面提供一种三维模型遮挡体选取方法,图2示出本发明第一方面实施例提供的一种三维模型遮挡体选取方法场景示意图。其中1表示场景中的所有三维模型;2表示三维模型及其近似最小包围盒的计算结果;3表示视锥体;4表示视锥剔除过程;5表示通过视锥剔除的零部件;6表示对通过视锥剔除的零部件进行权重计算;7表示选取到的遮挡体。具体的,请同时结合图3所示,包括:

s100:加载三维模型,三维模型中包括多个物体。

具体的,读取模型文件,加载全部三维模型。计算出每一零部件的包围球,从模型结构树的根节点开始,自顶向下建立二叉树空间分割,创建层次化的包围体。模型加载结果如图2中1所示。

s200:计算三维模型中每个物体的近似最小包围盒。

具体的,采用基于协方差矩阵的方法计算物体的近似最小包围盒。结合图4,s200具体包括:

s201:输入三维模型的顶点坐标,构建三维随机变量,其中,所述顶点坐标表示为(xi,yi,zi),所述三维随机变量表示为(x,y,z);

s202:建立协方差矩阵,所述协方差矩阵表示为:

对所述协方差矩阵进行相似变换,所述相似变换表示为:

其中,a1表示协方差矩阵,a2表示相似变换矩阵,w1-w9形成的矩阵为a1矩阵的逆矩阵,n1-n3形成的矩阵为a1矩阵的对角矩阵;

s204:获取a2的三个特征向量:v1=(m1,m2,m3)t,v2=(m4,m5,m6)t,v3=(m7,m8,m9)t,每个特征向量对应所述近似最小包围盒的其中一个轴的方向;

s205:计算所述三个特征向量的特征值,获取最大特征值的特征向量,该方向为模型的最长轴方向;

s206:计算三维模型的每个顶点分别在三个特征向量所在的轴的投影,获取所述近似最小包围盒的中心点和长宽高。

对于每一个二叉树的叶节点所包含的零部件,以其三维顶点坐标为输入构建三维随机变量,利用上述公式建立协方差矩阵,通过矩阵变换求取矩阵的特征向量,得到近似最小包围盒的三个轴向矢量;再通过顶点坐标在轴向上投影的方法即得出最小包围盒的长宽高。

s300:基于所述多个物体的近似最小包围盒与用户视角范围的位置得到候选遮挡体集。

遮挡剔除本身是需要一定的执行时间的,而计算视锥体外物体的遮挡关系对当前帧图像的生成毫无意义。因而,遮挡体和被测物体必须从视锥体内的物体内选取。在开展遮挡剔除之前先在整个模型上应用视锥剔除算法得到候选遮挡体集。

结合图5,s300具体包括:

s301:建立三维模型顶点在世界坐标系中的坐标,所述世界坐标系中的三维模型顶点坐标表示为:(x,y,z,1);

s302:将该世界坐标系中的坐标变换至裁剪坐标系下的坐标,所述变换的公式为:

p′=pmvp,其中,当前模型矩阵为m,视图矩阵为v,投影矩阵为p,顶点p′为齐次坐标p′(xc,yc,zc,wc);

s303:标准化p′,获得裁剪坐标系下的顶点坐标,其中,标准化的公式为:

s304:选取裁剪坐标系下的顶点坐标满足选取公式的候选遮挡体,选取的候选遮挡体共同形成候选遮挡体集,其中,所述选取公式为:

从二叉树的根节点自顶向下进行视锥剔除,其中根节点和中间节点利用包围球和视锥体(如图2中3所示,其中阴影部分为视锥体)的空间关系进行剔除。若包围球位于视锥体外部,则剔除该节点及其所包含的子节点;若包围球位于视锥体内部,则该节点及其子节点通过视锥剔除;若包围球与视锥体相交,则利用其子节点继续进行视锥剔除测试,直至抵达叶节点。叶节点利用其近似最小包围盒与视锥体的空间关系进行剔除(空间关系同样地分为三类:在视锥体内、在视锥体外、与视锥体相交,如图2中4所示)。通过视锥剔除的零部件如图2中5所示。

s400:计算候选遮挡体集中每个候选遮挡体的权重。

对于每一个通过视锥剔除的零部件(即候选遮挡体),计算其近似最小包围盒体积、近似最小包围盒最大面的法线以及视点到其近似最小包围盒的距离,结合当前视点的方向,利用图2中6所示公式计算其权重。基于此,所述计算候选遮挡体集中每个候选遮挡体的权重的计算公式为:

其中,s表示物体的体积大小,表示与物体近似最小包围盒的最大面的法向量,表示沿视点方向的单位矢量,l表示物体中心与视点之间的距离,w表示每个候选遮挡体的权重。

s500:按照权重大小对候选遮挡体集中的多个候选遮挡体排序,并按序选择预设数量的需要剔除的候选遮挡体。

对候选遮挡体集中的每一个物体进行权重计算并进行排序,选取其中权重较大的固定数量的物体作为遮挡体。固定遮挡体的数量的好处是可以保持每一帧遮挡剔除耗时的稳定,避免因为遮挡体过多导致遮挡体绘制耗时增加。

本发明第一方面提供一种三维模型遮挡体选取方法,针对现有遮挡体选取方法容易出现遮挡体选取不当的问题,能够有效解决现有两种遮挡体选取方法难以适应大规模复杂三维模型的问题,可以更加快速准确地将遮挡体选取出来,使得大规模复杂三维模型的遮挡剔除效率得到显著提高。

本发明第二方面提供一种三维模型遮挡体选取系统,请参见图6所示,包括:加载模块601,加载三维模型;计算模块602,计算三维模型的场景中物体的近似最小包围盒;获取模块603,基于所述近似最小包围盒获取候选遮挡体集;权重计算模块604,计算候选遮挡体集中每个候选遮挡体的权重;排序选择模块605,按照权重大小对每个候选遮挡体排序,并按序选择一定数量候选遮挡体。

进一步的,在一些可选的具体实施例中,结合图7,所述计算模块602包括:随机变量单元6021,输入三维模型的顶点坐标,构建三维随机变量,其中,所述顶点坐标表示为(xi,yi,zi),所述三维随机变量表示为(x,y,z);矩阵单元6022,建立协方差矩阵,所述协方差矩阵表示为:

对所述协方差矩阵进行相似变换,所述相似变换表示为:

其中,a1表示协方差矩阵,a2表示相似变换矩阵,w1-w9形成的矩阵为a1矩阵的逆矩阵,n1-n3形成的矩阵为a1矩阵的对角矩阵;特征向量单元6024,获取a2的三个特征向量:v1=(m1,m2,m3)t,v2=(m4,m5,m6)t,v3=(m7,m8,m9)t,每个特征向量对应所述近似最小包围盒的其中一个轴的方向,并计算所述三个特征向量的特征值,获取最大特征值的特征向量,该方向为模型的最长轴方向;计算单元6025,计算三维模型的每个顶点分别在三个特征向量所在的轴的投影,获取所述近似最小包围盒的中心点和长宽高。

在另一些可选实施例中,所述获取模块603包括:第一坐标系转换单元6031,建立三维模型顶点在世界坐标系中的坐标,所述世界坐标系中的三维模型顶点坐标表示为:(x,y,z,1);第二坐标系转换单元6032,将该世界坐标系中的坐标变换至裁剪坐标系下的坐标,所述变换的公式为:

p′=pmvp,

其中,当前模型矩阵为m,视图矩阵为v,投影矩阵为p,顶点p′为齐次坐标p′(xc,yc,zc,wc);

标准化单元6033,标准化p′,获得裁剪坐标系下的顶点坐标,其中,标准化的公式为:

选取单元6034,选取裁剪坐标系下的顶点坐标满足选取公式的候选遮挡体,选取的候选遮挡体共同形成候选遮挡体集,其中,所述选取公式为:

进一步的,所述每个候选遮挡体的权重被配置为通过下式计算得到:

其中,s表示物体的体积大小,表示物体近似最小包围盒的最大面的法向量,表示沿视点方向的单位矢量,l表示物体中心与视点之间的距离,w表示每个候选遮挡体的权重。

进一步的,本发明的一些具体实施例提供一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。

下面参考图9,其示出了适于用来实现本申请实施例的终端设备或服务器的计算机设备800的结构示意图。

如图9所示,计算机设备900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram))903中的程序而执行各种适当的工作和处理。在ram903中,还存储有系统900操作所需的各种程序和数据。cpu901、rom902、以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡,调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口906。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装如存储部分908。

特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发送。例如两个接连地表示的方框实际上可以基本并行地执行,他们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1