一种曲面模型创建方法及装置的制造方法_3

文档序号:9579891阅读:来源:国知局
可能会超出主体区域。若几 何体frp超出了主体区域,则需要对几何体frp进行处理,使得几何体frp位于主体区域内。 具体的处理方法可如下:
[0111] 将几何体frp的顶面./?的轮廓线上的所有点向顶面< 的中心移动,直至顶面 的轮廓线上的所有点位于主体区域内,或者减小S,以降低几何体frp的高度,从而使得几 何体frp的顶面#的轮廓线上的所有点位于主体区域内。
[0112] 另外,也可以将上述两种方法结合起来,即先将几何体frp的顶面/<的轮廓线上 的所有点向顶面·/?的中心移动,当移动距离与初始时距离顶面中心的距离的比值达到 预设的阈值时,降低几何体frp的高度,从而使得几何体frp的顶面六的轮廓线上的所有点 位于主体区域内。处理后的几何体frp可如图2(c)所示。
[0113] 接下来按照与几何体frp相同的处理方法生成表面插值截面线Csq的几何体frq, 计算几何体frp与frq的并。计算公式为:_ux= 其中U为求并运算符,frxy表示区域 X中第y个几何体,η为区域X中几何体的总数,ux为区域X中几何体的并。计算得到几何 体的并ux之后,将uJA表面提取出来,作为主体区域内生成的子曲面,主体区域内的子曲面 可如图2(d)所示。
[0114] 下面请参阅图3(a)_3(d),图3(a)_3(d)描述了当主体区域内两个或两个以上的 面中包含的截面线相交时,生成位于主体区域内插值主体区域包含的截面线的子曲面的过 程。
[0115] 如图3(a)所示,某一主体区域内包含平面i、平面j及平面r,平面i与平面j中 分别包含截面线Csp及Csq,且Csp与Csq相交。首先选取平面i,以平面i中包含的截面 线Csp围成的区域为底面沿与所述底面垂直的方向平移底面#1,建立表面插值截 面线Csp且顶面爲:与底面形状相同的几何体frp,几何体的高度(即平移的距离)hp = 3#1^,其中6£(〇,1),]^为截面线〇8|5的中心与以截面线〇8|5的中心为起点,以垂直于 底面/<的方向发出的射线与构成主体区域的其他平面相交的点之间的最短距离,所建立 的几何体frp可如图3 (b)所示。
[0116] 图3(b)中,点A、B为超出主体区域的点;点CQ、D。为截面线Csp上距离截面线Csq 所在的平面j的距离小于第一距离阈值的点,点C、D为几何体frp的顶面·/?上与C。、D。位 置对应的点,点C、D属于点集PTf;点E、F为几何体frp的顶面/<的轮廓线上距离平面r小 于第二距离阈值的点,点E、F属于点集PT。。其中,第一距离阈值与第二距离阈值可根据实 际需要预先设置。
[0117] 当截面线Csp与Csq相交时,要保证所建立的几何体frp的顶面上的点C、D位于 主体区域内,此处可以通过调整几何体frp的高度来实现,这个限制是为了保证几何体frp 与后续建立的插值截面线Csq的几何体frq的并为表面是流形的几何体。
[0118] 从图3(b)可以看出,所建立的几何体frp超出了主体区域,因此需要对几何体frp 进行处理,使得几何体frp位于主体区域内。具体的处理方法可如下:
[0119]首先,将几何体frp的顶面./?的轮廓线上超出主体区域的点(例如点A、B)向顶 面,】的中心移动,直至顶面尤的轮廓线上的所有点位于主体区域内;
[0120] 接下来将移动之后的几何体frp的顶面.斤的轮廓线PTb利用曲线光滑算法进行变 形,变形的过程中,保留移动之后的顶面惠的轮廓线PTb上与构成主体区域的其他平面的 距离小于第二距离阈值的点PT。(例如E、F点)。对几何体frp的顶面/<的轮廓线PTb进行 变形的目的是:避免之前对顶面^的轮廓线上超出主体区域的点进行移动导致的顶面# 的轮廓线PTb不规则。
[0121] 本实施例中,所采用的曲线光滑算法可以是拉普拉斯光滑算法,在这种 算法中,先利用公式卜士.ζ)获取顶面#的轮廓线PTb上每 个点的原始拉普拉斯向量\,其中L表示拉普拉斯算子,{pkjeN(i)}是两个 相邻点。变形之后顶面户i的轮廓线上每个点的位置通过如下能量函数计算得到: E(K) =JJ1L(M)-41|2+玉11风-M丨|2+玉」丨风:一风.1|2其中叫和< ^ 为变形前后点的位置。
[0122] 下面确定变形之后的几何体frp的顶面#纟的轮廓线上是否仍有超出主体区域的 点,若有,则重复上述过程迭代运算,直至变形之后几何体frp的顶面g的轮廓线上的点全 部位于主体区域之内。经变形处理后的几何体frp可如图3(c)所示。
[0123] 另外需要说明的是,本实施例中的曲线光滑算法还可以采用其他曲线光滑算法代 替,例如二阶拉普拉斯光滑算法,λ|μ低通光滑算法等,此处不做具体限定。经过有限次 迭代运算之后,所得结果会逐渐收敛,即曲面形状的变化会很小,因此采用不同的光滑算法 得到的曲面的形状差异很小。
[0124] 按照与几何体frp相同的处理方法生成表面插值截面线Csq的几何体frq,生成的 几何体frp与几何体frq要保证是相交的,几何体frp与几何体frq相交可包括以下几种情 况,仅一个点相交,相交于一条线,相交于一个面及相交形成一个立体区域。具体在本实施 例中,几何体frp与几何体frq相交部分为立体区域,这样才能保证后续计算的几何体frp与 几何体frq的并的表面是一个封闭的插值截面线Csp及Csq的流形。接下来计算几何体frp 与frq的并ux,将Uxm表面提取出来,作为主体区域内生成的子曲面,主体内的子曲面可如 图3(d)所示。
[0125] 针对边缘区域,该区域中只有一个面包含截面线,具体的处理方法可参见图4(a) 与 4 (b)。
[0126] 首先请参阅图4(a),图中所示的边缘区域只有平面i中包含截面线Csp,以截面线 Csp在平面i中所围成的区域为底面,将该底面沿与该底面垂直的方向向构成边缘区域的其 他平面投影,找出投影面积最大的平面k;将底面沿与投影面积最大的平面k垂直的方向进 行投影,得到底面在投影面积最大的平面k上的投影轮廓线,连接所述轮廓线与底面形成 几何体frp,形成的几何体frp的可如图4(b)所示,几何体frp的底面位于截面线Csp所在 的平面i,几何体frp的顶面位于投影面积最大的平面k。
[0127] 由于边缘区域内只有一个面包含截面线,因此,边缘区域生成的几何体不与其他 几何体相交。在将主体区域内的子曲面拼接形成初始曲面模型后,边缘区域内的子曲面会 变成孤立的组件,从而导致创建结果可能包含多个不连通的组件。为了避免这种情况发生, 在生成位于边缘区域内的几何体frp之后,将几何体frp延伸至主体区域和/或其他边缘区 域,以使几何体frp与主体区域和/或其他边缘区域内的几何体相交。最后,提取几何体frp 的表面生成位于边缘区域内且表面插值该区域包含的截面线的子曲面。
[0128] 针对空置区域,由于该区域没有任何面包含截面线,因此不需要生成几何体,即无 需对边缘区域进行处理。
[0129] 另外,当有新的截面线输入时,可以根据新输入的截面线所在的平面对三维空间 重新进行区域划分,然后仅对受到新输入的截面线影响的区域,重新生成几何体,形成新的 子曲面,其他未受到新输入的截面线影响的区域内的子曲面保持不变,然后拼接所有区域 的子曲面,形成更新后的目标物件的曲面模型。这种保持未受影响的区域内的子曲面不变 的方法可以降低计算的复杂度,使得重建结果的变化自然可预测,提高了动态曲面的创建 效率。本实施例所建立的目标物件的曲面模型可以是细分曲面模型,也可以是三角网格曲 面模型。
[0130] 本发明可用于增强现实中基于隔空手势的三维(3D,threeDimensions)模型创 建。在传统的3D建模方法中,用户通过鼠标、手写笔等输入设备在物理平面上输入点和线 的信息,而后需使用各种方法将2D输入数据映射到3D空间,再利用映射后的数据生成3D 模型。相对而言,基于隔空手势的3D建模创建是一种更加自然、便捷的3D模型创建方法。 在这种方法中,用户可徒手在3D空间中描绘目标3D模型的轮廓形状,通过使用各种3D位 置传感器(如Kinect,LeapMotion等),可获得用户手势输入数据的3D坐标,并直接根据 这些3D数据生成3D模型,从而避免了传统建模方法中从2D到3D数据的映射带来的直观 性和便捷性较差的问题。将本发明应用在基于隔空手势的3D建模中时,用户可徒手输入表 示目标3D物体轮廓的截面线,而后通过空间位置传感器获得输入3D截面线的形状和位置 数据,并利用本发明所提供的技术方案从这些截面线生成目标3D模型。用户每输入一条新 截面线,本发明便可计算出插值当前输入截面线的3D模型,实时重建结果可利用增强现实 技术呈现给用户,用户可以此为参考继续徒手输入截面线,直到获得理想的3D模型。
[0131] 本实施例中,在对三维空间进行区域划分后,再对所划分的区域进行分类,然后针 对不同类型的区域采用不同的方法生成几何体,几何体的生成过程主要依据该区域的形状 及位于该区域的截面线,即每个区域的几何体的创建不需要依赖于每个区域的中轴平面 集,因此避免了局部拓扑噪声,提高了曲面模型的拓扑质量。
[0132] 下面对本发明实施例提供的曲面模型创建装置进行描述,请参阅图5,本实施例的 装置500包括:
[0133] 获取单元501,用于获取已输入的目标物件的截面线;
[0134] 区域划分单元502,用于利用已输入的目标物件的截面线所在的平面对三维空间 进行区域划分;
[0135] 处理单元503,用于根据每个区域的形状及每个区域包含的截面线生成位于每个 区域内的几何体,所述几何体的表面插值有每个区域包含的截面线,提取位于每个区域内 的几何体的表面以生成位于每个区域内的子曲面,所述子曲面插值该区域包含的截面线;
[0136] 拼接单元504,用于拼接所有子曲面得到所述目标物件的曲面模型。
[0137] 为了便于理解,下面以一具体实例对本发明实施例中的曲面模型创建装置进行描 述,请参阅图6,本实施例的装置包括:
[0138] 获取单元61,用于获取已输入的目标物件的截面线;
[0139] 区域划分单元62,用于利用已输入的目标物件的截面线所在的平面对三维空间进 行区域划分;
[0140] 确定单元63,用于在区域划分单元62将三维空间进行区域划分后,确定每个区域 的类型,所述区域的类型包括主体区域,边缘区域及空置区域;
[0141] 处理单元64,用于根据每个区域的形状及每个区域包含的截面线生成位于每个区 域内的几何体,所述几何体的表面插值有每个区域包含的截面线,提取位于每个区域内的 几何体的表面以生成位于每个区域内的子曲面,所述子曲面插值该区域包含的截面线;
[0142] 拼接单元65,用于拼接所有子曲面得到所述目标物件的曲面模型。
[0143]具体地,处理单元64包括几何体生成单元641、主体处理单元642及第一子曲面生 成单元643,用于在确定单元63确定某一区域为主体区域时,生成位于该主体区域的子曲 面。
[0144] 进一步地,当该主体区域内包含的截面线不相交时,主体处理单元642包括第一 处理子单元6421及第二处理子单元6422,当该主体区域内包含的截面线相交时,主体处理 单元642包括第三处理子单元6423、第四处理子单元6424及确定子单元6425。
[0145] 另外,处理单元64还包括投影处理单元644、边缘处理单元645及第二子曲面生成 单元646,用于在确定单元63确定某一区域为边缘区域时,生成位于该边缘区域的子曲面。
[0146] 为便于理解,下面以一个实际应用场景对本实施例中曲
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1