谷香丽 魏威 杨欣
摘要:为了实现消费级非专业设计者,能在自由创意建模过程中实现创新创意的自由表达。本文通过研究三维点云结构、网格变形技术和细分算法,提出了新的基于自适应细分的创意变形技术,通过交互实现对三维模型的局部变形和细分,达到模型形变的精细级控制,使得非专业用户可以像“捏橡皮泥”一样自由地通过雕刻、拖拽等功能进行创意设计。
关键词:自由变形;创意设计;局部自适应细分
1 引言①
随着三维打印技术的普及,消费级三维打印在家具家电、智能可穿戴设备和文化创意(珠宝、玩具和动漫手办)等个性化较强的领域,开始被广大用户关注并体验,越来越多的大众都有亲手建模的需求,面对庞大人口基数的消费者市场,三维打印技术的市场潜力巨大。而目前大部分三维建模系统门槛高、难度大,且消费级用户的专业设计能力较弱。如何简单并直接地让设计者的创意发挥出来一直是三维建模技术中的主要难题。针对该问题,需提出新的创意变形建模方法,用于创意设计。让用户像“捏橡皮泥”一样自由地通过雕刻、拖拽等功能进行创意设计。
而目前大部分建模系统采用非均匀有理B样条(NURBS)进行建模,一方面,采用NURBS曲面造型系统,使得建模门槛过高、学习难度大;另一方面,虽然NURBS在航空、汽车和航海上得以应用,但是NURBS在表达复杂自然形状方面会遭遇拓扑问题,NURBS很难表达复杂的拓扑。因此人们提出曲面细分方法,该方法是基于网格细化的离散曲面表现形式,实现从任意拓扑网格构建光滑曲面。让用户在创意建模时,具有更高的灵活性,而不需要考虑复杂的技术细节。目前已有很多经典的细分变形方法,包括基于四边形网格细分的Catmull-clark模式,基于三角形网格细分变形的Loop模式,基于任意多边形网格细分变形的Doo-Sabin模型等。其中文献[1]、文献[2]和文献[3]均基于Catmull-clark细分变形规则,提出基于四边形网格的可调自适应细分方法,改善了传统Catmull-clark均匀细分规则,加入调节控制因子,增加曲面细分造型的灵活性。文献[2]又采用曲面上点的曲率控制细分次数,控制模型数据量的同时达到良好的曲面造型效果。文献[3]引入尖锐边概念,使光滑的细分曲面能够表示尖锐特征,实现造型的多样性。文献[4]则以传统Loop均匀细分方法为导向,提出基于三角形网格自适应细分方法,类比于文献[2]中以曲率为控制细分因子,该文提出二面角准则控制模型细分次数,降低曲面片数量。文献[5]将B样条曲面的节点嵌入算法推广到任意拓扑网格上,突破单一类型网格细分,实现任意的多边形网格细分。
本文提出一种基于三角网格自适应曲面细分的自由变形方法,并应用到创意建模中。该方法总体分为三步,首先,构造新的基于交互的创意变形控制方法,控制交互拾取的网格顶点自然、光顺变形;其次,引入以Loop细分模式为背景的可调细分规则,对网格变形区域进行细分,增加网格细分變形的灵活性;最后,提出新的细分控制规则以提高细分变形效率。本文提出的基于交互的细分变形方法,对要造型处理的部位进行曲面细分,实现形状的精细级控制,支持用户创意的表达,用于创意设计,降低创意设计操作门槛,打通万众创新与 3D 打印制造的对接通道,吸引广大消费者的使用。该方法可以更高效灵活地、更准确地让创作者的创意发挥出来。基于细分的创意建模流程图如图1所示。
2 创意变形建模技术
为了实现模型的创意变形,并降低创意建模门槛,让新手能够快速上手,本文提出了新的创意变形技术,该技术只需要设计者按照自己的设计意图,像捏橡皮泥一般,在模型需要变形的区域拖动鼠标,即可达到选中区域变形,另外该方法实现了变形区域与非变形区域的光滑过度,使变形区域更加自然。
对于本文提出的创意变形方法,首先,遍历创意变形曲面的局部三角形网格,然后对该区域内所有的三角形顶点依据如下规则进行自由变形。
1)设拾取半径为r,偏移峰值为h。
如图3所示,采用以上控制变形方法,在模型上拖动鼠标进行交互操作,实现对模型的局部自由变形。其中图3a为初始三角网格模型,图3b和图3c则是采用 控制变形函数对模型进行局部变形结果,由变形结果可以看出,模型变形区域与非变形区域之间的过渡比较光顺、自然。
然而,直接对模型进行创意变形,难以贴合设计师的创作意图,会使变形模型显示粗糙,在模型变形的过程中增加曲面细分技术,可提高模型的光顺性,提升模型的美观。因此本文提出以Loop细分模式为背景,并加入细分控制因子,构造新的细分规则实现对初始网格的自适应细分,以适用该章节提出的基于交互的自由变形方法。
3 曲面细分方法
曲线细分的基本思想是每次细分都在每条边上插入一个新的顶点,如图4所示。可以看到随着细分次数的增加,折线逐渐变成一条光滑的曲线。
类比于曲线细分思想,曲面细分则需要有几何规则和拓扑规则(鉴于文献[6]),几何规则用于计算新顶点的位置,拓扑规则用于确定新顶点的连接关系。下面介绍基于Loop细分模式的三角形网格细分方法。
Loop细分算法分为传统Loop细分方法和可调控Loop细分方法。对于传统细分方法,Loop细分算法由Charles Loop提出,该算法先后采用网格拓扑规则和几何规则完成细分。其中拓扑规则就是在三角形每条边上添加点,并将新添加的点两两相连,由一个三角形分裂为4个新的三角形,即4倍细分,如图5所示。那么几何规则是在添加新顶点后,按照一定规则更新网格中所有顶点位置,在更新过程中使新的网格更加光顺。由于细分一次,三角形的个数增长为原来的4倍,那么随着细分深度的增加网格数量急剧增长,另一方面,传统的Loop细分方法采用固定的细分模式,在细分过程中我们无法对细分曲面进行有效的形状控制。
在自适应细分方法中,采用三角形最大边长?A(f ) 作为控制因子,来判断当前三角形是否满足给定阈值?,如果满足则不再进入下一次细分;否则继续采用给定细分方法细分。其中对于非活动面,不在其边上插入新的顶点,对于活动面,采用可调Loop细分规则进行插入新点和更新已有顶点。对于新创建的面继续采用式(6)进行判断,并更新网格直至所有三角面满足式(6)。该方法可以有效控制曲面细分次数,在达到有效表达创意者意图的同时,减少细分变形区域的面片量。
4 基于细分曲面的自由变形技术应用
基于细分曲面的自由造型方法,实现通过拖拽物体表面元素来编辑细分曲面物体的创意变形。根据变形量以及变形方式对模型进行动态划分和调整,保证模型光顺性,实现模型创意设计的自由表达。本文采用?作为三角形边长的控制参数,来判断三角形的边长是否满足给定的阈值?,如果三角形的边长小于给定阈值则不继续细分,否则继续用给定的细分规则进行细分。
本文提出的自适应细分变形方法进行曲面创意造形规则。
4)在需要细分的三角形的边上采点,将三角形采用可调的自适应Loop细分方法进行采点细分。
5)找到分割边的邻接三角形,补充新的边,修复网格。
6)平滑新产生的点。
该细分曲面造型方法提高了模型显示的光顺性,更加贴合创作者的设计意图。
如图7所示,展示了采用不同方式对原始模型进行变形,图7b展示了为采用细分方法直接对模型进行创意造形结果,从左上方的细节图可以看出,变形后的区域出现狭长三角形,当变形过大时,变形三角形会更加狭长,甚至出现面片的自相交现象。图7d是运用传统Loop细分方法对模型进行创意变形,从细节图中可以看出,参与变形的三角形进行了细分,但面片数量明显增加。图7c是运用本文提出的可调自适应Loop细分方法对模型进行创意变形,可见,细节图中面片数量明显少于图7d中的面片数量。
通过实验结果对比可以看出,本文提出的方法更具有丰富的表现力,在达到创作者意图的同时,降低操作门槛,简化操作流程,提高模型的创意效率。另外,在进行模型细分变形时,可以有效降低网格面片增长数量。
5 结束语
本文将细分曲面技术和自由变形两大关键技术应用到创意建模中,提出了基于细分曲面的创意建模技术,实现三维模型自由设计。其中自由变形技术采用新的自由变形规则,实现了变形区域与非变形区域的光滑过度,使变形区域更加自然;另外曲面细分采用传统Loop细分方法,并引入自适应细分方法和形状控制因子来控制变形区域模型的细分层次,优化变形区域。该技术简洁高效,可在基于web的三维建模工具中实现三维模型实时的创意设计。
参考文献
[1] 任水利.基于四边形网格的可调细分曲面造型方法[J].计算机应用,007,27(5):1119-1121.
[2] 赵宏庆,彭国华,叶正麟,等.自适应细分方法进行曲面造型[J].计算机应用研究,2006(9): 72-74+77.
[3] 朱贤益.三维自由创意建模技术的研究与实现[D].长沙:湖南大学,2016.
[4] AMRESH A,FARIN G,Razdan A.Adaptive subdivision schemes for triangle meshes[Z].Hierarchical and Geometric Methods in Scientific Visualisation,2003:319-327.
[5] DOO D,SABIN M.Behaviour of recursive division surfaces near extraordinary points[J].Computer-Aided Design,1978,10(6):356-360.
[6] 王國瑾,汪国昭,郑建民.计算机辅助几何设计[M].北京:高等教育出版社,施普林格出版社,2001.
[7] 赵付青,艾鑫.可调自适应三角网格的细分曲面造型方法[J].计算机工程与设计,2011,32(001):232-235.