《Simulating Knitted Cloth at the Yarn Level》论文笔记

 

《Simulating Knitted Cloth at the Yarn Level》论文笔记

Figure 1: Yarn-level cloth:三种编织图案轻松放置在我们的模拟器中。每个都从如左图所示的平面输入配置开始;它们仅在interlocking(紧密相连)图案上有所不同。每个针织物的特征形状和纹理都来自我们的纱线级物理模型。

Abstract

针织物由于其独特而有弹性的行为而被广泛用于服装中,其弹性性能与机织物有本质的区别。针织物的特性来自长的,环间纱线的非线性三维运动学,尽管布动画技术取得了重大进展,但我们仍然不知道如何忠实地模拟针织物。

现有的布料模拟器主要采用受编织材料启发的弹性片机械( elastic-sheet mechanical )模型,其对模型本身的关注程度不如对效率,稳定性和鲁棒性等重要模拟挑战的关注。我们根据纱线的运动而不是片材的运动定义了一种新的针织计算模型。每根纱线都被建模为不可延伸但又柔软的B样条管。

为了模拟复杂的针织服装,我们提出了一个隐式-显式积分器(implicit-explicit integrator),其中使用有效的投影对纱线的不可伸展性进行了约束。

纱线之间的摩擦可使用刚体速度滤波器进行估算,而关键的纱线-纱线相互作用则由刚性的惩罚力来调节。我们的结果表明,这种简单的模型可以预测不同编织物的关键机械性能,如通过对实验室中实际样品的变形进行定性比较所证明的那样,并且该模拟器可以按比例放大到具有复杂动态运动的大量动画。

Keywords: Cloth, simulation, knits, knitwear, yarn, constraints

1 Introduction

无论是在计算机图形学还是在其他领域,大多数关于布力学的研究都集中在机织布上,这既因为其简单性,又因为许多用于工程应用的织物都是机织的。但是,在计算机图形学中,服装是布料模拟器的主要应用领域-在服装中,针织面料通常与机织面料一样使用。许多非常普通的衣服,如t恤或打底裤,都是靠编织而存在的,不能用编织材料制成。

 

针织和机织之间的区别对于仿真很重要,因为它们的机械结构完全不同,因此他们在所有尺度上表现不同。机织织物中的纱线几乎不动,导致几乎不可拉伸的片(sheet),纱线结构变形有限。相反,针织材料中的互锁环(interlocked loops)容易变形和滑动,导致具有高度可伸展性的薄片,并在材料拉伸时在小规模结构中发生剧烈变化。

 

布料模拟一般采用近似线弹性片力学的模型。由于编织材料的平面内变形小,使用这些模型通常可以获得可接受的真实感。但是,如果允许线性弹性片材模型像常规针织物那样拉伸,则不可避免地看起来“橡胶”。这不足为奇,因为针织面料中互锁环的力学原理与连续弹性材料的力学原理几乎没有相似之处因此需要一种根本不同的模型。针织织物的小尺度性能也很重要,因为许多针织织物是用大纱线制成的,这意味着纱线结构清晰可见,必须表现正确才能获得实际的效果。

 

我们在本文中提出的模拟通过直接解决组成织物的纱线的运动和决定织物行为的线圈之间的相互作用,来迎接正面编织的挑战。我们的物理模型用单一纱线的行为简明地描述:抗弯曲的不可伸长曲线,抗渗透的碰撞力,稳定的阻尼,代替摩擦的影响。基于该模型,我们演示了重要纱线结构的第一个实用的纱线级模拟,产生了丰富,复杂的变形,而使用任何基于片材的模拟都无法实现这种变形。针织结构的许多特性从模拟中自然而然地显现出来,包括由不同的编织图案产生的特征形状和纹理以及编织片材的变化的可扩展性。重复纱线级计算的评估可以自然地利用多核架构,允许在实践中模拟大型针织。

 

