一种三维模型的有向包围盒构造的方法和系统的制作方法

文档序号:6524416阅读:427来源:国知局
一种三维模型的有向包围盒构造的方法和系统的制作方法
【专利摘要】本发明公开了一种三维模型的有向包围盒构造的方法和系统,所述方法将三维模型投影转换到三个二维平面上,再计算二维投影图形的轴对称包围盒,有效降低了包围盒的计算难度和复杂度;通过二维轴对称包围盒所确定的三个旋转角度,对三维模型进行旋转,得到轴对齐包围盒,再将轴对齐包围盒进行三个角度的反向旋转,获取最终的有向包围盒,避免现有技术中协言状矩阵的使用,有效提高了运算速度;而且,在二维轴对称包围盒获取时,由于在360度的旋转角度内对投影平面进行了统计和比较,因此,最终所得到的有向包围盒更加紧闭和贴近模型。所述系统包括三维模块、二维模块、旋转模块、包围盒模块和反旋转模块,用于获取紧闭和贴近模型的有向包围盒。
【专利说明】一种三维模型的有向包围盒构造的方法和系统
【技术领域】
[0001]本发明涉及图形处理领域,特别是一种三维模型的有向包围盒构造的方法和系统。
【背景技术】
[0002]三维模型大量应用于计算机渲染中,在动画、游戏和电影等领域,当进行一个模型的剔除裁剪计算,或者进行两个模型的碰撞计算,都需要使用到模型的包围盒以替换大量的顶点计算,从而大大提高运行速度与渲染效率。与轴对齐包围盒(AABB)相比,有向包围盒(OBB)是一种更加贴近模型、更紧闭的包围盒,传统的有向包围盒计算方法是通过协方差矩阵计算得到,此方法需要进行大量复杂计算,导致效率低下,且得到的有向包围盒并非最紧闭的包围盒。由于传统方法计算复杂,并需要一定的数学知识,以至于影响了有向包围盒的普及和应用,而有向包围盒的优点,又使得在一些需求度高的场合不得不使用它进行碰撞和裁剪计算,因此一种快捷、简单的有向包围盒计算方法,将有助于降低有向包围盒的使用难度和计算开销。

【发明内容】

[0003]为解决上述问题,本发明的目的在于提供一种三维模型的有向包围盒构造的方法和系统,使有向包围盒的获取快捷、简单,并降低有向包围盒的使用难度和计算开销。
[0004]本发明解决其问题所采用的技术方案是:
本发明的优选实施例提供了一种三维模型的有向包围盒构造的方法,包括:
(1)将三维模型分别投影在三维坐标中的XY、YZ和XZ三个平面上;
(2)分别旋转三个平面上的投影,得到每个投影的最小的二维轴对称包围盒,通过此包围盒确定每个投影的旋转角度;
(3)根据三个旋转角度,依次对应将三维模型的X、Y和Z坐标轴旋转相同的角度;
(4)计算并获取三维模型的轴对齐包围盒。
[0005](5)根据三个旋转角度,将轴对齐包围盒按照与X、Y和Z坐标轴旋转的相反的方向旋转相同的角度。
[0006]在整个方法过程中,将三维模型转换在二维平面上,并在各个二维平面上的计算对应的轴对称包括盒,有效降低了包围盒的计算难度和复杂度。
[0007]通过3个旋转角度旋转坐标轴实现对三维模型进行旋转,并获取旋转后的轴对齐包围盒,再进行三个角度的反向旋转,即可得到最终的有向包围盒,相比于现有技术中使用的协方差矩阵,有效提供了运算速度。
[0008]由于在三个平面都做了统计和比较,得到的有向包围盒与现有技术相比,包围盒更加紧闭和贴近模型。
[0009]本发明的优选实施例提供了一种三维模型的有向包围盒构造的系统,包括:
三维模块,将三维模型分别投影在三维坐标中的T1、YZ和XZ三个平面上; 二维模块,分别旋转三个平面上的投影,得到每个投影的最小的二维轴对称包围盒,通过此包围盒确定每个投影的旋转角度;
旋转模块,根据三个旋转角度,依次对应将三维模型的X、Y和Z坐标轴旋转相同的角
度;
包围盒模块,计算并获取三维模型的轴对齐包围盒。
[0010]反旋转模块,根据三个旋转角度,将轴对齐包围盒按照与X、Y和Z坐标轴旋转的相反的方向旋转相同的角度。
[0011]本发明的有益效果是:
本发明采用一种三维模型的有向包围盒构造的方法和系统,将三维模型分别投影在三维坐标轴所对应的三个二维平面上,以降低最终获取三维模型有向包围盒的复杂度,提高运算效率,节省时间;利用二维投影的轴对称包围盒获取投影旋转的角度,最终获取有向包围盒,降低运算的复杂度;在三个平面都进行了统计和比较,获取的包围盒更加紧闭和贴近模型。
【专利附图】

