插值细分方法

文档序号:6484197阅读:621来源:国知局
专利名称:插值细分方法
技术领域
本发明涉及计算机图形学中的曲面造型方法,特别涉及一种插值细分方法。
背景技术
随着各种三维数据获取技术的不断完善和成熟,逆向工程在计算机辅助设计 (Computer Aided Design, CAD)或计算机绘图(Computer Graphics, CG)应用中越来越受 重视。由三维扫描设备获取的是任意拓扑结构的网格,如何表示它们以便对其进行存储、传 输、编辑、绘制成为亟待解决的问题。近几年,随着细分理论的日趋完善,对细分曲线、曲面 方法的研究成了图形学领域的一个热点。就细分曲面方法而言,现有的方法大部分都是针 对三角网格和四角网格的,可以分为逼近细分或插值细分两类。逼近方法收敛速度快而且 光滑性好,但对初始网格的形状和体积改变很大;插值方法可以很好地控制模型,但曲面的 光滑性一般。下面简要介绍两种经典的基于三角形网格的细分方法Loop方法和Butterfly方 法。Loop和Butterfly细分都是1-4的细分。也就是一次细分后,一个三角形将变为四个 小三角形。对于三角形的每一条边,都会生成一个新的边点。经过多次细分后绝大多数顶点 的价都为6,因此,价为6的顶点被称为规则点,价不等于6的点被称为奇异点。权图表示旧 控制点向新控制点的关系,在下述各图中,用白点表示旧控制点,用黑点表示新控制点。奇 点是在每一级细分中,按照某种规则所产生的新的点,在三角网格中即为边点。偶点是在每 一级细分中,所有从上一级控制点继承得到的点。图1为现有Loop细分权图中的内部奇点的示意图。参见图1,内部奇点表明该奇 点(黑点所示)周围存在4个可用于计算的旧控制点(白点所示),并且,图1表明4个旧
控制点的加权系数分别为|、|、^、^。即新产生的奇点的三维坐标P的计算公式为
) ; pQ、Pi、p2、p3分别是旧控制点的三维坐标。图2为现有Loop细分权图中的内部偶点的示意图。参见图2,黑点表示新的 奇点,白点表示偶点,偶点与原始控制顶点一一对应。偶点三维坐标P'的计算公式为
; /为该偶点周围的奇点的三维坐标(即先要计算出奇点才能算偶 i=0
点),P为继承的旧控制点的三维坐标偶点原始坐标,3为奇点的加权系数,k为奇点的个 数。其中,—(臺+ |cos宇)2]。对于价大于3的顶点,可按公式来计算;当顶点
的价等于3时,可以取/ = $。图3为现有Loop细分权图中的边界奇点的示意图。参见图3,边界奇点为其周围 只存在2个旧控制点,而不是如图1那样存在6个。边界奇点的三维坐标P的计算公式为
分别是旧控制点的三维坐标。
图4为现有Loop细分权图中的边界偶点的示意图。参见图4,边界偶点为其周围 只存在2个奇点,而不是如图2那样存在6个。边界偶点的三维坐标P'的计算公式为
,分别是奇点的三维坐标,P为继承的旧控制点的三维坐标。Butterfly细分是根据其权图的形状来命名的。与Loop细分最主要的区别是,它 采用的是插值策略,而不是逼近策略。插值策略中偶点无需重新计算,只计算奇点即可。在 Butterfly细分中,对于连接两个规则点的边,新的边点被称为有规则临接点的内部奇点; 对于连接一个规则点和一个奇异点的边,新的边点被叫做临接点为半规则点的内部奇点。图5为现有Butterfly细分权图中的规则临接点的内部奇点的示意图。参见图5, 有规则临接点的内部奇点(黑点)通过周围10个旧控制点(白点)组成的权图计算所得。
相应的系数为,
当取w = 0时,退化为由周围8个
顶点构成的经典的蝶形权图。之后,可以根据Loop方法中的加权计算方法得到新产生的奇
点o图6为现有Butterfly细分权图中的临接点为半规则点的内部奇点的示意图。参 见图6,临接点为半规则点的内部奇点(黑点)通过周围的旧控制点(系数&,ASh对应 的白点及之间的白点)计算得到。其中,系数Si有如下公式(1)确定。 对于连接两个奇异点的边,新的边点可以取把两个顶点分别按照临接点为半规则 点计算后得到结果的平均值。图7为现有Butterfly细分权图中的边界奇点的示意图。参见图7,边界奇点(黑 点)可以由其周围的4个旧控制点(白点)加权计算得到,加权系数如图7中各点对应的 系数。上述以Loop方法和Butterfly方法为例对现有的逼近细分和插值细分方法进行 了简要介绍。现有技术中,逼近细分方法可以生成光滑的曲面,但是由于其采用的是“磨光” 的方法,造成最终极限曲面在控制网格内的收缩,使得造型后的曲面较原始曲面缩小。而插 值细分方法虽然不会缩小曲面,但是曲面的光滑性一般。