对于像毛衣、围巾或袜子这样的粗针织服装,由于它们的纱线结构是可见的,因此需要在这种细节级别上进行模拟才能得到真实的结果。此外,纱线级仿真是研究精细针织面料的大规模特性的基本工具,目的是开发出可以真实地描述大变形情况下的针织面料的连续模型。相同的方法还可以生成能够捕获当前模型遗漏的与材料相关的细微差别的机织模型。

 

在以下各节中,我们将详细介绍模型,用于模拟模型的方法以及模拟结果,包括对相似结构的变形进行定性的实验室验证。

2 Prior Work

在文献中,已经以各种不同的方式对布料进行了建模。也许最直接的方法,也是最主要在计算机图形界使用的方法,是把布料看作弹性薄片,通常是线性弹性和各向同性的薄片。这些模型要么是明确的连续模型(Terzopoulos等,1987),要么是某个连续表面的离散近似模型(Baraff and Witkin 1998)。对这些模型的扩展集中在加快计算时间[Volino and Thalmann2000],模拟压缩下的稳定行为[Choi和Ko2002],修正的弯曲模型[Bridson等人,2003年]。 Grinspun et al.2003]或稳定的碰撞处理[Volino and Thalmann2000; Bridson et al.2002; Baraff et al.2003]。对这些模型的扩展集中在加快计算时间[Volino and Thalmann2000],模拟压缩下的稳定行为[Choi和Ko2002],修正的弯曲模型[Bridson等人,2003年]。 Grinspun et al.2003]或稳定的碰撞处理[Volino and Thalmann2000; Bridson et al.2002; Baraff et al.2003]。焦点也已经通过限制应变的迭代过程来限制可拉伸织物的使用量[Provot 1995; Bridson et al.2002]或约束满足阶段[Goldenthal et al.2007]。尽管仿真速度相对较快,但通常存在将物理布料属性映射到弹性模型的参数空间的问题。 Jojic和Huang [1997]使用静态布料构型的范围扫描数据来估计弹性参数。Bhat等[2003]利用运动布的视频数据估计了弹性和阻尼参数,实验确定的针织样品参数有明显变化。 这表明弹性模型可能不适用于针织材料。

几种模型试图解决布料由离散的一组纱线组成的事实。纱线的几何建模可以说是Peirce [1937]开始的,Peirce提出了一组参数和方程,用于将机织织物中的纱线交叉建模为不可延伸的曲线。Kawabata等人[1973] 提出了一种用于机织织物中纱线交叉的梁和桁架模型,以及一种用于测量由布料的拉伸,剪切和弯曲运动产生的物理力曲线的系统。梁和桁架模型的变体已被用于纺织品领域,以模拟诸如Kevlar的平纹织物的行为[King et al.2005; Zeng et al.2006]。Breen等[1994] 和Eberhardt等人[1996] 将机织物建模为粒子系统,其中粒子理想地表示纱线交叉。

机织纱线的交叉也被建模为一对曲线[Warren 1990]。特别是,Nadler等人2006]采用了一种双尺度模型,在高尺度上将布视为连续的薄片,在精细尺度上将布视为相互接触的一对正交曲线的集合,精细尺度的反馈驱动大尺度的模拟。纱线也被建模为样条,Remion[1999]开发了在针织中使用样条的基本方程;但是,他们在控制点之间使用弹簧来保持长度。[江和陈,2005]使用基于样条的纱线模型来生成合理的静态机织物构型。与此类似,在计算机图形学上也已经完成了对细细柔性杆的建模和模拟的工作[Pai 2002; Bertails et al.2006; Theetten et al.2007; Spillmann and Teschner 2008],尽管模拟杆通常比布料中使用的样条曲线短得多。

Chu [2005]的工作与当前的工作相似,两者都使用B样条线来模拟具有类似碰撞术语的B样条,但是前者专注于机织织物并允许纱线拉伸,这需要更小 时间步长比我们的模拟器要稳定。此外,该接触模型的积分采用初始化时由布结构预先确定的一组接触点的最近点逼近。我们的碰撞评估没有关于布料拓扑的任何假设,允许任意布料与布料接触的碰撞区域,同时缩放以支持对大型任意编织物的仿真。

 