【附图说明】
[0012]下面结合附图和实例对本发明作进一步说明。
[0013]图1是本发明所述方法流程图;
图2是旋转角度确定的流程图;
图3是本发明所述系统组成框架图;
图4是所述三维模块的结构组成框图;
图5是所述二维模块的结构组成框图。
【具体实施方式】
[0014]本发明提供了一种三维模型的有向包围盒构造的方法,通过此方法可以生成三维模型的包围构造盒,参照图1所示,包括:
步骤100,将三维模型投影在三个平面上。三维模型对应的三维空间具有X、Y、Z三个坐标系,三个坐标系组成ΧΥ、ΥΖ和XZ三个平面,将三维模型投影在三个平面上,在具体投影时:
向XY平面投影时,将三维模型的每个顶点分别与X和Y的单位轴(1,1,0)进行点乘,得到每个顶点在XY平面的投影点位,之后,连接相应的点位;
向YZ平面投影时,将三维模型绕Y轴旋转90度,之后,将三维模型的每个顶点分别与Y和Z的单位轴(0,1,I)进行点乘,得到每个顶点在YZ平面的投影点位,之后,连接相应的点位;
向XZ平面投影时,将三维模型绕X轴旋转90度,之后将三维模型的每个顶点分别与X和Z的单位轴(1,0,I)进行点乘,得到每个顶点在XZ平面的投影点位,之后,连接相应的点位。
[0015]步骤102,获取每个投影的轴对称包围盒,并确定旋转角度。三维模型在ΧΥ、ΥΖ和XZ三个平面上投影后,需要获取每个投影的二维轴对称包围盒,参照图2所示,对于每一个平面上的投影,步骤200将此投影旋转一定的角度,直至旋转到360度,并且计算每次旋转后图形的二维轴对称包围盒,步骤202从这些二维轴对称包围盒当中获取面积最小的二维轴对称包围盒,步骤204则确定此最小包围盒的旋转角度。
[0016]步骤104,分别旋转坐标轴,通过步骤102可以获取三个投影在T1、YZ和XZ三个平面的旋转角度,根据此三个旋转角度,依次对应将三维模型的X、Y和Z坐标轴旋转相同的角度。
[0017]步骤106,计算三维模型的轴对齐包围盒,此时,则根据旋转后的X、Y和Z坐标轴计算三维模型的轴对齐包围盒,此包围盒为最紧闭的轴对齐包围盒。
[0018]步骤108,反旋转轴对齐包围盒,由于步骤106所计算的轴对齐包围盒为模型旋转之后的包围盒,因此,要得到三维模型原始状态的有向包围盒,需将此包围盒反向旋转回三维模型的原始状态,根据三个旋转角度,将轴对齐包围盒按照与Χ、y和Z坐标轴旋转的相反的方向旋转相同的角度即可。
[0019]在所述步骤100中,对于XY、YZ和XZ三个平面的投影并无顺序之分,并不影响最终包围盒的获取。
[0020]所述步骤104中,亦可以根据所述的三个旋转角度,依次将三维模型按照Χ、Υ和Z坐标轴旋转相同的角度,并执行后续相同的步骤,其并不影响最终有向包围圈的获取。
[0021]所述方法将三维模型投影转换到三个二维平面上,再计算二维投影图形的轴对称包围盒,有效降低了包围盒的计算难度和复杂度;通过二维轴对称包围盒所确定的三个旋转角度,对三维模型进行旋转,得到轴对齐包围盒,再将轴对齐包围盒进行三个角度的反向旋转,获取最终的有向包围盒,避免现有技术中协言状矩阵的使用,有效提高了运算速度;而且,在二维轴对称包围盒获取时,由于在360度的旋转角度内对投影平面进行了统计和比较,因此,最终所得到的有向包围盒更加紧闭和贴近模型。
[0022]本发明的优选实施例提供了一种三维模型的有向包围盒构造的系统,参照图3所示,包括:
三维模块300,将三维模型分别投影在三维坐标中的XY、YZ和XZ三个平面上;
二维模块302,分别旋转三个平面上的投影,得到每个投影的最小的二维轴对称包围盒,通过此包围盒确定每个投影的旋转角度;
旋转模块304,根据三个旋转角度,依次对应将三维模型的Χ、Υ和Z坐标轴旋转相同的角度;
包围盒模块306,计算并获取三维模型的轴对齐包围盒;
反旋转模块308,根据三个旋转角度,将轴对齐包围盒按照与Χ、Υ和Z坐标轴旋转的相反的方向旋转相同的角度。
[0023]参照图4所示,所述三维模块300包括:
XY投影单元400,向XY平面投影时,将三维模型的每个顶点分别与X和Y的单位轴(1,1,0)进行点乘,得到每个顶点在XY平面的投影点位,之后,连接相应的点位;
YZ投影单元402,向YZ平面投影时,将三维模型绕Y轴旋转90度,之后,将三维模型的每个顶点分别与Y和Z的单位轴(0,1,1)进行点乘,得到每个顶点在YZ平面的投影点位,之后,连接相应的点位;
XZ投影单元404,向XZ平面投影时,将三维模型绕X轴旋转90度,之后将三维模型的每个顶点分别与X和Z的单位轴(1,0,1)进行点乘,得到每个顶点在XZ平面的投影点位,之后,连接相应的点位。
[0024]参照图5所示,所二维模块302包括:
最小盒单元500,对于每一个平面上的投影,将其旋转一定的角度,计算其二维轴对称包围盒,当旋转360度之后,对比并获取其中面积最小的二维轴对称包围盒;
角度单元502,确定此包围盒所对应的旋转角度。
[0025]所述系统具体的实现方法参照以上方法中所述内容。
[0026]以上所述,只是本发明的较佳实施例而已,本发明并不局限于上述实施方式,只要其以相同的手段达到本发明的技术效果,都应属于本发明的保护范围。
【权利要求】
1.一种三维模型的有向包围盒构造的方法,其特征在于,包括: (1)将三维模型分别投影在三维坐标中的XY、YZ和XZ三个平面上; (2)分别旋转三个平面上的投影,得到每个投影的最小的二维轴对称包围盒,通过此包围盒确定每个投影的旋转角度; (3)根据三个旋转角度,依次对应将三维模型的X、Y和Z坐标轴旋转相同的角度; (4)计算并获取三维模型的轴对齐包围盒。
2.根据权利要求1所述的方法,其特征在于,所述步骤(4)之后还包括: (5)根据三个旋转角度,将轴对齐包围盒按照与X、Y和Z坐标轴旋转的相反的方向旋转相同的角度。
3.根据权利要求1或2所述的方法,其特征在于,所述步骤(1)具体为: 向XY平面投影时,将三维模型的每个顶点分别与X和Y的单位轴(1,1,0)进行点乘,得到每个顶点在XY平面的投影点位,之后,连接相应的点位; 向YZ平面投影时,将三维模型绕Y轴旋转90度,之后,将三维模型的每个顶点分别与Y和Z的单位轴(0,1,I)进行点乘,得到每个顶点在YZ平面的投影点位,之后,连接相应的点位; 向XZ平面投影时,将三维模型绕X轴旋转90度,之后将三维模型的每个顶点分别与X和Z的单位轴(1,0,I)进行点乘,得到每个顶点在XZ平面的投影点位,之后,连接相应的点位。
4.根据权利要求1或2所述的方法,其特征在于,所述步骤(2)具体为: 对于每一个平面上的投影,将其旋转一定的角度,计算其二维轴对称包围盒,当旋转360度之后,对比并获取其中面积最小的二维轴对称包围盒,并确定此包围盒所对应的旋转角度。
5.一种三维模型的有向包围盒构造的系统,其特征在于,包括: 三维模块,将三维模型分别投影在三维坐标中的T1、YZ和XZ三个平面上; 二维模块,分别旋转三个平面上的投影,得到每个投影的最小的二维轴对称包围盒,通过此包围盒确定每个投影的旋转角度; 旋转模块,根据三个旋转角度,依次对应将三维模型的X、Y和Z坐标轴旋转相同的角度; 包围盒模块,计算并获取三维模型的轴对齐包围盒。
6.根据权利要求5所述的系统,其特征在于,所述系统还包括: 反旋转模块,根据三个旋转角度,将轴对齐包围盒按照与X、Y和Z坐标轴旋转的相反的方向旋转相同的角度。
7.根据权利要求5或6所述的系统,其特征在于,所述三维模块包括: XY投影单元,向XY平面投影时,将三维模型的每个顶点分别与X和Y的单位轴(1,1,O)进行点乘,得到每个顶点在XY平面的投影点位,之后,连接相应的点位; YZ投影单元,向YZ平面投影时,将三维模型绕Y轴旋转90度,之后,将三维模型的每个顶点分别与Y和Z的单位轴(0,1,I)进行点乘,得到每个顶点在YZ平面的投影点位,之后,连接相应的点位; XZ投影单元,向XZ平面投影时,将三维模型绕X轴旋转90度,之后将三维模型的每个顶点分别与X和Z的单位轴(1,0,I)进行点乘,得到每个顶点在XZ平面的投影点位,之后,连接相应的点位。
8.根据权利要求5或6所述的系统,其特征在于,所二维模块包括: 最小盒单元,对于每一个平面上的投影,将其旋转一定的角度,计算其二维轴对称包围盒,当旋转360度之后,对比并获取其中面积最小的二维轴对称包围盒;角度单元,确定此包围盒所对应的旋转角度。``
【文档编号】G06T15/00GK103729877SQ201310700567
【公开日】2014年4月16日 申请日期:2013年12月18日 优先权日:2013年12月18日
【发明者】余欣 申请人:珠海金山网络游戏科技有限公司, 广州西山居世游网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1