杨 雪 ,孙红岩,3 ,董 雨 ,孙晓鹏,2
1(辽宁师范大学 计算机与信息技术学院 计算机系统研究所,辽宁 大连 116029)
2(智能通信软件与多媒体北京市重点实验室(北京邮电大学),北京 100876)
3(重庆中星微人工智能芯片技术有限公司,重庆 400722)
随着计算机模拟真实物体能力的提高,曲面变形(surface deformation)过程能够被精确模拟.为满足美学、力学等方面要求,可利用计算机对曲面的展开与折叠进行模拟设计,得到理想结构.除此之外,展开与折叠生成的形状丰富,功能强大,实际应用广泛,如图1 所示,该方法广泛应用于工业设计[1-3]、生物医疗[4-6]、智能机器人[7-11]、家具设计[12-14]等领域.
Fig.1 Application of folding and flattening method图1 折叠与展开方法的应用
按照是否可展进行划分,曲面可分为可展曲面与不可展曲面.可展曲面能够等距变换到二维平面,并且不产生任何扭曲或断裂.对等价于可展曲面的模型,可以通过计算模型上面片的展开路径,使其在不发生碰撞的情况下直接展开;对等价于不可展曲面的模型,则需要通过控制模型失真程度,找到合理的展开方式,使模型展开成理想平面.对于曲面折叠问题,二维或三维模型都可以通过合理设计折痕位置与折叠角度,变形生成所需的形状结构.展开与折叠是曲面变形领域最受关注的问题之一,大部分展开方法将曲面形状从三维向二维转换,而折叠方法是二维向三维转换,两者都涉及空间转换问题,其总体目标一致,都希望实现物体的空间形状转换.
早期,在展开与折叠方面已有较多文献,例如,2013 年,王红艳[15]主要关注三角网格曲面的展开;2016 年,郭凤华等人[16]对近年来的网格参数化方法进行总结;2018 年,徐跃家等人[17]主要关注折叠方法在建筑领域的应用;2018 年,李笑等人[18]主要关注折纸方向中的折痕设计.这些文献部分时间较早,缺少最新研究进展,部分文献着重关注力学或应用领域,不强调相关算法.而本文主要关注先进的展开与折叠算法,重点介绍该方面的最新进展,针对曲面的展开与折叠方法进行分类,然后对各类方法进行分析讨论,总结已有方法的优势与局限性,并对未来的发展趋势进行展望.
本文第1 节主要介绍展开与折叠方法的基本概念及评估准则.第2 节主要介绍并比较曲面展开方法.第3节主要介绍并比较曲面折叠方法.第4 节介绍展开与折叠在工业设计、生物医疗、智能机器人、家具设计等领域的广泛应用.第5 节分析总结本文综述的各类方法,讨论该领域的研究现状以及面临的挑战,并对未来的发展趋势进行展望.
本节对曲面展开与折叠涉及到的基本概念进行整理.不同目标的展开与折叠方法存在不同角度的评估准则,下面根据各类算法的衡量标准,选取具有代表性的评估准则进行讨论.
曲面的展开与折叠本质上都是二维和三维空间上的曲面变形,为了清晰明确表达曲面的变形过程,我们使用离散网格模型表示输入曲面,记网格模型为M={V,E,F},其中,V={v1,…,vV}表示顶点集合,E={e1,…,eE}表示边集合,F={f1,…,fF}表示面片集合,并且fi∈V×V×V,ei∈V×V.
对于曲面展开方法,输入模型M∈ℝ3,M的变形目标是使其局部距于二维平面,并且尽可能使面片连续铺平到二维平面上,生成展开网格Ω∈ℝ2.本文将曲面分为可展与不可展两类进行讨论:可展曲面上任意一点的高斯曲率为0,在无需拉伸与剪切的情况下,能够等距变换到二维平面上,变换过程中不产生任何失真,可直接规划面片的展开路径进行展开;而不可展曲面在展开过程中一定会存在面积、角度等失真,因此要根据具体需求设计模型M的变形过程,生成近似可展形状,从而达到预期展开效果.
对于曲面折叠方法,本文将其分为二维折叠与三维折叠两类进行讨论:二维折叠中,折叠模型M∈ℝ2,M的变形目标是根据折痕、折叠角度等生成目标折叠形状Ω∈ℝ3;三维折叠中,折叠模型M∈ℝ3,M的变形目标是重新对模型的组件或体素进行拆分组合,然后通过折叠实现形状转换.一般情况下,空心模型的目标转换形状Ω∈ℝ2,实心模型的目标转换形状Ω∈ℝ3.
由于曲面展开与折叠的变形目标不同,因此本节分别对其进行讨论,并且根据常见的算法衡量准则给出如下评价准则.
1.2.1 展开领域
(1) 拟共形失真
为衡量各种方法展开曲面的质量,可利用失真度量来量化失真.文献[19]使用拟共形失真(quasi-conformal distortion)度量曲面展开的扭曲程度,网格模型上每个三角面片的拟共形失真被可视化为,Γ和γ分别表示雅可比矩阵的大特征值和小特征值[20],当且仅当时,映射完全等距,不存在失真.网格模型的平均拟共形失真Eqc可定义为
(2)L2面积失真
部分方法可通过添加圆锥奇点,减少曲面展开的面积失真,面积失真越低,证明展开的二维平面与三维曲面面积越相近,扭曲程度越低.但是,该类方法可以通过添加更多的圆锥奇点减少面积失真.为了公平比较各种方法的优劣,可以将圆锥奇点的数量n作为一项算法成本,比较哪种方法能在最低成本下得到最小的面积失真.文献[21]使用对数保角缩放因子u的L2范数测量面积失真E(u).
其中,A表示网格模型的面积.
(3) 网格分段数量
由于大多数三维网格模型无法在保持原有拓扑结构的情况下变换到二维平面上,因此模型展开过程中往往会伴随分割模型的情况.当网格分段数量较少时,模型拓扑结构改动较少,面片的连续性较强,但是在某些细节特征区域,展开产生的失真较高;当网格分段数量较多时,面片连续性较差,每段平面网格面积小,整体结构零散,但是能够保留模型的细节特征,展开产生的失真较低.
1.2.2 折叠领域
(1) 逼近误差
在曲面折叠的方法中,通常计算折叠曲面形状S与目标曲面形状Ω之间的逼近误差测量折叠质量.为量化逼近误差,文献[22]引入折叠镶嵌曲面S与目标曲面Ω间的距离d(S,Ω)来表示逼近误差,d(S,Ω)的定义如下.
其中,x与y分别表示折叠曲面S与目标曲面Ω上的顶点;d(x,y)表示x与y之间的欧氏距离;d(x,Ω)表示从x到目标曲面Ω上y集合之间的最短距离;d(S,Ω)用于测量S与Ω两个曲面之间的差异,其意义与Hausdorff 距离相似.d(S,Ω)值即可表示折叠曲面与目标曲面的逼近误差,d(S,Ω)值越小,表示两曲面逼近精度越高.
(2) 视觉效果
虽然大多数曲面折叠方法的目标是使输入模型折叠M变形成目标形状Ω,但是形状逼近的形式有很多种,例如,部分方法追求外观形状相似,部分方法追求内部结构相似,部分方法追求纹理特征相似等.通过视觉效果的比较,能够明显区分各类方法的侧重点以及实验效果.
本节分别对曲面展开与折叠的基本概念及评估准则进行总结讨论,曲面展开方法大多以失真度量作为评价算法优劣的标准,失真越低,证明展开的结果更优;曲面折叠方法大多以逼近误差作为评价准则,逼近误差越低,证明折叠形状与目标形状越相似,方法更优.
在本节中,我们给出曲面展开方法的分类.不可展曲面的展开方法包括:(1) 建模可展曲面;(2) 控制失真;(3) 利用辅助材料.可展曲面可以通过计算面片展开路径进行展开.本节主要介绍如何利用上述方法展开曲面,并讨论各种方法的优劣,表1 总结了每个类别的代表性方法及其输入输出模型维度.
Table 1 Representative methods of surface flattening表1 曲面展开的代表性方法
近年来,建模可展曲面大多采用基于网格的方法,该方法在三维模型上进行网格分割,使用分段区域逼近输入模型.2004 年,Mitani 等人[23]使用一组连续平面条带逼近网格模型,首先在三维网格模型上提取特征线,按照特征线及边界线将模型分割成条状区域;然后增加额外切割线,保留原有模型的重要特征;最后平滑切割线,通过网格优化生成与切割线对应的新条带.但是该方法建模的可展曲面只在视觉上与输入模型相似,实际的逼近精度较低,条带边界呈锯齿状;除此之外,该方法必须通过试错找到合适的参数,不能指定输入网格模型的近似误差.2006 年,Shatz 等人[24]同时使用平面区域与锥形区域划分三维模型,建模可展曲面.该方法首先对三维模型进行初始分割,为保证每个区域可展,初始会产生过度分割;然后迭代修改初始分割,减少分割片段的数量;同时优化每个区域的形状,使其近似于圆锥;最后细分边界,提取光滑的曲线边界,生成可展曲面.该方法生成的分段区域边界光滑,在曲面特征细节较多时,每段区域面积较小,能够保留曲面细节,但曲面分段数量较高,会在拼接粘合过中程产生较大工作量.2008 年,Pottmann 等人[25]提出了半离散曲面的概念,这种表示方法利用单曲面覆盖自由曲面形状,建立光滑曲面和离散曲面之间的连接.该方法使用一组可展条带(D-strip)建模网格模型,可展条带通过按行细分四边形网格得到,网格的列不进行细分,保持原样,因此可展条带是共轭曲线网络的半离散表示.这种半离散曲面概念仅适用于具有光滑边界的可展条带,对零碎的可展面片效果不理想.2009 年,Liu 等人[26]给定建模可展曲面的全局误差范围,根据误差范围迭代将矩形参数曲面裁剪成一组三角形条带,从而逼近可展曲面,三角形的宽度在展开后几乎一致.该方法能够控制建模可展曲面的误差范围,但只能处理矩形自由曲面.
2012 年,Solomon 等人[27]进一步利用直纹线改进离散建模可展曲面的方法,将直纹线作为折痕,通过细分、松弛直纹线折叠生成可展曲面.该方法首先由用户输入初始的折叠构型:多边形区域P、折痕线、折叠角度,然后在保留几何特征的前提下添加直纹线,并对直纹线进行细分,最后使用离散平均曲率弯曲能量进行松弛,得到更光滑的弯曲区域.该方法允许用户以交互的方式探索可展形状,离散平均曲率弯曲能量能够进一步松弛直纹线,产生光滑弯曲形状,提高可展曲面逼近精度.但是该方法仅针对直线折痕,并不针对弯曲折痕.
2016 年,Tang 等人[28]利用基于用户驱动的样条网络建模可展曲面.样条是以下基函数的线性组合.
其中,Ni(t)是B 样条基函数,t是控制参数,ai是样条曲线的控制点.为建模高质量的复合可展曲面,需要对复合曲面的各个自由度进行建模,其他基于网格方法生成的可展曲面通常由平面面片与直纹面片组成,自由度较低,基于样条网络建模方法能够建模多个自由度的曲面,同时不会减少可用形状的多样性.该方法无需提高网格分辨率,即可直接处理光滑的曲面.然而该方法不考虑模型的连续展开,没有处理网格重叠情况,并且与要预先确定输入模型的分解组合.
2017 年,Schüller 等人[29]利用“拉链包”的思想,根据螺旋曲线为三维模型设计拉链条带样式的可展曲面:首先,将输入模型M分解成多个拓扑圆柱区域Ci;然后对每个圆柱区域进行无缝的全局参数化,通过在展开平面上设计直线,生成三维模型上的螺旋曲线;最后沿着螺旋线切割,进行重新网格化,保证三维模型近似为可展曲面.与其他方法相比,该方法更侧重生成单一连续的可展条带,不重点考虑保留三维模型的尖锐特征.
2018 年,Stein 等人[30]在基于网格方法的基础上引入直纹线,提出了变分方法,通过设计输入三维网格模型M的直纹线,将模型M离散为由接缝曲线分隔的可展曲面.该方法对所有的顶点进行分类,首先定义St(i)表示包含顶点i的单纯形集合,如果集合St(i)被分隔成两个区域,并且两个区域由两个公共边连接,每个区域中面片单位法向量Nijk一致,那么St(i)是铰链结构.铰链结构的一种特殊情况是平坦结构,St(i)为平坦结构时,其包含的所有顶点i共面.如果所有St(i)都为铰链结构,那么模型M离散可展;如果某个St(i)不是铰链结构,那么顶点i为曲面接缝顶点.图2 中,左图表示铰链结构经过高斯映射N后的结果,右图表示平坦结构经过高斯映射N后的结果.
Fig.2 Two types of vertex sets[30]图2 顶点集合的两种类型[30]
假设St(i)被分隔成两个区域F1,F2⊂F,两个区域中三角形的数量分别为n1,n2.定义平均面片法向量,集合P:={F1,F2},以下公式能够量化区域St(i)类似铰链的程度.
该方法建模的可展曲面能够保留输入模型的部分高斯曲率特征,建模结果不受输入网格镶嵌的影响,健壮性较高,但是过度的噪声会影响建模曲面形状.
2018 年,Rabinovich 等人[31]提出使用离散正交测地线网(discrete orthogonal geodesic nets)建模可展曲面,从交互建模可展曲面的角度考虑,如果不能预先知道输出模型形状,无法建立直纹曲面.而离散正交测地线网是从局部建模,经过变形产生的三维形状都可展,无需计算全局直纹线,不受拓扑结构影响.但是该方法在速度上具有局限性,编辑系统只能交互处理大约1 000 个顶点的网格.
图3 将Bunny 模型作为输入,比较文献[23,24,28-30]建模可展曲面的结果.从图中能够看出:文献[23,29]的建模精度较低,但文献[29]生成的可展条带更加连续;文献[24]生成的可展曲面内部存在奇点;文献[28]生成的可展曲面更加光滑,曲面自由度较高;文献[30]的建模结果能保留输入模型的部分高斯曲率特征,与输入模型相似度更高.
Fig.3 Modeling results of developable surfaces based on the above methods图3 上述方法的可展曲面建模结果
总体而言,基于网格的可展曲面建模方法考虑使用不同形状的分段可展区域划分三维模型,部分方法引入直纹线,其目的是增强可展性,提高与可展曲面的逼近精度;基于样条网络建模的目的是增强曲面的自由度;基于螺旋曲线建模则是重点关注展开条带的连续性.随着科学的发展,该类方法朝着提高逼近精度、平滑分段曲面的方向改进.但是该类方法生成的可展曲面都是分段光滑的,不是连续光滑的曲面,并且不适用于模拟三维模型的细小特征.
理想情况下,我们希望三维曲面映射到二维平面完全等距,但是曲面在映射过程中或多或少会出现面积与角度失真,不存在完全等距的映射,因此需要尽可能控制失真展开曲面.
2005 年,Julius 等人[32]引入了D 图(D-Charts)网格分割算法,通过计算网格曲面的可展性度量,分割网格,生成纹理地图集.与早期的方法相比,D 图网格分割算法将网格分割成可展性强的图集,能够降低失真,但部分细节特征无法保留.2002 年,Lévy 等人[33]基于Cauchy-Riemann 方程,提出自动生成纹理地图集的最小二乘共性参数化方法(LSCM),首先将模型分解成与圆盘同胚的图,然后对每个图进行参数化,最后将展开的图打包到纹理空间中.该方法能够降低角度失真,不会使三角面片发生翻转,映射后的平面具有自由边界,但是面积失真较高.
2006 年,Kharevych 等人[19]提出了圆锥展开的基本思想:将三维曲面映射到规则多面体上会产生少量面积失真,由多面体展开到二维平面上无需拉伸,不会产生面积失真,因此该过程的面积失真总和较小,多面体顶点的位置可视为圆锥奇点所在位置,但是对于大型模型运行速度较慢.2008 年,Springborn 等人[34]提出了基于离散保角等价概念的网格参数化方法(CETM),迭代扁平化网格,每次迭代中,在面积失真最大的顶点放置一个新锥点,用于降低面积失真.该方法能够有效降低面积失真,但是高度依赖网格的几何形状.2008 年,Ben-Chen 等人[35]根据给定的圆锥奇点及其目标高斯曲率进行保角参数化(CPMS),算法的思想是:将所有曲率集中在少量的选定网格顶点上,这些网格顶点称为圆锥奇点,然后根据圆锥奇点切割网格得到拓扑圆盘的平面.该方法对原始网格中的细长三角形比较敏感,可能会影响计算结果.2012 年,Myles 等人[36]提出了增量平坦的无缝全局参数化方法(GPIF),其思想是演化曲面的度量,从初始度量开始,将曲面面积增长部分约束为具有零高斯曲率,曲率逐渐集中在一组顶点上,这些顶点成为圆锥奇点.该方法首先使用贪心方法从曲面的低曲率区域开始,逐渐将所有曲率集中在孤立的圆锥奇点上,不断演化度量;然后,按顺序对圆锥奇点的角度进行四舍五入,以便在每一步都将能量的增加最小化;最后,进行具有固定全息角的全局ARAP 参数化.虽然这种迭代扁平化方法产生较小面积失真,但是会忽视网格的细节特征.2018 年,Soliman 等人[21]对上述方法进行改进,提出了全局优化策略,通过合理安排圆锥奇点的位置、锥角、数量,使总面积失真最小化.该算法输入网格模型M,输出一组圆锥奇点及其对应的锥角,整个过程的优化问题可描述为如下方程:
其中,M表示模型内部区域,K表示模型内部点的高斯曲率,∂M表示曲面边界,θi表示展开的圆锥角与2π的角度差,δp表示p点的Dirac delta 度量,u表示对数缩放因子,能量E(u)用于度量整个面积失真.使用半光滑牛顿法求解上述优化问题,即可确定圆锥奇点及其锥角.但是,该方法在具有严格正高斯曲率的单位球面上,最优解是具有高斯曲率的每个顶点.
图4 为文献[35](CPMS)、文献[36](GPIF)与文献[21](MAD)在不同分辨率网格上计算圆锥奇点的效果,其中,n表示圆锥奇点数量,Φ表示锥角总和,A表示面积失真度量.可以看出:MAD 算法在不同分辨率的网格上计算的圆锥奇点位置大致相同,不受网格分辨率的影响,具有较好的鲁棒性;并且在圆锥奇点最少的情况下,产生最小的面积失真.
Fig.4 Algorithm results of CPMS,GPIF and MAD on grids with different resolutions[21]图4 不同分辨率网格上CPMS、GPIF 与MAD 算法结果[21]
表2 对文献[21,35,36]方法的圆锥奇点数量n、锥角Φ、L2面积失真A进行比较,从表2 选取的实验模型可以看出:与文献[35,36]相比,文献[21]方法在圆锥奇点数量最少即算法成本最低、锥角相对较小时,产生的面积失真最少.
Table 2 Comparison of the number,angle and area distortion of conic singularities[21]表2 圆锥奇点数量、锥角、面积失真的比较[21]
2002 年,Sorkine 等人[37]提出了第一种具有有界失真的自动参数化方法,开始随机选取一个三角形作为种子三角形展开在二维平面上,每次迭代选取该三角形的最优顶点展开,将展开引起失真最小的顶点作为最优顶点,只有当展开新三角形造成的失真不超过预定义的阈值时才能嵌入顶点,当不再有符合该准则的顶点时迭代停止,选取新的种子三角形进行迭代.该方法为符合失真界限,自动切割网格,然而没有提供最优解,并且没有提供对接缝位置或长度的显式控制.2008 年,Mullen 等人[38]提出了光谱保角参数化方法(SCP),自动计算三角形网格的离散自由边界共形参数化,通过求解稀疏对称矩阵的广义特征值问题,最小化离散加权共形能量,计算出高质量的参数化.但是在一些模型上,会产生三角形翻转与交叉.2008 年,Liu 等人[39]提出了局部/全局参数化方法,首先寻求三角形的局部变换,使网格模型上每个三角形的失真最小化;然后考虑所有三角形的全局缝合操作,将具有圆盘拓扑结构的网格模型保形映射到二维平面上.该方法能够平衡角度与面积失真,得到较好的保形效果,但是仅适用于圆盘拓扑结构的模型.
2017 年,Poranne 等人[40]提出了第一种联合优化切割和几何失真的UV 映射方法,首先对每个三角形分别进行参数化,然后利用吸引能量鼓励参数化在匹配的边缘对上连续.该方法可以动态优化UV 映射,用户可以交互式地移动顶点、切割网格、连接接缝以及控制参数化面片在UV 空间中的放置,其局限在于没有消除全局重叠,需要用户手动分离重叠区域,而且只有当输入网格大约包含2 万个三角形的范围内时,该方法才有足够的响应.图5 展示了文献[40]方法与文献[37]方法参数化结果的对比,文献[40]方法产生更少的剪切与面片集.2019 年,Li等人[41]对上述方法进行改进,提出了完全自动的全局参数化算法,由用户提供所需的失真范围以及初始切割,无需设置参数,自动寻求最小的接缝长度,以满足输入的映射失真范围.该方法能够获得规定失真范围的双射映射,并且同时最小化缝长度,但是该方法没有被证明具有最优性和收敛性.
Fig.5 Comparison of parameterization results between Ref.[40]and Ref.[37]图5 文献[40]与文献[37]参数化结果对比
2017 年,Sawhney 等人[42]提出了可交互编辑的边界优先展开算法(BFF),由用户输入理想缩放因子u或者边界顶点的目标曲率密度k~,然后利用Cherrier 公式和Poincaré-Steklov 算子构造边界数据,最后将映射扩展到内部区域.边界优先展开(BFF)算法是一种线性保角参数化方法,比传统的线性方法速度快,其参数化质量可与复杂的非线性方案相媲美,但它的重要限制是只适用于具有磁盘拓扑的区域.2018 年,Sharp 等人[2]使用变分方法来剪切曲面,通过在三维曲面上控制剪切曲线的长度,保证剪切后的曲面保角映射到二维平面后具有较低的面积失真.首先输入三角网格模型M,并且给定初始的剪切曲线γ,为了降低面积失真需要对曲线γ进行优化,N是一条剪切曲线γ上的单位法向量,曲线γ的演化可以用以下公式表示.
其中,u是曲面沿γ剪开后应用保角映射引起失真的对数保形缩放因子.缩放因子u通过解Yamabe 方程得到.该方法通过平衡剪切线长度与面积失真大小生成剪切曲线,但是在离散网格上,如果两条剪切线非常接近,在某个顶点可能会出现相交的情况.2019 年,Lyon 等人[52]提出了全局无缝参数化的广义量化方法,在不强制边界对齐的情况下,生成整数网格映射.该方法通过几何引导提高效率,但是采用贪婪策略,不能保证全局最优.
文献[19,34,35,37,42]对曲面展开产生的平均拟共形失真Eqc以及运行时间(单位:s)进行比较,比较结果见表3.从表3 可以看出:当失真程度相差不多时,文献[35]比文献[19,37]运行速度快,文献[42]比文献[34]运行速度快.
Table 3 Comparison of average quasi-conformal distortion Eqc(running time)表3 平均拟共形失真Eqc(运行时间)比较
文献[33](LSCM)、文献[38](SCP)、文献[42](BFF)、文献[34](CETM)的面积失真比较结果如图6 所示,其中,u是对数缩放因子,代表面积失真大小,红色表示面积失真增大,蓝色表示面积失真减小,0 表示不存在面积失真.与LSCM,SCP 算法相比,BFF 算法产生的面积失真更小,几乎与昂贵的非线性方法CETM 相同.
Fig.6 Comparison of area distortion between BFF and LSCM,SCP and CETM algorithm[42]图6 BFF 与LSCM、SCP、CETM 算法面积失真比较[42]
基于纹理地图集的方法通过调整纹理映射减少展开曲面的失真,但部分方法对输入模型有限制;基于圆锥奇点展开曲面产生的失真较小,但是需要计算曲面上嵌入圆锥奇点的最优位置,相对成本高;定义有界失真的自动参数化方法能够规定失真范围,但不能得到最优解;计算剪切线的参数化方法通过优化切割降低展开失真,但该方法展开的平面不单一连续,分段数量较多.
本类方法主要关注如何利用辅助材料展开曲面,辅助材料在受力作用下,能够产生二维与三维之间的自驱动变形,丰富三维形状空间.除了直接设计曲面的展开方式外,还可以利用辅助材料展开曲面,使曲面能够在多个几何结构之间转换.
2016 年,Rafsanjani 等人[43]提出了双稳态拉胀(auxetic)结构,拉胀结构是具有负泊松比的柔性结构,在受力情况下能够均匀拉伸到一定程度.早期设计的拉胀连杆结构单一,在消除拉伸力后不能保持当前形状,而双稳态是指连杆受到拉伸力从静止状态开始膨胀,膨胀后整个曲面进入稳定平衡状态,曲面不会因撤掉拉伸力发生变形.该方法通过改变基本剪切的几何形状,控制连杆结构的膨胀性、刚度和双稳态.然而,这种图案结构复杂,耗时较长.2016 年,Konaković 等人[44]利用拉胀连杆结构展开曲面,在近似不可扩展的材料上(例如金属、塑料等)设计剪切切口得到拉胀连杆的平面结构,平面结构内的连杆单元根据切口布局能够发生旋转,从而使材料均匀拉伸到一定的极限,这种拉伸能够生成不同的形状.如图7 所示,该模式为规则的三角形连杆,在对完全闭合的连杆(最左)进行拉伸时,三角形发生旋转,产生具有空间变化半径的六边形开口,单个连杆单元在最大拉伸情况下变形成规则的六边形开口(最右).将给定的三维曲面保角映射到二维平面后,在二维平面上应用该剪切模式并进行拉伸,能够产生逼近原曲面的连杆结构.该方法能利用三角形连杆模拟三维曲面,但是连杆的旋转开口不均匀,不能最大程度地节省材料.
Fig.7 Deformation of regular triangular linkage under tension[44]图7 规则三角形连杆在拉伸作用下的变形情况[44]
2018 年,Konaković-Luković 等人[6]对上述方法进行改进,针对目标连杆布局优化平面拉胀连杆结构,得到带有空隙的中间状态连杆,中间状态连杆在受作用力的情况下能够快速展开成三维曲面,并且展开的连杆单元全部处于完全展开(规则六边形开口)状态,连杆布局更均匀.目前,该方法只能利用拉胀连杆的各向同性膨胀模拟具有正平均曲率的曲面,未来可以考虑添加额外的附加条件扩大可展开曲面的形状,考虑使用拉胀连杆模拟更复杂的曲面.
图8 展示了文献[44]与文献[6]两种方法的比较结果.文献[44]中,初始平面三角形连杆元均匀、处于完全闭合状态,在设计平面布局时需要用户指导,对平面连杆进行交互拉伸后,生成的三维曲面连杆单元不均匀且部分扩展.而文献[6]的初始连杆是经过优化后的中间状态连杆,生成中间状态的计算过程全自动,无需用户指导,中间状态连杆处于部分扩展状态.在该结构上施加重力或膨胀力,能够自动产生均匀、完全扩展的三维曲面.该类展开曲面方法采用不同平面剪切模式作为拉胀连杆静止结构,连杆受力展开后能够模拟三维曲面,但是模拟的曲面是镂空结构,面片之间存在空隙,应用范围有限.
Fig.8 Comparison of plane closed structure and developed structure between Ref.[44]and Ref.[6]图8 文献[44]与文献[6]的平面闭合结构与展开结构比较
除了使用连杆结构外,还可以借助其他辅助材料实现曲面展开.2017 年,Guseinov 等人[45]提出了能够展开曲面的弯曲壳结构.该结构由瓷砖块组成,瓷砖块之间由预拉伸的弹性薄板固定连接,一旦预拉伸力被释放,瓷砖块之间会产生收缩力,使平面结构的弯曲壳变形为曲面结构.但是该结构预拉伸的能力有限,并且由多种材料组成,制作复杂.2019 年,Choi 等人[46]利用剪纸艺术Kirigami 思想切割平面,生成紧凑的平面Kirigami 镶嵌,然后优化平面Kirigami 镶嵌的形状,使其展开后逼近目标曲面形状.虽然该方法能逼近任意曲面形状,但是Kirigami 镶嵌不规则,布局不均匀,生成的曲面视觉效果不好.2019 年,Malomo 等人[47]利用螺旋微结构建立柔性展开结构,用于从扁平柔性面板上制造具有特定机械性能的平滑形状.该方法通过不断改变螺旋结构的形状来控制局部弹性,以获得不同的弯曲和拉伸性能.但是,当前制造技术的分辨率会限制对尖锐特征和高频曲率细节的建模.
利用辅助材料展开曲面的目的是借助外部工具将平面结构直接展开为三维结构,展开的三维结构能够等距变换到二维平面,每点的高斯曲率不全为0.该类方法利用材料的力学性能自驱动变形,快速进行形状转换,但制作材料较为复杂,并且展开的形状有限.
多面体网格局部等距于二维平面,可看作可展曲面,其展开过程不涉及面积失真.该类方法的目的是寻找多面体网格的无碰撞展开路径,按照路径展开生成平面网格.
2011 年,Takahashi 等人[48]利用启发式方法研究无形状失真的三维网格展开.该方法首先将输入的三维网格分解展开成具有少量面片的多个集合;然后将部分断开的面片沿边界缝合起来,这样可以在避免自重叠的同时最小化断开的面片数量;最后,重新排列断开的面片集合,优化断开面片的集合数量.但是,如果网格模型的面片数量超过1 000,那么可能无法生成单一完整的展开网格.2015 年,Xi 等人[49]按照面片连接情况,将多面体网格建模为树型铰链结构,并利用运动规划技术找到连续展开多面体的正确路径.多面体的展开状态可以通过网格模型对偶图的生成树得到,定义M表示网格模型,网格模型的图表示为G(M)=(V,E),G(M)的对偶图被定义为G′(M)=(V′,E′),E′={(a,b)},a,b是在M中共享一条边的面片序号,通过寻找对偶图G′(M)的生成树,可以得到展开结果.该方法能够成功展开大部分多面体网格,但是无法展开大型复杂的非凸多面体.2016 年,Xi 等人[50]为了展开大型多面体,并且保证网格展开到二维平面后不发生重叠,在展开多面体之前,考虑对多面体网格进行分割.首先估计每对面片不重叠展开的可能性,然后将网格分割成高概率有效的面簇,计算聚类后的可折叠性矩阵,按照聚类分割网格,如果任何一类不能展开成平面,或展开后不能折叠回原形状,进一步对该类分割.该过程重复执行,直到所有的面簇都能展开成平面网,并且平面网可以连续地折叠回原三维形状.该方法能够避免面片重叠,同时还够展开复杂的非凸多面体,但是展开的平面网格通常是分段结构,并不单一完整.2017 年,Kim 等人[51]开始研究多面体的不相交凸壳结构,该结构由一组内部不相交的成对凸体组成.从复合形状中构造不相交凸壳便于展开多面体,能够减少碰撞,但是该方法的结果依赖于复合形状.
表4 对文献[48]与文献[50]方法计算的网格分段数量进行比较,从表中数据可以看出:对于面片数量小于2 000 的网格,文献[48]的网格分段数量较少;对于面片数量大于2 000 的网格,文献[50]的网格分段数量较少.
Table 4 Comparison of mesh segmentation numbers between Ref.[48]and Ref.[50]表4 文献[48]与文献[50]的网格分段数量比较
多面体网格展开的思路是计算网格面片的展开路径,按照路径对面片分类,能够连续展开到二维平面的面片被归为一个面片集合.该类方法生成的平面展开网格不存在失真,并且面片之间不存在重叠现象,但平面网格不单一连续,面片集合数量较多.
本节对曲面展开方法进行总结分析,不可展曲面的展开方法分为建模可展曲面、控制失真、利用辅助材料等3 种,其展开过程中都伴随着面积或角度失真,该类方法的核心目标是追求更小的失真以及更满足需求的展开形状;可展曲面可看作多面体网格,通过路径规划分段展开面片,展开过程中不存在失真,其核心目标是追求无重叠的展开路径以及更少的分段面片集合.
在本节中,我们给出曲面折叠方法的分类,针对各种目标折叠需求,将曲面折叠方法分为4 类:弯曲折叠、弹出式折叠、折叠镶嵌、多面体折叠.本节对这4 类方法进行分析总结,并讨论各种方法的优劣.表5 总结了每个类别的代表性方法及折叠对象维度、目标形状维度.
Table 5 Representative methods of surface folding表5 曲面折叠的代表性方法
曲面按照其折痕进行折叠,然后生成光滑弯曲形状的过程称为弯曲折叠.该方法直接在曲面上设计折痕位置、折叠角度,曲面经过弯曲折叠后,能够进一步逼近光滑的目标形状.
2008 年,Kilian 等人[75]使用四边形主体(quad-dominant)网格对三维曲面进行离散可展,这种平面四边形可以在不产生扭曲的情况下简单展开到平面上,也可以进一步进行细分.将四边形主体网格边缘作为折痕进行折叠,能够生成目标曲面形状.但是该方法还存在一定局限性,在褶皱剧烈的区域,折叠的形状可能不是可展曲面.2011 年,Mitani 等人[53]提出了基于镜面反射的曲面弯曲折叠交互设计系统,通过连续反射折叠创建弯曲曲面;同时,该曲面能够等距地展开成平面.该系统能够实现多种弯曲折叠褶皱的交互设计,但是这种反射只产生平面褶皱,不适用于非平面褶皱.2012 年,Dias 等人[54]主要研究环形折叠结构,该结构由环形弹性薄板组成,薄板上具有圆形折痕,环形弹性薄板沿着中心的圆形折痕折叠,根据几何变形的驱动,形成三维马鞍形结构,多个环形折叠结构连接可以形成马鞍面.但是,该结构上的曲线折痕较为简单.2013 年,Zhu 等人[55]提出了交互式的软折叠方法.该方法主要针对薄板进行变形模拟,由用户输入折叠平面、折叠曲线以及折叠的大小和尖锐程度;然后将输入的折叠平面离散成三角网格,计算每个顶点上的折叠算子;最后将局部折叠算子组合生成全局折叠形状,得到折叠后的曲面.该算法在控制折叠大小及尖锐程度的情况下,能够有效地产生复杂的折叠形状,但是仅研究平面薄板的折叠变形,不涉及可展曲面建模,并且折叠形状直接根据折叠场生成,不考虑碰撞情况.
2017 年,Kilian 等人[56]提出了由“弦”驱动的弯曲折叠曲面,该方法更专注于研究驱动折叠的机制.“弦”驱动是指找到平面上的一组弦网络,通过拉动弦网络,驱动平面上多个折痕同时产生弯曲折叠,从而生成目标折叠形状.在该方法中,初始给定折叠的平面模型、折痕、目标折叠形状,初始弦图是所有折痕交叉点与折痕中点连线.根据目标折叠形状,从密集的弦图中进行优化采样得到所需的弦集合,随着时间变化不断收缩弦集合,平面模型按照折痕进行折叠,并产生一段折叠序列,当折叠形状与目标折叠形状相同时停止折叠.该方法具有良好的物理模拟效果,但是该折叠机制并不适用于所有折叠形状,对于复杂的折叠形状需要进一步改进.
2018 年,Rabinovich 等人[57]研究了离散正交测地线网的连续变形,主要展示如何通过支持折痕和弯曲折叠来扩展离散正交测地线网的形状空间.该方法开发的工具支持任意拉伸、切割、弯曲折叠以及平滑和细分操作的可展曲面编辑系统,但是该工作的交互编辑的速度仅限于大约1 000 个顶点的粗糙模型,而且对复杂折痕有限制.2019 年,Rabinovich 等人[58]提出了同时折叠折痕与弯曲薄板的算法,仅利用位置约束,就可以模拟复杂图形的弯曲与折叠.该方法首先输入平面模型与折痕曲线,按照折痕对平面模型进行分段;然后使用离散正交测地网离散整个平面,计算离散正交测地网的弯曲变形;最后对折痕进行山谷分配,使离散正交测地网进行折叠,生成弯曲折叠曲面.该算法最明显的限制是速度,除此之外,算法仅从几何的角度进行研究,不考虑物理意义上的碰撞、材料厚度和弹性特性等.
2019 年,Jiang 等人[59]提出了新型褶皱结构:首先,通过建立与伪测地线的连接,获得可能的褶皱图案;然后初始化并优化四边形网格,使之成为离散的褶皱结构.这种褶皱结构在小尺度上沿曲线呈现锯齿状褶皱,但在较大尺度上能够表示光滑的几何形状.但是如果想要控制褶皱与参考面之间的倾角,那么这依赖于伪测地曲线的图案,当参考面的特征太多时,这些图案往往会陷入混乱,并且垂直褶皱遵循渐近曲线,仅存在于负曲率曲面上.另一个局限性在于,该方法不考虑物理折纸,仅通过建立模型来验证计算结果.
图9 展示了文献[53,55,56,58,59,75]的折叠效果,其中,文献[53,56,58,59,75]的曲面都具有尖锐折痕,折叠后的曲面为可展曲面;文献[55]方法能够调整折痕的尖锐程度,生成的折叠曲面不能保证可展性.文献[53,55,75]主要关注建模的折叠曲面形状;而文献[56]关注弦驱动的折叠机制;文献[58,59]仅从几何角度模拟局部折叠,不关注物理意义上的折叠运动.
基于几何角度考虑的弯曲折叠方法,通过建模离散网格设计折痕形式,将平面网格折叠成目标形状,变形过程中不考虑物理性能,更关注几何变形效果;基于物理角度考虑的弯曲折叠需要在力的作用下,驱动平面网格变形产生褶皱,主要关注物理意义上的折叠运动.
Fig.9 Comparison of folding results图9 折叠结果比较
弹出式折叠是将折纸艺术与剪纸工艺相结合的折叠方法,通过剪切和折叠平面纸张,能够生成三维模型:当纸张打开时,内部贴片弹出,生成三维形状;当纸张对折时,整个模型被折叠成平面.该类方法能够广泛应用于纸建筑、折叠书籍、折叠贺卡等弹出式设计.
2010 年,Li 等人[60]根据用户输入的三维建筑模型自动生成纸建筑:首先,由用户输入指定背景和地面位置以及三维建筑模型;然后计算初始的分段线性曲面来逼近输入模型,用于确保可折叠性;下一步,对曲面进行修改,使用贪婪区域增长算法保证曲面的可实现性;最后进行几何细化,保持可实现性的同时,修正曲面的锯齿形边界.该方法在单独的一张纸上进行剪切,整个算法更侧重于弹出式的可实现性,但由于纸建筑仅由平行于背景和地面两个方向的贴片组成,所以它无法达到完全令人满意的外观.
2011 年,Iizuka 等人[61]提出了交互式弹出贴片系统,该系统将所有贴片分为90°贴片与180°贴片两类:90°贴片是在一张纸上进行剪切、折叠得到,当贴片打开成90°时,弹出三维结构;180°贴片是由多张纸构成,贴片打开成180°时弹出三维结构.该方法由用户交互编辑贴片的位置、比例、倾斜角度等,然后使用质点弹簧模型,模拟贴片折叠与打开的物理运动.但是该方法在物理仿真方面具有局限性,贴片的外观是通过映射纹理图像得到的,并没有模拟模型的物理结构.
2011 年,Li 等人[62]为提高弹出式纸建筑与输入模型的逼近精度,定义了v 型支架弹出结构,该结构由4 个贴片组成,分别标记为G,B,L,R:G,B 贴片分别与地面和背景平行;L,R 贴片相交,位于G,B 贴片上,且不与G,B 贴片相交,不同贴片相交的区域称为铰链.利用v 型支架弹出结构能够生成逼真的纸建筑模型,并且弹出式纸建筑的外观能够逼近输入模型的物理结构.但是该方法不考虑纸张的厚度、重量和弯曲变形,不适用于结构复杂的纸建筑模型.
早期的弹出式设计只关注单一的弹出样式,整个三维模型统一使用单个弹出结构建立.2014 年,Ruiz 等人[63]进一步改进弹出式设计,提出了将三维模型自动转换为多样式弹出结构的方法.该方法使用合适的基元形状来抽象三维模型,既要考虑可弹出性,又要接近输入模型;然后使用二维面片对每个基元形状进行抽象,这些面片组合起来形成有效的弹出结构;此外,还采用基于图像的方法生成面片,以保留输入模型的纹理细节和重要轮廓特征;最后,系统生成可打印的设计布局,为单个结构确定组装顺序.该方法的局限性在于没有考虑到纸张的物理特性,在实际的弹出设计中,纸张的厚度、质量、强度和弹性是重要的考虑因素;除此之外,该方法还需对弹出结构的质量进行定量评估.
2018 年,Xiao 等人[64]提出了第一个帮助普通用户创建转换弹出式书籍的计算工具:给定两个二维模式,该方法自动计算其中一个三维弹出结构,然后将其转换为另一个三维弹出结构.由于该方法使用多边形贴片,因此不容易处理具有弯曲边界的形状.从制造的角度来看,该方法生成的弹出式书籍也没有保证最经济的纸张利用率.
图10 对文献[60,62,63]的弹出式折纸结构进行性比较,从图中可以看出:文献[60]的模型需要建立在相互垂直的背景与地面上,虽然能够成功弹出三维模型,但是弹出效果与输入模型相似度较低;文献[62,63]的模型建立在位于同一平面的背景与地面上,文献[62]的弹出结构由v 型支架搭建而成,能够保留外观的几何特征,文献[63]的弹出结构由不同形状二维面片组装而成,虽然几何特征不够详细,但该方法能够使用纹理来捕捉建筑的细节和形状信息.
Fig.10 Comparison of pop-up folding structure图10 弹出式折叠结构比较
弹出式折叠需要根据目标模型的形状定义平面贴片机制,折叠生成三维形状.在一张纸上设计弹出式结构,简单快速,但形状外观不够精致;在多张纸上建立弹出机制,生成的形状外观逼真,但制作较为复杂;基于映射纹理考虑的弹出结构仅保留输入模型纹理特征与重要轮廓特征,不能保留模型的几何特征.除此之外,该类方法大多不考虑纸张的厚度、重量等物理性能,在制造方面有局限性.
Miura-Ori 镶嵌是具有周期性的折叠结构,因此它能体现出高度对称性,适用于曲面的折叠设计(如图11 所示).该种结构具有4 个几何特性:(1) 能够进行刚性折叠;(2) 只有一个等距自由度,整个结构形状由折痕的折叠角度决定;(3) 具有负泊松比;(4) 能够平面折叠.
Fig.11 Miura-Ori tessellation[66]图11 Miura-Ori 镶嵌[66]
在Miura-Ori 镶嵌的基础上,2015 年,Tachi 等人[65]提出了可以在平面状态下组装的波纹夹层复合面板,该面板由刚性可折叠的Miura-Ori 管组成.这种折纸结构使用耦合技术增加结构的刚度,同时,仍然允许柔性折叠和展开,中间的夹层板能够向两个方向偏移,形成波纹夹层复合面板.这种双向折叠式结构允许高度自由的设计,可以在平坦的状态下制造,当复合板弯曲时,会增强结构的刚性.2016 年,Dudte 等人[66]通过折叠Miura-Ori 镶嵌平面,使其逼近目标双曲形状.该方法通过控制Miura-Ori 镶嵌与目标光滑曲面的Hausdorff 距离,调整Miura-Ori曲面的分辨率,平衡逼近误差与材料消耗,得到合理的Miura-Ori 曲面逼近效果,但是在制造方面,由手工折叠,在速度上有局限性.
2015 年,Chandra 等人[67]提出了交互式的自由曲面折痕镶嵌设计系统,首先在局部上设计曲线折痕图案的框架,然后利用交互式计算方法将这些折痕图案应用于自由曲面,以确保所得到的展开形状可展.该系统在保持全局双曲线几何外观的同时,也保证局部尺度的可展性.需要注意的是:用这种方法模拟的几何形状是一种视觉近似,而不是精确的弯曲几何形状.
Waterbomb 镶嵌是使用最广泛的折纸图案之一,它分为八折痕图案与六折痕图案两种类型[68],如图12 所示.八折痕图案是在正方形纸上由围绕一个中央顶点的8 个交替山谷折痕组成,六折痕模式由两个山折痕和4 个谷折痕组成.2015 年,Chen 等人[69]在Waterbomb 镶嵌的刚性折叠基础上建立非零厚度的厚板结构,模拟薄板的折叠运动.为了避免折叠过程中厚板发生碰撞,所有折叠线不能位于厚板的同一平面,即折叠线部分位于厚板的顶面,部分位于厚板的底面,然后通过约束折痕角度、每段厚板的厚度,使厚板模型与薄板模型具有完全相同的运动过程.但是该方法仅针对特定的折痕设计约束条件,不通用于所有折叠镶嵌.2018 年,Zhao 等人[22]利用Waterbomb 镶嵌折叠纸张逼近目标曲面.该方法首先对输入的三维参数曲面进行uv-参数采样,获得四边形近似网格曲面;然后在四边形中创建Waterbomb 结构,生成基础网格;最后优化折痕角度,得到的可展Waterbomb 结构,按照折痕折叠生成目标曲面.该方法能够利用四边形网格生成Waterbomb 折痕,然后进一步折叠成具有可变分辨率可展近似曲面,但是还需寻找最佳网格密度,以平衡近似精度和制造工作量.
Fig.12 Eight creases pattern and six creases pattern of Waterbomb tessellation[68]图12 Waterbomb 镶嵌的八折痕图案与六折痕图案[68]
文献[66,67,22]针对不同的折叠镶嵌进行折叠,图13 比较了这3 篇文献的折叠效果:文献[66]与文献[22]分别计算平面的Miura-Ori 镶嵌、Waterbomb 镶嵌,然后按照折痕折叠纸张,模拟双曲形状曲面;而文献[67]交互设计镶嵌图案,折叠生成的形状仅从视觉上逼近曲面形状,而几何上并不近似.
Fig.13 Comparison results of related methods图13 相关方法的比较结果
所有折叠镶嵌都具有周期性,自由度低,山谷折痕的分布具有规律性,利用折叠镶嵌逼近目标三维形状简单快速,可通过调整网格分辨率控制逼近误差,但是折叠成的三维形状有限,在制造方面由手工折叠,工作量较高.
从物理角度分析,三维物体按照其密度分布可以分为空心物体与实心物体.空心物体根据自身性质常用于制作礼盒、衣柜等包装性用品,因此将空心物体折叠成平面,能够有效节省存储空间.2014 年,Abel 等人[70]证明:利用凸多面体直骨架的连续运动,能够将任意维的凸多面体折叠成平面;同时,该方法可以避免折叠过程中的面片交叉.该结论使用有序压平过程进行证明,首先将多面体的每个平面进行编号,随后将每个平面向框架内部平移,最后将整个多面体压扁成一个平面.但是该结论只适用于凸多面体,不适用于具有凹形状的多面体.2017 年,Miyamoto 等人[71]为输入的三维网格模型设计相应的刚性板模型,刚性板模型在受到压力后能够完全折叠到二维平面上.该方法首先将输入模型划分为多个分量,并将其转化为凸形状;然后生成最初受力的顶板与横截面折线,使每条折线可以折叠;最后根据顶板和横截面折线生成三维多边形模型,相互连接每个分量,得到刚性板模型.为保证模型的凸折叠,刚性板上的折痕只能是山折痕,不能是谷折痕.在这项约束条件下,生成的刚性板模型与输入网格模型的相似度较低,并且侧板之间相互分离,在实际应用中有局限性.2020 年,孙晓鹏等人[72]提出了各向异性的薄壳收缩变形方法,从而模拟空心三维薄壳的变形褶皱.该方法对模型依次添加外力、弹性能、弯曲能、各向异性能,使模型不受材质影响,实现收缩变形的效果;并且提供适当的弯曲系数,消除变形过程中的抖动;除此之外,该方法考虑变形中的碰撞问题,对模型进行碰撞检测预处理,提高效率,未来可考虑进行自适应网格重建,降低变形前后的收缩比.
虽然实心物体不像空心物体能够进行平面折叠,但是可以在实心物体内部插入铰链使其折叠,实现形状转换.2014 年,Zhou 等人[73]利用连续折叠序列,将三维物体转换为立方体或长方体,立方体和长方体被视为最基本的三维形状,与任何特定形状都不相似,它们可以更容易地堆叠、存储、转换形状.该方法首先在输入形状周围放置网格,并标记包含输入形状的网格,通过将体素与标记网格相交,找到可折叠的体素;然后,通过树拟合找到体素之间的连通性,以便将体素模型折叠成目标形状;最后进行用户交互,解决物理折叠过程中的碰撞情况,得到有效的折叠序列.该方法能够利用体素将三维形状折叠成正方体或长方体,但是体素化后的模型质量不够精确,模型内部的空隙数量与折叠后模型外表的完整性两者需要权衡,所以模型的部分重要特征不能完整保留.上述方法形状转换前后模型的总体积基本保持不变,为了进一步实现模型的体积压缩,2019 年,Hao 等人[74]改进了形状转换方法,使用平面厚板围成的六面体表示每个体素,即每个体素为空心,然后将体素转换为树型结构,这种树型结构可以通过折叠和叠加转换为紧凑的堆结构.该方法能够转换形状的同时,还能压缩物体的体积,但是最终的堆结构依赖于体素化结果,很难用少量相同的平面厚板逼近复杂的光滑形状.
空心物体与实心物体折叠目标不同,本文选取文献[71,73]作为代表性方法,比较空心物体与实心物体的折叠效果.从图14 中可以看出:文献[71]将空心三维模型沿折痕折叠成二维平面;而文献[73]对实心三维模型进行体素划分,并且插入铰链,将三维模型折叠变形成另一个三维形状.
Fig.14 Comparison of polyhedron folding results图14 多面体折叠结果比较
我们将多面体分为空心物体与实心物体进行讨论:空心物体通过计算折痕、施加作用力获得折叠褶皱效果,折叠结果可以是二维或三维形状;实心物体需要按照体素折叠,折叠结果只能是三维形状.
本节对曲面折叠方法进行总结分析,按照折叠对象维度分为二维折叠与三维折叠:二维折叠包括弯曲折叠、弹出式折叠、周期镶嵌折叠,通过在平面上设计折痕,折叠成三维形状,核心目标是提高折叠形状与输入模型的逼近精度;三维折叠可看作多面体折叠,其核心目标是实现不同形状之间的转换.
在存储空间有限时,折叠与展开物体能够进一步满足空间上的几何约束;此外,折叠与展开也会产生相应的作用力,选择不同的材料制作折叠贴片能够实现不同的功能.
2015 年,Song 等人[1]基于剪纸艺术“Kirigami”的概念制作了可拉伸锂离子电池,通过塑性轧制,抑制由剪切和折叠产生的断裂,使可拉伸锂离子电池具有优异的电化学性能及力学性能.2018 年,Sharp 等人[2]利用变分方法展开曲面,该方法能为特定目标形状设计剪切方式,并且符合受力情况,常应用于设计医学绷带、物体拼接条纹等.2019 年,Liu 等人[3]专注于柑橘“剥皮”艺术设计,该艺术形式遵循守恒原理,通过寻找柑橘皮的最佳剪切线,将其切割并展开成完整的目标平面形状.该方法将目标平面形状映射到柑橘皮上,根据映射形状的边界确定剪切线,实现“剥皮”效果,生成的平面形状具有艺术性.
在工业设计领域,展开与折叠常被用于制作工业零件或者设计形状外观,工业零件主要追求良好的拉伸性,而形状外观更加关注艺术性与受力情况.
2006 年,Kuribayashi 等人[4]利用折叠技术研究设计新型折叠血管支架,传统的支架由金属丝网支架和覆盖膜组成,新型折叠血管支架由具有山谷折痕的单个可折叠金属薄片制成,并采用新研制的超细层压板法制备富镍钛镍(Ni-rich TiNi)形状记忆合金箔.该折叠模式使支架仅在纵向和径向折叠和展开,制成的血管支架能够在接近人体体温或者超弹性的情况下灵活展开.2012 年,Randall 等人[5]利用基于铰链的自折叠策略将平面光刻结构从二维转换到三维,从而产生小型的三维生物医学结构,例如空心密封剂、支架、手术工具,这些结构能够分别实现传递药物、调节细胞行为、协助微创手术等功能.2018 年,Konaković-Luković 等人[6]根据负泊松比性质设计拉胀连杆的展开,并将拉胀连杆结构应用于血管支架的设计.
在生物医疗领域,某些医疗工具需要具有负泊松比性质,在受到拉伸作用时膨胀,受到挤压作用时收缩.将展开折叠方法与具有特殊化学性能的材料相结合,能够满足医疗工具的目标需求.
2017 年,Miyashita 等人[7]通过自折叠“外骨骼”使机器人产生形变,进而扩展机器人的功能.受自然的启发,机器人专家设计出自重构机器人,它们由一组完全相同的单元模块组成,可独立改变身体几何形状.该机器人通过与不同的外骨骼结合,分级发展形态获得特定功能,例如加快移动速度、增加机器人体积,通过转换形态,能够分别在海、陆、空领域运动.2018 年,Rus 等人[8]开始设计制造折叠机器人,该折叠机器人由平面复合板制成,可以通过折叠实现自重构、变形、移动、操作等任务.首先,通过输入的平面区域及折痕图案对折叠机器人进行建模;然后,利用快速制造技术制作机器人系统.该折叠机器人系统能将平面板折叠成三维形状,可用于制造医用无线握持器、太阳能板、自动昆虫授粉飞行器等.2020 年,Hauser 等人[9]改进自重构模块化机器人“Roombots”,并提出5 项核心功能:自重构、可移动性、可操纵性、人机交互和开发用户界面.Roombots 通过折叠模块单元生成不同形状,功能强大,具有多功能性、健壮性、低成本的优势,但是在承重方面具有局限性,未来还需考虑如何创建适用于非专业人士的简单用户界面.
2017 年,Li 等人[10]提出了流体驱动的折纸人工肌肉架构.人工肌肉系统由3 个基本部分组成:可压缩的固体骨骼结构、灵活的密闭皮肤、流体介质.流体介质填充在骨骼与皮肤之间的内部空间,在初始平衡状态下,内流体和外流体的压力相等;随着内部流体体积的改变,实现新的平衡.内部和外部流体之间的压强差在柔性皮肤中引起张力,这种张力将作用于骨架,推动其结构变换.与高压流体驱动的人工肌肉相比,负压的使用为流体人工肌肉提供了更安全的驱动方式.2019 年,Li 等人[11]专注于研究重量轻、真空驱动的软机器人抓取器,该方法主要利用抓取器的柔顺性来实现抓取性能,具有极强的简单性、适应性和健壮性.软抓取器由折纸“魔术球”和柔性薄膜制成,其工作原理是利用流体驱动折纸人工肌肉进行折叠,这种软抓取器在高负荷的情况下也具有较强的抓取能力.
上述选取介绍的智能机器人可分为自重构机器人与自驱动机器人:自重构机器人的核心功能是通过自我组装独立改变机器人形状,从而完成目标任务;自驱动机器人则是利用流体驱动使身体进行收缩,同时产生作用力,实现抓取性能.
2011 年,Lau 等人[12]将三维家具模型作为输入,自动生成家具所需的可制造贴片以及零件.该方法通过组成分析识别三维模型的原始贴片,然后将结构间的连接信息提供给各个贴片,生成连接贴片所需的零件.但是该方法的分析规则由手动定义,缺乏自动学习的能力.2015 年,Li 等人[13]提出了设计可折叠家具的自动算法,将输入的家具模型抽象成由多个贴片集合组成的贴片支架,然后把支架分解成多个折叠单元,并对折叠单元进行贴片收缩和铰链插入,最后按照规定的顺序折叠贴片,生成稳定的家具结构.但是该方法不适用于结构复杂的家具.上述方法设计的家具都是由家具贴片组成,各个贴片之间使用钉子、螺丝、铰链等工具进行连接.2015 年,Fu 等人[14]使用互锁结构使家具部件之间紧密连接,互锁结构与组装家具贴片相比的优点如下:(1) 家具可以反复组装、拆卸,不会对其部件造成过度磨损;(2) 不需要外部固定工具(例如钉子、螺丝、铰链等),也能保持设计的预期美观;(3) 互锁结构限制零件的拆卸,零件之间可以紧密连接,从而有利于家具的稳定性.
上述可折叠家具的结构可分为铰链结构与互锁结构:铰链结构可折叠性较强,存放时节省空间,但不适用于复杂的几何结构;互锁结构零件较少,稳定性较强,但在组装时较为复杂.
本节主要介绍折叠与展开在工业设计、生物医疗、智能机器人、家具设计领域的应用,通过分析对比发现,展开与折叠的核心功能主要有两种:(1) 在几何方面,实现复杂的形状转换,设计特定的形状外观;(2) 在物理方面,使物体产生良好的收缩性能与力学性能.
本文总结了近年来计算机领域中曲面折叠与展开的相关工作,然后将各种方法分类讨论,最后按照给出的评估准则,对各类方法进行对比分析.本文的目的在于整理近年来曲面折叠与展开的先进方法进行比较,总结各类方法的特性和优缺点,为未来改进折叠与展开工作提供参考.从本文摘选的文献可以看出,曲面的折叠与展开方法已经较为成熟,例如,新的展开方法能够大幅度降低面积与角度失真,可以借助外部的辅助材料展开曲面;在折叠方法中,折叠多面体网格能够找到无碰撞的折叠路径、利用纸张折叠模拟三维模型的逼近精度逐渐提高等;在应用方面,折叠与展开方法还常用于生物医疗、智能机器人、家具制造、建筑设计等实际产业.虽然曲面折叠与展开在计算机领域取得一定成果,但是还存在一些难题需要进一步研究和挑战,下面对这些难题进行总结,并对未来可能的研究方向进行展望.
(1) 曲面展开的失真控制问题.现有的控制失真方法将曲面展开后,边界存在两种情况:一种是自由边界,另一种是固定边界.自由边界的目标是寻求“最优”展开失真,其展开平面失真通常比固定边界低.但是在特定情况下,用户可能希望规定展开曲面的失真大小.针对这类问题,需要进一步研究由用户规定失真大小的同时,如何保证“最优”展开.
(2) 曲面折叠的逼近问题.一般曲面折叠的目的是将曲面变形成光滑的目标形状,现有方法折叠的目标形状大多为双曲结构,这类曲面形状简单,不具有尖锐特征,未来可以考虑增强处理剧烈褶皱的能力,保留细节特征,提高逼近精度,模拟复杂的折叠形状.
(3) 曲面展开与折叠的健壮性问题.目前,大多数展开与折叠算法的输入模型是光滑形状,不具有噪声,因此得到的结果较为理想.但实际情况中,输入模型可能会存在噪声等影响.在未来工作中,需要多考虑输入模型质量,提高算法的健壮性.
(4) 评价指标问题.曲面折叠的方法中,一般都是比较折叠曲面的视觉效果,或者是比较与原曲面的逼近误差,缺少其他数据指标对比各类方法的优劣.未来可以考虑提出其他评价指标.
折叠与展开面临的这些挑战及各类评估准则的完善,是未来研究工作急需解决的关键问题.