由于针织织物与机织织物相比相对复杂,因此对其研究较少。Eberhardt et al2000]模型编织作为一个连续的薄片与由Kawabata测量得出的力曲线。Nocent等人[2001]变形薄片,并将对薄片的更改投影到基于样条线的基础几何形状。纺织界的一些工作着重于利用样条曲线生成针织几何形状,通常假设纱线不可压缩且具有特定的几何约束[Demiroz and Dias 2000; Goktepe和Harlock 2002; Choi and Lo 2003]; 只有Choi [2003]尝试模拟所得的几何图形

Chen等[2003] 主要涉及渲染针织几何体,并将映射到质量弹簧网格的关键点系统用作其基本模型。相比之下,我们通过碰撞模型允许可压缩纱线,并且曲线上没有几何约束,从而使它们可以采用自然形状而不是规定形状并支持任意编织结构。最后,我们能够扩大仿真范围,以对大型针织结构进行建模,例如宽松的围巾和腿套; 据我们所知,我们是第一个能够做到这一点的实际实现。

3 Structure of Knitted Cloth

构成布的纱线本身是由纤维制成的,这些纤维可以是长丝,如丝绸,也可以是短纤维,如棉,它们经过加捻处理,以使摩擦将纱线固定在一起。因此,纱线芯部的纤维几乎没有相对的运动,而整个纱线抵抗拉伸。纺织界已经对纱线的纤维级模型以及纤维级的相互作用如何导致纱线级的行为,尤其是弯曲刚度进行了大量研究[Park and Oh 2003; 2003; 2003]。 Park and Oh 2006]。特别是,Choi和Tandon [2006]开发了多层纱线的模型,表明他们的模型可以合理地近似实验结果,并预测弯曲的应变能相对于曲率大约为平方。

 

3.1 A Brief Primer on Knits and Knitting

布料通常可以分为两大类:机织和针织面料。机织织物由两组纱线(经纱和纬纱)组成,在织物表面成两个垂直方向。

相反,针织物中的纱线在水平行中组织成规则的线圈组。从编织的每个水平行开始的线圈都以“编织”针迹(在前一个线圈中向上)或“毛线”针迹(在前一个线圈中向下)穿过前一行的线圈。编织中的两个主要方向称为横列和纵行,横列沿单行线圈的方向行进,纵行沿线圈叠堆的方向行进。编织中的两个主要方向称为横列和纵行,横列沿单行线圈的方向行进,纵行沿线圈叠堆的方向行进。通常,当纱线到达编织行的末尾时,它会向后翻倍并形成下一行。 结果,针织物仅由几根纱线组成,这与由许多纱线组成的机织织物形成对比。第一排和最后一排针迹分别是特殊的针迹,称为结扎线和结扎线,可防止针织物散开,而纱线的始端和末端要么被拉回织物几次,然后被固定 通过摩擦固定或简单地打结。

编织针迹和带圈针迹之间的交替产生了很多针织面料,其中三种最常见的品种是长筒纱(所有“编织”针迹),吊袜带(“针织”和“毛刺”交替排列)和2-2肋(每行包括2个“编织”针脚和2个“ 2”针脚的重复)。在图2中,我们从上方显示了三种编织样式的示例。吊袜带是这三种中最简单的,在织物的两侧都具有相同的整体花样。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

图2:与标准机织布相比,我们的示例中使用的三种编织花样的互锁环结构(Interlocking loop structures)。

相比之下,长绒毛的正面和背面有所不同,这导致边缘出现一些明显的卷曲行为。同样,由于相同的卷曲行为,肋在行进方向上比其他两个都短得多。从图案中可以看出,它基本上是一个煎锅正面的2列,然后是一个煎锅背面的2列。这些柱子像普通的梳子一样卷曲,相邻的柱子在相反的方向上卷曲,极大地压缩了罗纹针织物,并赋予了极大的弹性。通常,衬衫和毛衣的袖口以及袜子的脚踝是由罗纹针脚制成的。这些织物的示例如图3所示。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