发明内容
本发明是提供一种插值细分方法,可以用于从逼近细分构建出插值细分格式,解 决逼近细分生成的极限曲面体积收缩问题,并且新插值细分生成的极限曲面将具有相应的 逼近细分曲面的形状特点。本发明提供了一种插值细分方法,包括步骤81 输入原始控制网格;步骤82 对原始控制网格进行逼近细分处理,得到新生成的奇点和偶点;
步骤83 将偶点移动回其原始位置,并根据偶点的移动规律移动奇点;步骤84:将移动后的偶点和奇点组成造型后的曲面,之后,将造型后的曲面作为 下一次输入的原始控制网格,循环执行步骤12-14,直至达到预先设定的循环次数。由上述技术方案可知,本发明通过对原始控制网格进行逼近细分,可以利用逼近 细分的优势使曲面光滑,并且,再将逼近细分后的偶点移回原来的位置,奇点随之移动,来 避免逼近细分造成的收缩问题。


图1为现有Loop细分权图中的内部奇点的示意图;图2为现有Loop细分权图中的内部偶点的示意图;图3为现有Loop细分权图中的边界奇点的示意图;图4为现有Loop细分权图中的边界偶点的示意图;图5为现有Butterfly细分权图中的规则临接点的内部奇点的示意图;图6为现有Butterfly细分权图中的临接点为半规则点的内部奇点的示意图;图7为现有Butterfly细分权图中的边界奇点的示意图;图8为本发明曲面造型方法实施例的流程示意图;图9为本发明中顶点偏移量第一实施例的示意图;图10为本发明中权图的第一实施例的示意图;图11为本发明中顶点偏移量第二实施例中规则情况下的示意图;图12为本发明中顶点偏移量第二实施例中半规则情况下的示意图;图13为本发明中顶点偏移量第二实施例中边界情况下的示意图;图14为本发明中权图的第二实施例中规则情况下的示意图;图15为本发明中权图的第二实施例中半规则情况下的示意图;图16为本发明中权图的第二实施例中边界情况下的示意图;图17为本发明中Loop-Butterfly方法中网格Mk的子图以及和细分后网格队+1中 与其拓扑同构的子图的示意图;图18为本发明中的Loop-Butterfly方法与经典方法对第一模型细分后的效果比 较示意图;图19为本发明中的Loop-Butterfly方法与经典方法对第二模型细分后的效果比 较示意图;图20为本发明中的Loop-Butterfly方法与经典方法对第三模型细分后的效果比 较示意图;图21为本发明中的Loop-Butterfly方法与经典方法对第四模型细分后的效果比 较示意图;图22为本发明中的Loop-Butterfly方法与经典方法对第五模型细分后的效果比 较示意图;图23为本发明中的Loop-Butterfly方法与经典方法对第六模型细分后的效果比 较示意图。
具体实施例方式下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。图8为本发明曲面造型方法实施例的流程示意图,包括步骤81 输入原始控制网格;步骤82 对原始控制网格进行逼近细分处理,得到新生成的奇点和偶点;步骤83 将偶点移动回其原始位置,并根据偶点的移动规律移动奇点;步骤84:将移动后的偶点和奇点组成造型后的曲面,之后,将造型后的曲面作为 下一次输入的原始控制网格,循环执行步骤82-84,直至达到预先设定的循环次数。下面对上述各步骤进行较为详细的说明其中,步骤83中的根据偶点的移动规律移动奇点具体可以为首先,计算偶点与 其对应的原始控制点的位移差,即计算得到偶点的位移差;其次,根据定义在偶点位移差上 的补差函数计算奇点的位移差;最后,用奇点加上其位移差即为移动后的奇点。具体的数学 描述如下M0和%分别表示原始网格和网格中的节点,L指特定的逼近细分。一次逼近细分 可表示为 可以将Mi+1的节点集Vi+1分为两个集合。一个为LVp由Mi+1中的奇点组成,另一个 由Mi+1中的偶点组成。后者可以通过Vi+1-LVi计算出来,标记为CLVit)这样 为了从逼近细分构建出插值细分,需要构造一系列的满足以下条件的函数& 这些函数被称为补差函数。为了保留逼近细分的形状特点,对节点集
引入了如下运算 然后,将Vi+1更新为Vi U IncrmdCLVi,并将更新后的Vi+1标记为incrmdVi+1,如公式 (5) (6)所示,其中IncrmdVi+1被定义为 同样的Mi+1的更新结果记为 将公式(2)代入公式(7),可得 公式(9)为本发明补差方法的一种最终的形式化的表达,L+FiL为推导出的相应的 插值细分方法。incrmdMi+1即为对虬进行一次插值细分的结果。本发明中最关键的步骤为如何构建相应的补差函数&。—般情况下,任何定义通过点集P^-P^1的插值曲面的函数都可以用作补差函
7数。然而,补差函数的选取影响着最终极限曲面的形状特点,选取合适的补差函数是非常必 要的。定义一个概念网格Ap网格中顶点为点集{PjcZ-Pjc^PjcT G LVJ,这个概念网格 与控制网格礼是拓扑同构的,可以理解为逼近细分后原始顶点偏移量构成的差网格。这样, 每个顶点
都可以根据逼近细分!^在礼中找到其概念位置。显而易见地,可以 将F(P^+1)定义为八4中^/+1周围顶点的一个线性组合作为补差函数。将概念网格Ai作为控制网格,任何可以为其产生光滑极限曲面的方法都可以用 作补差函数,并且补差函数可以看作Ai上的一个细分方法。如果使用已有的细分方法作 为补差函数,选择的细分方法必须和L具有相同的几何分裂操作。一旦选定了补差函数,相 应的插值方法就可以被构建出来。本发明的方法可以应用于任意的多边形网格。这里采用三角网格为例作为细分的 输入。我们选取了 Loop细分作为逼近细分的实例,从Loop细分构建出相应的插值细分。选 取不同的补差函数将会构建出不同的插值细分方法。我们首先选取一种“两点”线性组合 的方法作为补差函数,接下来会选取Butterfly插值作为补差函数。由于原始顶点又被移回原始位置,IncrmdLVi不会发生变化。只需计算新的边点 IncrmdCLVi0因此,接下来的公式(10)-(16)使用简化的符号来进行表示。Pi表示新的边 点,P/代指
之间存在一个偏移APi。APi由补差函数决定。然后,可以通 过对P/补差的方式得到边点 图9和图11-13分别给出了 “两点”方法和Loop-Buttefly方法中边点偏移量的 计算方法。其中实线绘制的网格为原始控制网格,虚线绘制的网格为一次逼近细分(L)后 的网格Mi+1。图10和图14-16给出了通过不同方法构造出的新的细分方法的权图。图9为本发明中顶点偏移量第一实施例的示意图。参见图9,实线为原始网格,虚 线为逼近细分后的网格,以三角网格为例,但不限于三角网格。本实例逼近细分为Loop方 法。PpPi*原始控制点,P' 0>P'工为逼近细分后的偶点,P'为逼近细分后的奇点,P为 对奇点移动后的点。其中,移动后P' 0>P' i又移动回其原始网格中的位置,即分别移动回 。^勺位置,?为随着?' 0>P' i的移动规律P'移动后的位置。本实施例中,补差函数为 两个点的线性组合。新的边点的偏移量可以通过取边的两个顶点的偏移量的平均值,即 在公式(12),(13)中,p'c^Pp'i可以通过选取的逼近细分方法计算得到。将公式 (11),(12),(13)代入公式(10)。可以推导出一个10点的细分格式,如图10所示,图10为 本发明中权图的第一实施例的示意图,针对两点补差的情况。其系数为a 很明显的,构建出的细分格式正好与当w = -1/32时改进蝶形细分完全一致。因 此,选取新构建的细分格式毫无疑问的可以在规则情况下产生C1连续的极限曲面。因此,选取Loop和“两点”方法分别作为逼近细分和补差方法,可以通过L+FiL得到改进的蝶形方法。从这一点来说,可以认为本实例的方法是插值细分的一种产生形式。上面的实例以两点线性组合作为补差函数构建出了改进的蝶形方法。下面的实例 将选取更多的周围顶点来计算新顶点的偏移量,这里选取了一种8点的方法(Butterfly细 分)作为补差函数。也可以理解为用Butterfly方法对概念网格A i进行细分。如同蝶形细分,共分四种情况(1)对于连接两个规则点的边图11为本发明中顶点偏移量第二实施例中规则情况下的示意图,参见图11,对于 连接两个规则点的边(规则情况下),这里使用了 8点的权图,新边点的偏移量可以通过公 式(14)获取。 其中,Ap为新奇点位移差,Ap。、APl、Ap2、Ap3、Ap4、Ap5、Ap6、厶口7分别为逼 近细分后该奇点周围8个偶点与它们对应的原始控制点的位移差。(2)对于连接一个规则点和一个奇异点的边图12为本发明中顶点偏移量第二实施例中半规则情况下的示意图,参见图12, 对于连接一个规则点和一个奇异点的边(半规则情况下),新边点的偏移量可以通过公式 (15)获取。 其中,Ap新奇点的位移差;Si分别为该奇点周围的规则点和奇异点的加权系数, 具体的数值可以参照Butterfly方法在半规则情况下的取值;AP(I为逼近细分后奇异点与 其原始位置的位移差;A Pi,i = 1,A,n分别为与奇异点邻接的顶点与其原始位置的位移差。(3)对于连接两个奇异点的边新边点的偏移量为两个顶点分别按照临接点为半规则点计算后得到结果的平均 值。这种情况只会在第一次细分中出现。(4)对于边界图13为本发明中顶点偏移量第二实施例中边界情况下的示意图,参见图13,对于 边界情况,新边点的偏移量可以通过公式(16)获取。 其中,Ap为新奇点的位移差;AP(1、APl、Ap2、Ap3分别为该奇点周围存在的4个 偶点对应的原始控制点与该偶点的差值。通过将公式(14),(15),(16)代入公式(10),结合图11-13,得到一种新的插值细 分格式Loop-Butterfly格式。对于原始网格中每一条边,插入一个新的边点。上述的图9、10描述了补差函数为两点差值的平均值的情况下的偏移量的示意图 和权图,图11-13描述了补差函数为插值细分情况下的偏移量的示意图,因此,根据图9、10 类似的原理,及上述的公式,也可以得到补差函数为插值细分情况下的权图。图14为本发明中权图的第二实施例中规则情况下的示意图,参见图14,在规则情况下,对应于图11,得到各顶点的加权系数分别为a = 67/128,b = 15/128,c = -1/16,d =1/256,e = -1/256,f = -3/128。图15为本发明中权图的第二实施例中半规则情况下的示意图,图16为本发明中 权图的第二实施例中边界情况下的示意图。由于奇异点价不同,半规则和边界点的权图会 有多种情况的组合,这里给出的仅是其中的例子。Loop-Butterfly方法可以应用于任意三角型网格,并且网格拓扑连接的变化与 Loop和Butterfly方法完全一致。另外,Loop-Butterfly方法也是1-4的方法。本实例通过对原始控制点进行逼近细分,可以利用逼近细分的优势使曲面光滑, 并且,再将逼近细分后的偶点移回原来的位置,奇点随之移动,来避免单纯逼近细分造成的 体积缩小的问题。上述对本发明的实现内容进行了描述,为了更确切的表征本发明可以满足需要, 可以进行下述的光滑性证明及实验验证。光滑性证明对于细分方法的光滑性,通常对相应的细分矩阵进行数值分析。细分矩阵定义了 模型中子网格V G Mk与细分后网格中与其拓扑同构的子网格S(V) G Mk+1之间的映射关系。 对于通过“两点”方法推导出的细分格式,其光滑性不需要进行分析,因为这 个格式与改进的蝶形方法完全一致,显然可以生成C1连续的极限曲面。这里着重分析 Loop-Buttefly方法的光滑性。对于Loop-Butterfly方法,对于规则情况下,相应得细分矩 阵为一个61X61的方阵。图17为本发明中Loop-Butterfly方法中网格Mk的子图以及和 细分后网格Mk+1中与其拓扑同构的子图的示意图,图17中,细线为网格Mk的子图,粗线为网 格Mk+1中与其拓扑同构的子图。通过Matlab软件进行数值计算,细分矩阵最大的4个特征值为
,满足如下条件 上面的条件(入0= 1 > AJ = | A2 > A3|)为细分曲面达到C1连续的必要 条件。细分曲面达到C1连续的充分条件是细分方法特征图的规则性,Loop-Butterfly方法 特征图与Loop和Butterfly方法是完全一致的,满足此充分条件。由细分矩阵特征值的数 值分析及特征图的规则性,可以确定Loop-Butterfly方法在规则情况下可以产生C1连续 的曲面。实验验证由于实例之一的两点方法构建的插值格式与经典的改进Butterfly方法完全一 致,无须用实验结果进行验证,这里主要给出了另一实例Loop-Butterfly方法的实验结

图18-23为Loop-Butterfly方法与经典方法的效果比较。从左到右分别为原始 网格、Loop细分结果、蝶形细分结果及Loop-Butterfly细分结果。由图18和图19明显可以看出Loop方法的收缩问题,蝶形方法则明显不如Loop 生成的曲面光滑。Loop-Butterfly方法解决了 Loop方法的收缩问题,生成的曲面比改进蝶形方法更光滑,具有Loop方法的形状特点。在图20中,Loop细分后,网格的拐角信息基本都丢失了。对于此蚯蚓模型来说, 这是很重要的形状信息。而Butterfly细分后,产生了很明显的具有不自然波动的怪异形 状。而Loop-Butterfly细分后,拐角信息被完全保留,另外,不自然波动的情况被大大的减 轻。图21-23给出了对相对复杂的模型进行细分后的结果对比。可以看出, Loop-Butterfly方法很适合用于对3D扫描得到的模型进行细分处理。本发明提出一种从逼近细分构建出相应的插值细分的方法,可以基于已有的经典 方法构建出新的插值细分格式,并使得新插值细分方法细分后的网格形状具有逼近细分后 的特点。按照本发明的方法,成功构建出两点插值细分格式和Loop-Butterfly细分。其中 构建出的两点的插值细分格式与改进的蝶形细分格式完全一致,而Loop-Butterfly细分 格式经过光滑性分析可以生成C1连续的极限曲面。实验结果也验证了本发明推导出的细 分格式很好的综合了插值和逼近方法的优点,可以扩展细分方法的应用范围。综上,本发明提出了一种基于补差方法的从逼近细分构建插值细分的方法。可以 用于构建保持逼近细分形状特点的插值形细分格式。以Loop细分作为逼近细分,分别以两 点方法和Butterfly方法作为补差函数进行构建。结果从两点方法构建出了改进的蝶形细 分,而从Butterfly方法构建出了新的细分Loop-Butterfly细分。经证明Loop-Butterfly 方法在规则情况下可以产生C1连续的极限曲面。实验结果也表明,本发明的方法构建出的 细分方法可以保持逼近细分方法的形状特点,同时解决了逼近细分的收缩问题。本领域普通技术人员可以理解实现上述方法实施例的全部或部分步骤可以通过 程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序 在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括R0M、RAM、磁碟或者 光盘等各种可以存储程序代码的介质。最后应说明的是以上实施例仅用以说明本发明的技术方案而非对其进行限制, 尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解其依 然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修 改后的技术方案脱离本发明技术方案的精神和范围。
权利要求
一种插值细分方法,其特征在于,包括步骤81输入原始控制网格;步骤82对原始控制网格进行逼近细分处理,得到新生成的奇点和偶点;步骤83将偶点移动回其原始位置,并根据偶点的移动规律移动奇点;步骤84将移动后的偶点和奇点组成造型后的曲面,之后,将造型后的曲面作为下一次输入的原始控制网格,循环执行步骤82-84,直至达到预先设定的循环次数。
2.根据权利要求1所述的方法,其特征在于,所述根据偶点的移动规律移动奇点包括 计算逼近细分后偶点与其对应的原始控制点的位移差;根据定义在偶点位移差上的补差函数计算奇点的位移差; 用奇点加上其位移差即为移动后的奇点。
3.根据权利要求1所述的方法,其特征在于,所述对原始控制网格进行逼近细分处理 具体为选取Loop方法作为逼近细分的实例,对原始控制网格首先进行一次逼近细分处理。
4.根据权利要求2所述的方法,其特征在于,所述根据定义在偶点位移差上的补差函 数计算奇点的位移差,具体为计算与该奇点邻接的两个偶点的位移差,将两个偶点的位移差的平均值作为该奇点的 位移差。
5.根据权利要求4所述的方法,其特征在于,所述计算与该奇点邻接的两个偶点的位 移差,将两个偶点的位移差的平均值作为该奇点的位移差的计算公式为Api =^(Δρ0+Δρ,),其中, 其中,Api为该奇点的位移差;Aptl为与该奇点邻接的第一偶点的位移差,ρ'。为第一 偶点的坐标,Ptl为与第一偶点的原始坐标;ΔΡι为与该奇点邻接的第二偶点的位移差,ρ'工 为第二偶点的坐标,P1为第二偶点的原始坐标。
6.根据权利要求2所述的方法,其特征在于,所述根据定义在偶点位移差上的补差函 数计算奇点的位移差,具体为将各偶点的位移差组成差网格,对差网格进行蝶形细分,将细分后新奇点的值作为奇 点的位移差。
7.根据权利要求6所述的方法,其特征在于,所述将各偶点的位移差组成差网格,对所 述差网格进行蝶形细分,将细分后新奇点的值作为奇点的位移差的计算公式为在规则情况下, 其中,Δρ为该奇点的位移差,Δρ。、ΔΡι、Δρ2、Δ ρ3, Δρ4、Δρ5、Δρ6、Δρ7分别为该奇 点周围存在的8个偶点的位移差;在半规则情况下, 其中,Δρ为该奇点的位移差;Si分别为该奇点周围的规则点和奇异点的加权系数; Aptl为该奇点周围的规则点的位移差;APi,i = 1,Λ,η分别为该奇点周围的奇异点的位移差;在边界情况下, 其中,Δρ为该奇点的位移差;ΔΡ(Ι、Δ Ρι, Δ ρ2, Δρ3分别为该奇点周围存在的4个偶 点的位移差值。
8.根据权利要求2所述的方法,其特征在于,所述用奇点加上奇点的位移差即为移动 后的奇点的计算公式为 ;其中,Pi为移动后的奇点;p' i为该奇点;Api为该奇点的位移差。
全文摘要
本发明公开了一种插值细分方法。该方法包括输入原始控制网格;对控制网格进行逼近细分处理,得到新生成的奇点和偶点;将偶点移动回原始位置,并根据偶点的移动规律移动奇点;将移动后的偶点和奇点组成造型后的曲面。通过本发明可以构建新的插值细分格式,新细分格式最终可以生成具有逼近细分生成曲面形状特点的插值曲面。
文档编号G06T17/20GK101853527SQ20091008108
公开日2010年10月6日 申请日期2009年4月1日 优先权日2009年4月1日
发明者孔德慧, 尹宝才, 张勇, 文雯 申请人:北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1