本文提出用轮廓删除法对NURBS曲面片进行细分的曲面混合及N边洞填充的方法。该方法先根据非均匀Catmull-Clark细分原理进行曲面混合,构造插值于角点的非均匀Catmull-Clark细分曲面法,再运用轮廓删除法在细分迭代的过程中去除控制网格边界轮廓,然后进行N边洞的填充以生成一张整体光滑的连续曲面。该方法在保证混合曲面与基曲面片在边界处C2连续时,能使N边洞填充曲面具有较好的光顺性。实例结果表明,该方法简化了具体的计算机实现过程,拓宽了细分曲面应用范围,解决了细分曲面与经典样条拼接的不相容问题,且使生成的曲面兼顾了二者的优点,具有较好的填充效果。 This paper presents a method for subdividing the NURBS surface patches blending and N-sided hole filling by contour deletion method. First, surface blended according to the principle of non- uniform Catmull-Clark subdivision surface, and the non-uniform Catmull-Clark subdivision method which builds the surface interpolating corner vertices and boundary curves was constructed. Then the contour deletion method was used to remove the control mesh boundary contour in the process of segmentation iteration. Last, N-sided hole filling was used to generate an integral smooth continuous surface. The method not only can guarantee the blending surface and the base surface patches C2 continuity at the boundary, but also can make the N-sided hole filling surface have better smoothness. Results show that, this method simplifies the specific computer realization process, broads the scope of application of subdivision surfaces, and solves the problem of incompatibility between subdivision surface and classic spline splicing; the resulting surface has both advantages with better filling effect.
江南,唐月红*,饶洁屏
南京航空航天大学理学院数学系,江苏 南京
收稿日期:2016年1月7日;录用日期:2016年1月21日;发布日期:2016年1月27日
本文提出用轮廓删除法对NURBS曲面片进行细分的曲面混合及N边洞填充的方法。该方法先根据非均匀Catmull-Clark细分原理进行曲面混合,构造插值于角点的非均匀Catmull-Clark细分曲面法,再运用轮廓删除法在细分迭代的过程中去除控制网格边界轮廓,然后进行N边洞的填充以生成一张整体光滑的连续曲面。该方法在保证混合曲面与基曲面片在边界处C2连续时,能使N边洞填充曲面具有较好的光顺性。实例结果表明,该方法简化了具体的计算机实现过程,拓宽了细分曲面应用范围,解决了细分曲面与经典样条拼接的不相容问题,且使生成的曲面兼顾了二者的优点,具有较好的填充效果。
关键词 :NURBS,细分曲面,轮廓删除法,曲面混合,N边洞填充
在计算机辅助几何设计(Computer Aided Geometric Design CAGD)和数字几何设计领域中,细分曲面和非均匀有理B样条(简称NURBS)已成为曲面造型的主流。尽管非均匀有理B样条已经是一种工业标准并且很容易的应用到商业建模系统中,但是由于NURBS需要矩形网格的限制,仅仅使用它通常难以构造一些复杂的曲面,而细分曲面的出现有效的弥补了这些问题。
对于细分曲面,Prautzsch [
Catmull-Clark细分方法是三次B样条曲线细分向任意拓扑网格上曲面细分的推广,采用四边形1~4面分裂拓扑规则生成新网格的拓扑,包括几何规则和拓扑规则,在正规网格处产生双三次B样条曲面,该曲面除奇异顶点外处处
新面点:
其中,
新边点:
其中,
新顶点:
其中,
在上面的公式中,
轮廓删除法(Skirt-removed approach)的思想就是每次细分时,边界边不产生新边点,边界点不产生新顶点点。它可以分两步进行:
1) 采用普通的Catmull-Clark细分模式生成过渡网格,计算出每个面对应的新面点,每条内部边对应的新边点,每个内部顶点对应的新顶点,再将所有新点按照细分拓扑规则连成一个新网格;
2) 把过渡网格上的轮廓即所有边界点、边界边、边界面及与边界点相连的内部边删除。
引入轮廓删除法是为了把Catmull-Clark细分模式应用于开网格(带有边界的二维流行[
为实现对NURBS曲面的混合和填充,关键是对开网格的边界做适当的处理,以使细分曲面插值于基曲面片的边界曲线,并满足一定的连续性要求。
本节首先讨论NURBS曲面片的混合问题,然后构造插值于角点的非均匀Catmull-Clark细分曲面,再通过适当的处理,将得到的曲面统一到轮廓删除模式下的非均匀Catmull-Clark细分曲面,最后对非均匀Catmull-Clark细分曲面的N边洞进行G1填充。
给定N片双三次非均匀B样条曲面为基曲面片,记第k片曲面Pk的控制网格为:
首先,为了使混合曲面与每片基曲面Pk的拼接达到C2连续,初始控制网格应与Pk的控制网格共用三行顶点:
图1. 新边参数赋予的规则
图2. 细分控制网格
然后,对控制网格进行预处理,方法如下:
记细分混合曲面的控制网格为
1) 同一列上的水平边所对应的权值为:
2) 同一行上的竖直边所对应的权值为:
最后,进行迭代。先按照非均匀Catmull-Clark细分模式计算出控制网格
图3是对三张
图3. (a) 基曲面片和细分控制网;(b) 基曲面片节点向量任意指定;(c) 节点距为控制顶点距的平均
图4. 五张基曲面片混合
对于N片非均匀双三次B样条曲面片围成N边洞,本文采用插值于角点的非均匀B样条曲面,只需相邻曲面片有公共角点即可。将插值于角点的曲线细分公式统一成轮廓删除模式,根据非均匀Catmull-Clark细分模式的新点计算公式(1),(2),(3),可以证明当最外两层控制网格正则,各行列首尾两条边的权值为零且所有的延伸边权值也为零时,非均匀Catmull-Clark细分模式产生的次外一层控制顶点即为新的控制顶点,且细分后的权值保持初始控制网格权值的特点. 对于N边洞问题本文给出以下算法。
算法1:(形成插值于角点的N边域曲面)。
Step 1:构造细分填充曲面的初始控制网格。保留边界曲线的控制顶点作为细分填充曲面的最外一层控制顶点。为了保证细分曲面的初始控制网格的最外两层顶点正则,当N边洞各边上的独立控制顶点数为奇数时,不再增加中心点,而是相对于各边的中心控制顶点各增加一个新点,再把新点与每个基曲面控制网的第1行中点相连,如图5所示。由于只需满足插值条件,中间的新控制顶点均可任意指定.
Step 2:将初始控制网格向外扩充一层,将所有的延伸边权值都赋为零,采用预处理方法对最外两层正则网格及其邻边边赋权值,延伸后的控制网格记为
Step 3:第k步迭代时,1) 按照非均匀Catmull-Clark细分模式对赋权的细分控制网格
图6和图7是对非均匀三次B样条曲线围成的三边洞和五边洞进行连续填充的效果图,红色和蓝色分别为构成N边洞的非均匀三次B样条曲线及其控制网格.通过移动新增加的控制顶点,图6(a)和图6(b)分别生成了凸起的和凹陷的两张曲面。
算法1将插值于角点的非均匀Catmull-Clark细分曲面统一成轮廓删除模式,跟文献[
由非均匀Catmull-Clark模式的局部B样条曲面性质,再根据插值于角点的B样条曲面的G1拼接条件,以
图5. 填充曲面初始控制网格
图6. (a) 凸起的填充曲面(三边洞);(b) 凹陷的填充曲面(三边洞)
图7. 填充曲面(五边洞)
算法2:(G1填充算法)。
Step 1:构造细分填充曲面的初始控制网格,保留边界曲线的控制顶点作为细分填充曲面的最外一层控制顶点。相对于边界曲面的每一个交界点
Step 2:确定
1)
2) 同理,根据
3) 对已有的
Step 3:对控制多边形的各边赋权值,再用非均匀Catmull-Clark细分方法的轮廓删除模式进行细分迭代。
图8. G1填充曲面的初始控制网格
图9. (a) 构成三边洞的基曲面片;(b) 三边洞G1连续填充
图10. 五边洞G1连续填充
本文研究了Catmull-Clark细分曲面与NURBS曲面的融合。在用非均匀Catmull-Clark细分方法的轮廓删除模式构造N边曲面片的基础上,为NURBS曲面的混合和N边洞填充给出了具体算法。同时,还提出了用非均匀Catmull-Clark细分模式构造N边曲面片的角点插值法,通过改变边界附近的边所对应的参数,把角点插值法归入了非均匀Catmull-Clark细分方法的轮廓删除模式,并由此给出了N边洞的一个填充算法,填充曲面和基曲面G1拼接。本文给出的算法都已在微机上实现。实验表明,本文的算法简单、有效。
中国国家自然科学基金(51175248/E050603),南京航空航天大学基本科研业务费(NZ2013201)。
江南,唐月红,饶洁屏. NURBS曲面片的混合与填充 Blending and Filling of NURBS Patches[J]. 计算机科学与应用, 2016, 06(01): 21-29. http://dx.doi.org/10.12677/CSA.2016.61003
http://dx.doi.org/10.1023/A:1018945708536
http://dx.doi.org/10.1016/S0167-8396(01)00040-1
http://dx.doi.org/10.1016/S0167-8396(01)00038-3
http://dx.doi.org/10.1007/978-3-540-73843-5_8
http://dx.doi.org/10.1016/j.cagd.2007.12.005