图3:三个针织样品的视图:请注意,相同针数和纱线长度的尺寸差异很大。 我们模型的预测(图1)在质量上相似。

3.2 Qualitative Mechanical Behavior

由于其构造,布的变形是多相的,尤其是在拉伸时。当处于张紧状态时,布首先开始从卷曲引起的压缩中解开。这在罗纹针织中尤为明显,在该情况下,朝前的薄纱线迹的列被拉开,露出了朝后的薄纱线迹的列。之后,布料开始使其编织或编织结构变形。在机织织物的情况下,经纬交叉点被压缩,而在针织织物中,线圈在一个维度上被拉伸,而在另一个维度上被压缩。因为线圈通常比机织织物中的交叉点的压缩自由地经受更大的变形,所以针织物往往比其机织的同等物更具弹性。然而,在某些时候,布无法以这种方式进一步变形,因此额外的载荷会导致纱线本身拉伸。但是,如上所述,纱线非常抗拉伸,这会导致此时的负荷曲线急剧增加。

同样重要的是要注意,一个维度上的拉伸行为也会影响另一维度的特性。例如,在编织物中,当线圈在一个维度上拉伸时,它们在另一维度上压缩,有时会非常明显; 因此,捕获这些耦合对于视觉准确性很重要。尽管当前的一些布料模拟器能够表达这些类型的关系,但是可能难以正确地调整参数,并且常常会忽略它们。

4 A Yarn-Level Cloth Model

我们的布料是用构成它的单根纱线建模的(请参见图4)。在不失一般性的前提下,我们将假设我们的针织物是使用单根纱线制成的。纱线是一条开放的三次B样条曲线,半径为r,由控制点q∈R3m表示。

通常,索引 i,j 覆盖样条线段,而索引 k,l 覆盖控制点。

对于具有N = m-3个样条线段的纱线,曲线由下面的式子描述:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

其中bk(s)是与控制点关联的三次B样条的基函数 k。 类似地,在参数点s处的纱线速度是:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

为方便起见,将限制于特定样条线段i的曲线记为yi(s), s∈[0,1](速度记为vi(s))。每个样条线段都有固定的弧长li,纱线的单位长度质量为munit,质量根据函数m(s)沿曲线分布,一种分段常数函数,它根据段的密度分配质量,然后将质量均匀地分布在参数空间中。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

图4:纱线级模型Summary:纱线是样条,其约束条件固定了每个段的弧长。内力可抵抗弯曲和段内拉伸,外力可抵抗花键的碰撞长度。 阻尼力会在发生碰撞时作用在纱线上,并作用在布料上。

我们使用受拉格朗日动力学约束的运动方程对纱线的时间演化进行建模。参见Goldstein等人[2002]对拉格朗日力学的进一步描述,以及Remion等人[1999]对样条曲线的应用。 另外,衣服的一些较硬的特性是通过约束来实现的。结果是形式为的微分代数方程(DAE)。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

其中M是质量矩阵,E(q)是所有位置能量项的总和,D(q˙)是所有“阻尼能量”项的总和,f是外力,C(q)是约束函数的向量。

 

4.1 Intra-Yarn Properties

 

Mass: The kinetic energy(动能) of the yarn is:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

为了应用拉格朗日力学,我们必须计算:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

通过扩展方程式3右侧的积分:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

由于这仅取决于弧长,munit和基函数,在仿真过程中所有这些函数均保持不变,因此可以预先计算该矩阵,并且由于三次B样条函数具有局部支持,该矩阵是稀疏的,上、下带宽均为12。取关于t的导数,得出Mq¨,即(1)的左侧

Bending: 弯曲阻力由弯曲能量密度函数建模,其曲率为二次:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

其中下式子是样条线段 i 在 s 处的无符号曲率:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

Inextensibility:由于它们相对于布料具有很高的抗拉伸性,因此我们将纱线建模为不可拉伸的。 理想情况下,这将是一个无穷小水平上的约束;然而,我们需要确保我们不会因为取消太多自由度而锁定系统。所以,我们在每个样条线段上定义了一个长度约束。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

该约束条件可确保线段的总长度保持恒定,但是并不一定会随着参数化速度的变化而使样条线的质量在曲线内部不滑动。 只要总长度是恒定的,那么无穷小长度就可以改变而不会受到损失。为防止这种情况,我们还引入了一组能量术语,

《Simulating Knitted Cloth at the Yarn Level》论文笔记

其中klen是刚度系数。应该注意的是,由于使用了长度上的弦限制,这个术语不必特别严格的,因为它只需要在局部区域抵抗质量的拉伸或压缩。例如,在垂直悬挂的一条纱线中,Klen只需要有足够的硬度来支撑单个样条线段的重量,而如果没有约束条件,Klen需要有足够的硬度来支撑所有纱线的重量。

4.2 Yarn-Yarn Collisions

纱线碰撞力是用能量项建模的,

《Simulating Knitted Cloth at the Yarn Level》论文笔记

在我们的实现中,我们使用:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

我们发现该碰撞模型在物理和计算上比基于最近点距离的模型更健壮。此外,根据定义,这种方法还可以处理任意的布料自碰撞,例如在折叠和成束中看到的那些自碰撞。

4.3 Damping and Friction

针织布结构中的阻尼和摩擦很复杂,具有明显的滞后效应。针织物的相互环结结构会形成较大的接触区域,对于短纤维制成的纱线,纱线之间的直接接触与相互缠结的杂散纤维(或“绒毛”)结合在一起,可以抵抗附近纱线之间的相对运动。此类现象的精确纱线级建模超出了本文的范围。 取而代之的是,我们采用三种具有实际重要性的阻尼模型:

 

Mass-proportional damping:是耗散任何运动的经典方法,它是我们最基本的阻尼力分量。根据以下阻尼能项,将阻尼均匀地施加到纱线上:《Simulating Knitted Cloth at the Yarn Level》论文笔记

由于我们的纱线密度恒定,因此质量相关性有效地推到了kglobal中。在编织结构初始化(第6节)期间,我们大量使用了固有稳定的质量比例阻尼模型。但是,在实际模拟过程中,kglobal通常是关闭的,我们依靠以下两个阻尼模型来阻尼布料的运动。

 

Contact damping:纱线-纱线碰撞阻尼项Dcollision(i,j)既用于减弱刚性纱线-纱线的接触力,又用于近似滑动摩擦,定义为:

《Simulating Knitted Cloth at the Yarn Level》论文笔记

其中kdt≥0控制切线方向的阻尼,而kdn≥0控制法线方向的阻尼; Δvij=Δvij(s,s0)= vj(s0))vi(s)是相对速度; 其中,n = ij = nˆij(s,s0)是碰撞方向的归一化值,nij(s,s0)= yj(s0))yi(s)。仅在根据公式8确定纱线相互接触的情况下才评估此积分

 

Non-rigid motion damping:正确地模拟“模糊”的耗散效应是一个相当困难的问题。虽然我们不希望显式地对其建模,但我们也不希望忽略它,因为我们认为它是布料需要捕捉的一个重要特征。在这里,我们提出了一个在实践中行之有效的简单模型,并为将来的工作留出了更高级的模型。

为了抵抗纱线附近部分之间的相对运动,我们阻尼非刚性运动[Muller et al.2006]。如Rivers和James [2007]所述,将布料分解为固定的重叠区域,并在每个步骤中计算每个区域的质心,角动量和惯性张量。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

有几种方法可以将布料分成多个区域。我们对纱线初始化过程中定义的参数静态区域使用双通道过滤器,首先对两个纱线环的小区域进行严重阻尼,然后对较大区域的运动进行阻尼(见图5)。第一步设计为局部抑制纱线相互缠绕的运动,第二步设计为抑制拉伸,剪切和弯曲模式。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

图5:用于非刚性阻尼速度滤波器的区域

4.4 Additional Constraints and Contacts

为了防止针织衣服散开,通常将纱线的末端针织掉或拉开多个线圈,并通过摩擦将其固定在适当的位置。对于特定的s1和s2选择,我们通过形式为Cglue = y(s1)-y(s2)的形式的约束将纱线的末端“粘合”到另一根纱线上,从而达到相同的效果。类似地,当需要将布料固定到位时,会插入Cpini = y(si)-pi形式的向量约束。避免引入过多的硬约束很重要,因为硬约束会导致系统过度约束或接近奇异,或者导致纱线动力学质量下降。

 

我们用两种方法中的一种来近似物体碰撞。我们通过一个能量项来模拟惩罚力,来解决隐含表面的接触问题(比如我们的腿部加温的例子),《Simulating Knitted Cloth at the Yarn Level》论文笔记

以及相应的阻尼力(类似于纱线冲突阻尼(10))。或者,对于具有距离场的对象(例如围巾落在平面上),我们使用速度滤波器:应用法向脉冲以解决互穿问题,并施加近似的摩擦脉冲(参见[Bridson et al.2002])。

5 Integrating Yarn Dynamics

实施我们的纱线水平模型需要仔细选择模拟方法,并在评估(§4)中的术语时注意几个关键细节。 图6概述了我们的模拟器中的步骤。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

5.1 Integration Method

DAE使用隐式约束方向(ICD)方法(Goldenthal等人,2007)并使用该算法中的时间来向前推进。我们使用一个明确的中点步骤作为我们不受约束的步骤。该算法一直迭代直到收敛,每次迭代都需要矩阵的稀疏线性系统求解,该矩阵取决于逆质量矩阵和约束函数的雅可比行列。为了加快仿真速度并简化逆质量计算,我们沿对角线对质量矩阵进行集总处理,发现通常需要进行最多4到5次迭代才能达到可接受的收敛速度,而通常只需1或2次。

虽然质量矩阵的积分和整体阻尼的积分是容易解决的,其他缺乏有效的封闭形式。结果,我们在参数空间中固定位置的Simpson积分上计算(4),(5),(6),(7),(10)和(11)中的积分,通常每个积分使用11个正交点 样条线段。我们计划探索对某些积分(尤其是碰撞积分)使用有效的自适应正交规则。

 

5.2 Yarn Collisions

实际上,扩展(7)和(10)中的积分是模拟的瓶颈,因此必须有效地计算它们。 单纯的计算是非常缓慢的,因为它涉及到对整个纱线的二重积分。为了有效地计算该积分,我们利用空间剔除:我们在参数空间中的固定正交点处生成半径等于纱线半径的边界球,并将其插入在模拟开始时生成的静态ABB层次结构中 。为了评估积分,我们将层次与自身相交,以确定需要评估的正交点对。此外,树遍历和接触力评估都可以跨多个核心并行进行。

 

5.3 Velocity Filters

我们还允许速度滤波器直接更新控制点速度。 以前的大多数速度滤波器用于离散粒子系统,但是,我们的系统对连续曲线建模。为了轻松地为样条曲线的控制点生成过滤器,我们将曲线分为一组不相交的样本段,通常每个样条线段使用6-10个样本段。计算每个样本段的期望脉冲∆v(s),然后将施加到第k个控制点的合成脉冲为bk(s)∆v(s)。所有控制点的脉冲都被累加,然后乘以集总的M-1以产生控制点的实际速度∆q˙变化。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

为了防止脉冲相互影响,首先计算特定速度滤波器的所有脉冲,然后将它们一起应用。非刚性阻尼和非基于惩罚的对象碰撞(对于具有距离场的对象)均使用速度过滤器处理。

6 Initializing Yarn Configuration

有多种方法可以生成初始编织配置。例如,已经提出了通过模拟编织过程本身来生成编织几何形状的方法[Eberhardt et al.2000]。为了生成初始配置,我们的算法将一个编织花样,每个针迹要生成的样条段数k以及描述各种针迹的基本形状的一组曲线作为输入。特别地,它期望一个普通的线圈模型(它可以沿着z轴翻转以形成针织或反式针迹)以及各种类型的针迹模型,这些针迹可以发生在布料的边界上。

然后,它通过形成一个单一的样条曲线来描述织物,方法是一次放置一个针脚,并使用k个线段并在给定上一个针脚已经添加的控制点的情况下,找到该针脚的最佳最小二乘三次B样条曲线近似值。第一个(最后一个)针迹采用特殊类型的针迹建模,其中纱线的起点(末端)连接到针迹的另一部分,形成一个线圈; 然后使用(§4.4)中的粘合约束将这些端点“粘合”到最近的点。

生成模型的目的是获得一种配置,其中所有循环都根据指定的模式正确互连,但不一定是静止状态。为了找到静止状态,我们使用我们的模型模拟pattern,但是对长度没有严格的限制,并且具有高的长度能量系数和高的粘性阻尼。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

7 Results

我们的模拟器是用Java实现的,并在装有两个时钟频率为2.66GHz的4核Intel Xeon处理器的计算机上运行。表1中列出了所有场景共有的模拟参数,表2中提供了特定于场景的参数和详细信息。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

《Simulating Knitted Cloth at the Yarn Level》论文笔记

论文和视频中的效果图是使用Lumislice方法的软件实现[Chen et al.2003]在光线跟踪器中完成的。

我们的实现遵循原始方法,不同之处在于它使用体射线追踪而不是Alpha混合来累积通过体的光线; 它使用一阶球谐函数而不是方向表来存储体积反射函数。 它使用分布射线跟踪而不是阴影贴图来计算区域源中的阴影。昂贵的阴影计算是在整个纱线体积中的规则间隔点处进行的,然后随着纱线体积的移动而进行插值。在与用于仿真的相同硬件上,渲染时间为每帧4到15分钟。

在我们开始模拟运动之前,计算的第一阶段是将模型从其初始配置松弛到静止状态。在此过程中,模型最初仅在线圈的方向上有所不同,然后采用与实际针织中的这些图案相关的特征形状和纹理。松弛模型如图1所示,松弛之前和之后这三个模型的小规模结构如图7所示。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

所有的真实样品(由第一作者)均使用8号羊毛精纺毛线编织而成,每排均采用交替的颜色进行编织,从而使编织结构更加明显。该纱线的重量和直径用作我们纱线模型的输入参数。每个样本包括42行,每行包含32针。图1说明了使用我们的模型将三个样本的初始配置放宽为默认静止状态的结果,而图3显示了它们的实际等效值。除了根据模型的针织图案放置针和反针外,三种模型的其他参数都是相同的。我们基于纱线的模型可以准确预测坯料边缘的卷曲以及罗纹针织物在横行方向上的压缩以及吊袜带编织在纵行方向上的压缩。这些特性是由我们模型中的纱线相互作用自然产生的。 相比之下,要在弹性模型中实现相同的效果,则需要仔细手动调整为每个特定编织定制的休息角。

图8显示了我们的样品针织物沿不同方向的拉伸行为的三向比较。我们将测量结果与基于纱线的模型和弹性片材模型的输出进行比较[Baraff and Witkin 1998]。对于所有测试,将布的一端保持固定,而另一端夹紧并移动。为了从弹性片状网格生成纱线几何形状,我们将针织布的控制点投影到静止的网格中,确定每个点相对于最近的三角形的重心坐标。然后,当网格变形时,我们可以使用这些变形使控制点变形。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

我们的模型可以预测针织物在拉伸时的特征形状,特别是吊袜带中的纱线环紧缩,罗纹中的凸脊分离以及绒头两端的快速卷曲。弹性模型由于其无限连续性的假设,可以预测吊袜带和罗纹的形状是不现实且不准确的,因为整个布料都在拉伸而不是纱线变形。对于梳棉机,它可以合理地使纱线结构变形。但是,它无法在末端卷曲,这在真实样品和我们的纱线模型中都会发生。尽管我们认为这是由于缺少合适的摩擦模型,但实际上我们的模型比样品更急于卷曲。作为本文的补充,我们为真实样本和模型提供了其他6个测试的样本(总共3个样本和3个方向)。我们注意到,这是一个相当费力的测试,它导致了刚性但稳定的接触,其中某些最终状态很大程度上取决于摩擦力,而我们没有进行建模。结果,达到的某些配置不稳定,并且倾向于迅速转换为低能耗的配置。但是,尽管如此,我们仍然捕获了布料中纱线的整体变形。

 

图9显示了将碰撞模型应用于20×160的针织围巾落在平面上时的鲁棒性。 我们的模型能够解决由于接触平面及其自身而引起的碰撞。 由于使用了较小的时间步长,每帧的平均时间约为10.7分钟,与视频质量渲染的每帧约9分钟的渲染时间相当。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

图10显示了一个44×96的针织袜套被拉到一只脚上。 因为我们直接模拟纱线接触,所以我们能够解决复杂的拉伸图案,因为它在鞋跟上滑动。 由于模型的大小,每步有超过1000亿对正交点可能需要评估碰撞积分。 但是,使用边界框层次结构,我们平均仅使用1200万个边界框遍历和平均1200万个球体-球面评估,即可快速找到平均370万对的接触对象。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

最后,图11显示了我们最大的示例,一条20×400的围巾,由64,690个样条线段组成,它们落在倾斜的平面上。 该序列的完整电影出现在SIGGRAPH 2008 Computer Animation Festival [Kaldor et al.2008]中。

《Simulating Knitted Cloth at the Yarn Level》论文笔记

8 Conclusion

我们已经展示了一种健壮且可扩展的技术,可以在纱线水平上模拟针织布。我们的仿真方法可以使纱线级针织布的复杂度大大高于先前的研究,同时实现实用的离线仿真率。此外,我们从针织样品和标准弹性布料模型的预测中定性地验证了我们的仿真结果,表明在针织物中发生了有趣且视觉上明显的非线性效应,这些效应由我们的模型捕获,但没有由弹性片近似得到。尤其是,我们的模型能够捕获静止状态下的吊袜带,小三角裤和罗纹针织的机械特性,而无需进行任何参数调整或直接从纱线相互作用中得出的特殊情况。我们希望这项工作对纺织界特别有价值,尤其是在服装的快速设计中,这将使设计人员无需实际创建针织材料就能看到针织材料如何悬垂并做出反应,因此特别有用。 它也适用于视觉精度极为重要的任何地方,例如计算机动画中的大而松的编织物,其中在框架中可见单独的纱线,并且不正确的运动可能会在视觉上分散注意力。 最后,我们认为像我们这样的模型可以为将来的模型比较提供计算基础。可以将纱线水平和/或连续模型的近似值与纱线水平模拟器的输出进行比较,以了解它们之间的区别和区别,以及这些区别是否在视觉上可察觉。

 

对于未来的工作,我们看到了广泛的机会可用于扩展和扩展这项研究。尽管我们的模型可以稳定地处理处于恒定,低刚度接触的纱线以及两条碰撞纱线之间的瞬时刚性接触,但它在处理恒定,高刚度的接触(例如由于过度拉伸针织物而产生的接触)方面并不那么稳定。此外,我们的模型没有处理摩擦,摩擦是纱线与纱线相互作用的关键组成部分,也是造成织物滞后的驱动因素。由于存在大量相互关联和分散的接触,因此在纱线级布上处理摩擦极为困难。除此之外,除了这里进行的定性评估外,我们还计划对真实样品进行定量比较。最后,如上所述,我们认为纱线级布料的计算为将针织布料的近似模型与实际情况进行比较提供了一个起点,并且我们计划探索使用该模型来验证针织行为的更快近似值。