基于位置动力学的服装布料模拟研究综述
A Review of Cloth Simulation Research Based on Position-Based Dynamics
摘要: 服装布料模拟是计算机动画的重要组成部分,在服装设计制造方面也具有重大的应用价值。一般来说,基于位置动力学的方法不如基于物理的方法准确,但它们提供了视觉上的合理性,并且具有快速、稳定、可控的特点,非常适合在交互式环境中使用。基于位置动力学的服装布料模拟方法在服装领域变得很流行。采用文献查阅方法对布料网格模型、布料约束条件、布料基于位置动力学的模拟算法和研究现状和重要成果进行概述,综述了基于位置动力学的布料模拟在服装行业的主要应用,总结了基于位置动力学的布料模拟技术的发展趋势和挑战。
Abstract: Cloth simulation is an important part of computer animation and has significant application value in clothing design and manufacturing. Generally speaking, position-based dynamics methods are less accurate than force-based methods, but they provide visual plausibility and have fast, stable, and controllable characteristics, making them particularly suitable for use in interactive environments. Position-based dynamics cloth simulation methods have become popular in the clothing industry. This article provides an overview of the cloth mesh model, cloth constraint conditions, cloth posi-tion-based dynamics simulation algorithms, and their research status and important achievements by reviewing relevant literature. It summarizes the main applications of position-based dynam-ics-based cloth simulation in the clothing industry and summarizes the development trends and challenges of this technology.
文章引用:熊文璐, 徐增波. 基于位置动力学的服装布料模拟研究综述[J]. 建模与仿真, 2023, 12(6): 4994-5009. https://doi.org/10.12677/MOS.2023.126454

1. 引言

在计算科学中,物理模拟中基于物理的方法已得到充分研究,已建立的方法有限元法 [1] ,有限差分法 [2] ,质点–弹簧模型 [3] 等。基于力的方法在计算机图形学中的主要目标是取代真实世界的实验,必须尽可能准确。而在游戏、广告和服装领域的布料模拟效果中,最重要的特性是模拟速度和可控性,其次是视觉上的合理性。在服装领域,基于位置动力学的方法在布料模拟、虚拟试衣的使用中简单、鲁棒且高速,现有的模拟算法包括PBD、HPBD、XPBD等,通过添加不同约束条件达到布料模拟所需效果。

本文梳理了基于位置约束的动力学的布料模型、约束条件、模拟算法的研究现状和重要成果,综述了基于位置动力学的布料模拟在服装行业的主要应用并对基于位置动力学的布料模拟技术的发展趋势和挑战进行总结与展望。

2. 布料模型

基于质点弹簧模型和基于位置的布料模型都是计算机图形学中用于模拟布料运动和形变的常用模型,它们的关系在很大程度上是一种演化关系。

2.1. 质点–弹簧模型

BreenDE [4] 等人提出了基于粒子系统的布料模型,将布料离散成无质量的质点集,通过弹簧模拟布料上的力学特性。该模型与布料微观结构相似,在力学模拟中运行良好且具有高效的计算性能,因此被广泛应用。

基于粒子模型,Provot X [3] 提出了经典的基于四边形网格的质点一弹簧模型。如图1所示,质点–弹簧模型把布料视为由质点和三种弹簧组成的网状结构。其中结构性弹簧连接横向和纵向质点,固定模型结构。剪切弹簧连接对角线上的相邻质点,防止模型扭曲变形。弯曲弹簧连接横向和纵向相隔着一个质点的两个质点,保证模型形变时的边缘圆滑。三种弹簧分别对应于布料的三种内力,弹簧弹力遵循胡克定律,求解内力的拉伸力或者排斥力以维持弹簧趋近于原长。

Figure 1. Mass-spring model

图1. 质点–弹簧模型

2.2. 位置动力学模型

Jakobsen T [5] 仍然使用质点–弹簧系统,只不过将弹簧替换为一系列约束关系,在一次约束迭代求解后直接作用于质点位置,且创新性地使用了verlet积分方案,极大地提高了模拟效率。

Müller M [6] 基于Jakobsen T的工作,提出了理论完备的基于位置动力学方法。布料模型中的顶点和顶点之间的连接被抽象为N个质点和M个约束的集合,每个质点 i [ 1 , , N ] ,都有质量 m i ,位置 x i 和速度 v i ,每一个约束 j [ 1 , , M ] 由以下组成:

•基数(和该约束相关的顶点的个数) n j

•约束函数 C j : 3 n j

•相关顶点索引集合 { i 1 , , i n j } , i k [ 1 , , N ]

•刚度系数 k j [ 0 1 ]

•约束类型,等式或不等式,如果约束j的类型为等式,则约束函数应满足 C j ( x i 1 , , x i n j ) = 0 。如果类型是不等式,那么约束函数应满足 C j ( x i 1 , , x i n j ) 0 。刚度参数 k j 定义了约束强度,范围从0到1。

2.3. 两种模型之间的差异

两种模型的主要差异在于理论基础和约束处理方面。

理论基础:质点–弹簧模型模拟了网格中相邻节点之间的弹性连接,通过控制质点的位置和弹簧的行为,可以模拟布料的弯曲和变形;基于位置的模型直接在每个布料点上施加约束,以控制布料的形状和动力学行为。

约束处理:质点–弹簧模型需要考虑弹簧的长度和弹性系数,通常会使用胡克定律等来计算弹簧的行为;而基于位置的布料模型只需要考虑人为规定的依赖于位置的约束。

2.4. 质点–弹簧模型与基于位置动力学模型在应用上的区别

质点–弹簧模型可以通过调整弹簧的参数来控制布料的材质特性,例如弹性系数、阻尼系数等,适用于比较简单的布料模拟,如旗帜、桌布拉伸、压缩等行为。但是质点–弹簧模型是布料的简化表示,忽略了布料与其他物体之间的一些复杂的相互作用,如摩擦、弯曲、扭转等 [7] 。质点–弹簧模型使用胡克定律来计算弹簧力,它假设弹簧是线性和弹性的,但在现实中,布料可能具有非线性和塑性的行为。X. Zhang等提出一种基于体积守恒的具有形状恢复能力的质点–弹簧优化模型模拟形变。该方法构建了一种采用新型抗弯弹簧表面模型,并将其融入到质点–弹簧模型中以恢复原始形状 [8] 。

具有复杂拓扑结构例如褶皱、接缝的布料,使用简单的质点–弹簧模型进行精确模拟是困难的。弹簧可能无法捕捉复杂的相互作用,导致布料渗透。为了缓解质点–弹簧布料模拟中的布料渗透问题,需要对模拟参数进行微调,选择合适的时间步长,但是质点–弹簧模型在处理高度变形的情况下通常需要小的时间步长来保持数值稳定性,所以必要时可以使用更先进的模拟方法如基于位置的动力学(PBD)。基于位置的布料模型可以模拟布料的折叠、皱褶、飘动等,能避免布料的渗透现象,而且对时间步长的选择不敏感,可以使用较大的时间步长来提高计算效率。

3. 约束的建立

约束是用等式和不等式的运动学约束方程形式,限制约束物体的相对运动。基于位置动力学的布料模拟只考虑依赖于位置的约束。约束条件可以人为规定,如体积守恒约束 [6] 、摩擦力约束 [9] 等,下面介绍了两种特定的约束条件:布料拉伸约束、布料弯曲约束。

3.1. 布料拉伸约束

Jakobsen T等人 [5] 提出的关于距离约束投影的公式通过将粒子直接推开或将它们拉近来固定一个距离。

距离约束函数:

C ( p 1 , p 2 ) = | p 1 p 2 | d (1)

关于这些点的导数是 p 1 C ( p 1 , p 2 ) = n p 2 C ( p 1 , p 2 ) = n ,具有 n = p 1 p 2 | p 1 p 2 | 。因此,比例因子 s = | p 1 p 2 | d w 1 + w 2 ,最终修正量:

Δp 1 = w 1 w 1 + w 2 ( | p 1 p 2 | d ) p 1 p 2 | p 1 p 2 | (2)

Δp 2 = + w 2 w 1 + w 2 ( | p 1 p 2 | d ) p 1 p 2 | p 1 p 2 | (3)

以上是Jakobsen T提出的距离约束投影公式,它们可以作为一般约束投影法的一种特殊情况(见图2)。

Figure 2. Constraint projection C ( p 1 , p 2 ) = | p 1 p 2 | d , and the correction value Δp i is weighted according to the reciprocal of the mass w i = 1 m i

图2. 约束投影 C ( p 1 , p 2 ) = | p 1 p 2 | d ,修正值 Δp i 根据质量的倒数进行加权 w i = 1 m i

3.2. 布料弯曲约束

常见的弯曲约束有弯曲能量约束、角度弯曲约束和等距弯曲约束。

3.2.1. 弯曲能量约束

Grinspun E等人 [10] 引入了一种薄壳离散模型,推广了早期的薄板离散模型,同时补充了布料模拟的发展。一个简单的、物理驱动的壳层模型可以用膜能量和弯曲能量的总和来表示 W = W M + K B W B ,其中, K B 为弯曲或弯曲刚度, W M 为膜能量,其与边长和三角形面积有关。

Rahul Narain等人使用了Grinspun E [10] 的弯曲能量和约束求解器,来模拟薄壳的弯曲和折叠行为。在此基础上使用了自适应网格重建的框架,来动态地调整网格边与折痕和褶皱的对齐。这个框架可以有效地模拟锐利的特征,避免了由于刚性平面行为而导致的弯曲锁定。又使用一个显式的塑性嵌入空间,防止了网格重构导致的形状扩散。他们将每个网格顶点与一个固定的嵌入顶点相关联,并记录其相对位置。当网格重构发生时,他们保持嵌入顶点不变,并更新其相对位置,而不是在物理空间中更新顶点的绝对位置。这样,他们可以保持材料在塑性变形后的形状不受网格重构的影响。他们模拟了纸张、金属片、布料等不同类型和尺度的材料,并生成了具有丰富细节和多样性的塑性变形和折叠效果。如图3是将一张纸揉皱的模拟过程,它产生的几何形状既有尖锐的折痕,也有光滑的区域。Rahul Narain [11] 等人通过自适应网格重建法有效地解决材料中新出现的细节。

Figure 3. Simulation of crumpling a piece of paper

图3. 将一张纸揉皱的模拟过程

3.2.2. 角度弯曲约束

Müller M等人 [6] 使用以下弯曲模型:对于每一对相邻的三角形(x1、x3、x2)和(x1、x2、x4)见图4,将添加一个具有约束函数的双边弯曲约束Cbend和定义布的弯曲刚度的全局用户参数 k b e n d

C b e n d ( x 1 , x 2 , x 3 , x 4 ) = a c o s ( x 2,1 × x 3,1 | x 2,1 × x 3,1 | x 2,1 × x 4,1 | x 2,1 × x 4,1 | ) φ 0 (4)

其中标量 φ 0 是两个三角形之间的初始二面角。

Figure 4. For a pair of adjacent triangles, the actual dihedral Angle φ is the Angle between the normal lines n 1 , n 2 of the two triangles

图4. 一对相邻的三角形,实际的二面角 φ 是两个三角形法线 n 1 n 2 之间的夹角

与添加x3和x4点之间的距离约束或与Grinspun E等人 [10] 提出的弯曲能量相比,该弯曲模型的优点是不依赖于边缘长度,与拉伸无关,只与相邻三角形的二面角有关,因此弯曲阻力和拉伸阻力可以独立选择。图5展示了一个具有各种拉伸刚度的布袋,首先启用了弯曲阻力,然后禁用。第一行参数为

( k strengthing , k bending ) = ( 1 , 1 ) , ( 1 2 , 1 ) ( 1 100 , 1 ) ,第二行参数为 ( k strengthing , k bending ) = ( 1 , 0 ) , ( 1 2 , 0 ) ( 1 100 , 0 ) 。如

图所示,弯曲和拉伸是独立的参数,弯曲并不影响拉伸阻力。

Figure 5. This image shows a grid simulated using stretching and bending constraints

图5. 该图像显示了一个使用拉伸和弯曲约束进行模拟的网格

3.2.3. 等距弯曲约束

等距弯曲约束是指表面在弯曲时保持等距变换。Bergou等 [12] 推导了等距弯曲模型(IBM)的弯曲能量函数。这个能量函数可以用来描述不可伸展表面的弯曲行为,因为它只依赖于表面的内在几何,而不受外在变形的影响。等距弯曲约束函数的定义式:

C b e n d ( x s ) = 1 2 i , j Q i , j x i T x j (5)

其中Q为局部弯曲能量Hessian矩阵。

IBM的一个优点是它的弯曲能量函数是二次的,因此它的海森矩阵是常数,可以快速求解约束方程,提高了模拟效率。对于服装而言,布料纺织品的延展性较小,IBM与其他弯曲模型相比,IBM可以更好地模拟布料的自然和真实的弯曲行为。

Bender J等人 [13] 引⼊了Bergou等人 [12] 的离散等距弯曲模型来模拟带有褶皱的布料。如图6是一个沉重的球体正在压下一块布,添加等距弯曲约束的布被扔在四个雕像上产生逼真的皱纹。

Figure 6. Cloth simulation with bending constraints

图6. 引入弯曲约束的布料仿真

4. 基于位置动力学的布料模拟算法

基于位置动力学的布料模拟算法将布料建模为一组质点和约束,通过对质点位置的约束来模拟布料的变形。

4.1. PBD算法

MüllerM等人 [6] 最早提出了基于位置动力学的布料模拟算法Position Based Dynamics (简称PBD)。与主要关注距离约束的Jakobsen T [5] 不同,在PBD中,Müller M等人提出了一种处理一般约束的完全通用方法:

假设约束只作用在一个当前位置为p的质点上,设系统中的任意一个等值约束函数为 C ( p ) ,在每一个时间步,模拟算法需要对质点位置p计算得到一个位置修正量 Δp ,使得 C ( p + Δp ) = 0 成立。将 C ( p + Δp ) = 0 在p的邻域内泰勒展开并取一阶近似可得:

C ( p + Δp ) C ( p ) + p C ( p ) Δp = 0 (6)

MüllerM等人在保证了动量守恒的条件下认为 Δp 是沿着约束 C ( p ) 梯度的方向,即 Δp = λ p C ( p ) 。当所有质点质量相同时,对于每个质点 p i 的位置修正量:

Δp i = s p i C ( p 1 , , p n ) (7)

其中比例系数 s = C ( p 1 , , p n ) Σ j | p j C ( p 1 , , p n ) | 2

当质点质量不同时,对于每个质点 p i 有: Δp i = λ w i p i C ( p )

所以对于每个质点 p i 的位置修正量:

Δp i = s w i p i C ( p 1 , , p n ) (8)

其中比例系数 s = C ( p 1 , , p n ) Σ j w j | p j C ( p 1 , , p n ) | 2 w i = 1 m i

对动态对象进行模拟的过程:基于1.2位置动力学模型中的数据和时间步长 Δ t ,首先分析布料所受合力并利用牛顿第二定律计算质点的速度,然后采用显式欧拉法计算布料质点的预测位置,最后通过类似高斯—赛德尔法的迭代方式多次迭代求解每个约束方程,修正并更新每个质点的位置信息,完成整个仿真过程。算法伪代码如算法1所示:

然而,PBD也有一些缺点。模型的刚度不仅取决于用户指定的刚度参数,还取决于时间步长和求解器的迭代次数,且时间步长和迭代次数之间的关系并不是简单的线性关系,导致很难直观且独立地调整参数。其次PBD没有一个基于物理意义上明确定义好的约束力概念,因此它大多局限于精度不如速度重要并且模拟是次要的影响的应用。

4.2. Gauss-Seidel迭代求解器收敛问题的改进

4.2.1. Jacobi迭代求解器

PBD算法使用的是Gauss-Seidel迭代求解器,Gauss-Seidel迭代是数值分析中常用的一种迭代算法,适用于求解大型稀疏线性方程组的近似解。迭代求解器通过对约束进行求解,更新每个顶点的位置。它在可行约束集上具有良好的收敛性,即迭代后可以逐步接近最优解。但是,如果约束集是不可行的,则Gauss-Seidel可能会在不兼容的约束条件之间循环振荡,无法收敛。如图7,在PBD中使用的Gauss-Seidel算法连续地将当前估计投影到每个约束集上(在本例中为Ci和Cj)。如果没有约束集不可行,Gauss-Seidel算法将在不同的约束(两个红点之间)之间振荡。相反,Jacobi算法将当前估计并行地投射到每个约束集上(绿色点),并在第二步中达成共识。这使得Jacobi算法收敛(红点) [14] 。

Figure 7. Gauss-Seidel compared to Jacobi, Gauss-Seidel will oscillate between incompatible sets

图7. Gauss-Seidel与Jacobi比较,Gauss-Seidel将在不兼容集之间振荡

Bouaziz S等人 [14] 对PBD进行了修改,以一种新的基于隐式约束的实时仿真求解器处理约束,并且添加额外的约束,从而将解拉回预测的(惯性)位置。

4.2.2. 基于BDF2的二阶精确多步约束力学时间积分方案

E English等人 [15] 将BDF2 (Backward Differentiation Formula)引入到PBD中,提高了仿真的稳定性和准确性。BDF2是一种二阶后向差分公式,即用前两个时间步的近似解来计算当前时间步的近似解,是一种用来求解常微分方程初值问题的隐式数值方法 [16] 。BDF2方法具有L稳定性,可以处理较大的时间步长和较刚性的材料。论文通过实验表明,使用BDF2的PBD算法可以生成更加真实和稳定的可展开曲面动画,既使投影收敛更快,又显著降低了数值阻尼。但是由于该方法将可展开性作为硬约束,可能对拉伸材料的模拟不具有竞争力。

4.2.3. 分层求解器

Gauss-Seidel ⽅法稳定且易于实施,主要原因是误差修正只能局部地从约束传播到约束。它相比于消除低频误差,能够更快地消除高频误差,因此,Gauss-Seidel方法被称为平滑方法,但面对低频误差时,Gauss-Seidel 迭代法的收敛速度极慢,消耗的计算资源较大。

提高Gauss-Seidel方法收敛速度的一种方法是创建一个网格层次结构,其中粗网格确保误差修正在整个域上快速传播。平滑器在层次结构的所有网格上逐一工作,而误差修正在不同分辨率的网格上进行,通常在从精细到粗糙级别再返回的多个循环中进⾏。这种技术被称为多重网格法 [17] 。典型的多重网格方法通常由四个部分组成 [18] :平滑,即执行迭代求解方法;下采样,对高分辨率层级中的问题进行下采样得到低分辨率层级中的子问题;插值,将低分辨率层级的求解结果通过插值变换到高分辨率层级中;精确求解器,用于在低分辨率层级上精确求解子问题。这四部分在多重网格层级中被组织成V-cycle结构,见图8

Figure 8. V-cycle structure

图8. V-cycle结构

4.3. HPBD算法

MüllerM等人 [19] 将这种技术引入了HPBD。他们将原始的模拟网格定义为层次结构中最细的网格,并通过仅保留前一个网格的一个粒子子集来创建较粗的网格,见图9

Gauss-Seidel局部求解器逐个处理约束,信息在网格中传播缓慢,因此难以产生现实世界中的高质量布料仿真效果。为了提高算法性能,MüllerM [19] 又提出了一种非线性多重网格算法来显著加速PBD算法,名为Hierarchical Position Based Dynamics (基于位置的分层动力学,简称HPBD)。HPBD通过构造多层次的粒子系统求解非线性的约束。假定初始的布料网格粒子系统处于第0层,通过简化网格来构建更多的层次,越低的层次网格越粗糙。迭代时由高层向底层迭代,通过层次之间的关系矫正每个质点的位置。在保持PBD方法处理一般非线性约束的能力的同时,显著提高了PBD的收敛速度,这使得在交互式应用程序中进行更高层次的细节实时模拟成为可能。

Figure 9. A fine level l is composed of all the particles shown and the dashed constraints. The next coarser level l +1 contains the proper subset of back particles and the solid constraints. Each fine white particle needs to be connected to at least k (=2) black particles—its parents—shown by the arrows

图9. 网格层次结构的构造:精细级别l由显示的所有粒子和虚线约束组成,下⼀个较粗的级别l + 1个包含之前粒子的真子集(黑色粒子)和实线约束,每个细小的白色粒子需要连接到至少k (=2)个黑色粒子——它的父粒子——如箭头所示

HPBD算法作为多重网格方法应用于物理模拟的早期尝试,存在一些局限性,例如求解过程中只完成了一次从低分辨率网格向高分辨率网格(即只有图7中V-cycle自底向上的右半部分)的系统误差平滑传递,没有自顶向下的误差平滑操作,限制了算法能够取得的模拟精度 [20] 。

4.4. 扩展的基于位置的动力学(XPBD)算法

PBD算法的一个限制是,模型的刚度不仅取决于用户定义的刚度参数,还取决于约束求解器的迭代次数和时间步长。MacklinM等人 [21] 解决了模拟材料的刚度对迭代次数和时间步长的依赖,以及刚性系数不好调整的问题。这项延展性工作名为eXtended Position Based Dynamics (扩展的基于位置的动力学,简称XPBD)也重新解释了PBD算法的“物理意义”。

MacklinM等人根据约束产生的能量导出了力学方程组,并且使用隐式欧拉方式导出了位置和约束力的非线性方程组。引入了总拉格朗日乘子的概念,作用是将约束条件引入到能量函数中,并将其作为一种惩罚项。这样做可以在优化过程中保持约束条件的满足,并且能够通过调整拉格朗日乘子的值来平衡约束条件和物体的动力学行为,允许我们以时间步长和迭代计数独立的方式求解约束问题。

为了量化PBD更新所引入的误差,MacklinM等人模拟了一个弱可扩展的粒子链,如图10所示。该链由20个粒子组成,每个粒子有 m = 1.0 ,由 α = 10 8 的距离约束连接,模拟了超过100帧的场景。图11比较了牛顿求解器的解与XPBD的结果。在仿真过程中,该方法对50次、100次和1000次迭代的最大相对误差分别为6%、2%和0.5%。可以看出基于XPBD的方法和基于Newton的方法效果是基本一致的。这表明XPBD的物理模拟精度相比与PBD有了极大提升,使得XPBD算法可以模拟更加真实的物理现象。

Figure 10. A time-lapse view of a hanging chain of 20 particles falling under gravity. Left: Reference Newton solver. Right: XPBD with 50 iterations

图10. 一个由20个粒子组成的悬链在重力作用下下落的延时视图。左图:牛顿求解器。右图:50次迭代的XPBD

Figure 11. The solution of Newton solver with the result of XPBD

图11. 牛顿求解器的解与XPBD的结果

不过XPBD算法为了避免求解复杂的约束函数的Hessian矩阵,在求解过程中直接抛弃Hessian矩阵,导致在采用较大时间步长的实时模拟中可能会出现较大的误差。

整个XPBD算法流程如算法2所示:

Müller M等人 [22] 基于XPBD增加额外的几何约束来实现对线性物体的差分参数辨识和形状控制。图12展示了其模拟扭绳的能力,允许用户在摆动和扭转自由度上独立设置不同弹性范围。

Figure 12. Based on XPBD rigid body twisted rope simulation results of the simulation method

图12. 基于XPBD刚体仿真方法的扭绳仿真结果

5. 基于PBD的布料模拟在服装领域的应用

在服装领域中,基于位置动力学的算法被广泛应用于虚拟试衣、动态模拟与交互仿真等方面。

虚拟试衣:阮艳雯等人 [23] 通过使用基于刺激–有机体–反应理论构建相关理论模型与问卷调研相结合的方法得出人机交互感知对体验满意度存在积极影响,其中感知沉浸感与感知控制性对体验满意度呈正向影响的结论。基于位置动力学的算法可模拟穿衣过程,通过虚拟试衣平台用户可选择服装款式、颜色检查衣物的合身度等方面,提高购物决策准确性,增加体验满意度;设计师可对服装进行动态模拟和实时反馈,更准确地预测服装效果,提高效率,缩短设计时间。汤顺雷等 [24] 改进了基于位置动力学的方法并实现了并行加速的布料约束求解,改进了衣物和人体碰撞处理的流程,能够在不损失任何效果和稳定性的情况下将大量计算并行化处理,极大加速求解和碰撞处理过程,从而能够有效地应用在虚拟试衣系统中。Hu P等人 [25] 提出了一种基于优化的参考体网格变形拟合目标体网格的方法,可以针对不同形状和姿势的人体进行可穿戴物品的全自动虚拟试穿。实验表明,该方法可以处理复杂姿态的模型,也可以处理多层服装。但是虚拟试穿还不稳定,存在布料撕裂等问题。

动态模拟:基于位置动力学的算法可以模拟动态变形的效果,例如服装在运动、弯曲、旋转等过程中的变形效果、布料的自然摆动、拉扯、褶皱等。H Va等人 [26] 使用Unity3D进行基于PBD的体积可变形物体的模拟,提出了一种高效的GPU加速算法,能够快速模拟复杂和不规则的形状。他们所提出的方法可以应用于其他支持基于GPU的加速的游戏引擎。贾江凯等 [27] 使用基于位置动力学的方法对拉伸、碰撞情景下布料碰撞与撕裂的实时仿真模拟,通过几何方法,计算破损点周围质点的撕裂率,确定下一点最可能撕裂的质点,修改该质点的抗撕裂值,模拟逼真的裂轨迹,解决了布料撕裂过程中,需要预先规定撕裂轨迹的难题。刘宇涵 [28] 对特种装备伪装柔性织物进行虚拟仿真研究,通过基于位置动力学的布料建模、异质布料绘制、布料撕裂改进、碰撞反馈等仿真实验模拟了在特定的环境中实现特种装备与环境融为一体的伪装,在实际应用中对于军事演练、伪装材料的效果验证等具有强大的指导功能。

交互仿真:基于位置动力学的算法还可以模拟衣物与身体的交互效果,使服装模拟更加自然地贴合角色的身体,提高角色形象的可信度和服装真实感,也帮助设计师更好地了解服装的动态效果。M Tang [29] 等人使用动态数据结构和踪重叠原语的增量CCD算法设计的基于GPU交互布料仿真的增量式碰撞处理算法,可以在普通GPU上以每秒2~8帧的速度模拟具有数十万个顶点的复杂布料变形。IR Ali等 [30] 通过增强基于位置的动力学(PBD)框架,针对可穿戴服装的虚拟人物角色开发了实时布料模拟器。在优化服装碰撞检测的情况下,实现了动画和布料模拟的同步,并且能够操作布料属性以获得最佳效果,通过对移动胶囊体的自碰撞和碰撞进行处理,实现了在动画角色上实时展现逼真的3D布料模型和布料行为,见图13

Figure 13. Through dance animation dynamically display animation and cloth simulation

图13. 通过舞蹈动画动态地展示动画与布料模拟

6. 基于PBD布料模拟的挑战和未来的发展方向

效率和并行性:虽然PBD比基于力的方法效率更高,但它仍然需要大量的迭代来精确求解约束。此外,由于PBD的顺序特性,它本身不具有并行性。因此,一些研究人员尝试使用深度学习、预处理、GPU计算、多线程等方法来提高PBD的效率和并行性。H Shao等人 [31] 提出了一种用图网络(GNs)预测初始猜测来加速杆动力学的迭代求解器的新方法。他们利用基于位置的动力学(PBD)作为物理系统的通用求解器,并通过模拟弹性杆的动力学来评估它。在确保稳定性的同时,同时提高了运行时性能。但是在涉及碰撞的复杂情况下,这种框架实现的加速降低了。Lee等人 [32] 使用内部形状保持约束(ISPC)生成算法对内部网格进行约束生成和预处理,减少了模拟过程中的计算量和迭代次数。Hongly Va等 [33] 提出了一种基于OpenGL着色器语言(GLSL)的并行布料模拟方法,充分利用了现代GPU的大规模并行性和高性能。实验结果表明,在GPU上实现的隐式约束执行布料模拟的性能比基于CPU的实现快124倍左右。

各向异性和非均匀性:现实中许多织物由于其织造图案或染色工艺的原因,具有固有的各向异性和不均匀性。虽然一些研究人员提出了各向异性和非均匀的布料纱线模型 [34] [35] ,但它们在动态模拟时仍然受到布料是各向同性和均匀的假设的限制。Narain R等人 [36] 使用了一种根据仿真布料的几何和动态特征来调整网格的大小和方向的技术,它能动态地细化和粗化三角形网格,使它们自动适应仿真布料的几何和动态细节。这种技术产生了各向异性的网格,能够适应表面曲率和速度梯度,有效地模拟皱纹和波浪。Xinyu Lu等 [37] 设计了一种基于拓扑图的数据结构,用于表示编织物的结构和状态。他们首次将XPBD和增量势能接触(IPC)算法结合起来,实现了三维拓扑编织的无穿透模拟。XPBD可以保证编织物的形变满足物理约束,而IPC可以有效地解决编织物之间的自碰撞和与环境的碰撞。发展各向异性布料网格的动态模拟方法可以产生与服装外观更匹配的更加真实和多样化的服装行为模拟。

数据驱动模拟:尽管PBD可以为布料模拟生成合理的结果,但由于其简化和近似,可能无法再现真实布料的精确行为。因此,一些研究者提出使用数据驱动技术来增强或替代PBD进行布料模拟。TM Lee等人 [38] 提出了一种基于微型布料仿真和升级深度神经网络的高效布料仿真方法,但由于训练数据没有涵盖所有情况,布料上形成了不必要的皱纹。所以在数据驱动模拟中,构建适用于各种情况的训练数据是至关重要的。H Bertiche等 [39] 使用深度神经网络来预测布料顶点的位置,遵循Bertiche等人 [40] 提出的一种通过深度学习获取服装的姿势空间变形的方法,损失函数为由布料和身体组成的物理系统的能量函数来无监督地训练模型。随着训练的进行,网络学会预测满足能量约束的服装状态,重现真实织物的精确行为。它是第一种能够无监督地学习真实的布料动力学的方法。Chen L等人 [41] 设计了一个多特征超分辨率(MFSR)网络,用于从粗糙的模拟网格中生成褶皱细节。以更低的计算成本合成布料动画,并创建与训练数据相似的起皱效果,比传统的物理模拟快12~14倍,可以在高帧率下得到逼真的结果。Zhang等人 [42] 提出了一种数据驱动的方法来改善粗糙服装几何的细节。该方法通过匹配基于风格损失的Gram矩阵来表达高分辨率细节。Kim等人 [43] 提出了一种称为各向异性约束边界卷积神经网络(AnisoCB-ConvNet)的神经网络,该网络通过对低分辨率布网格进行超分辨率操作,可以稳定地表达高质量的网格而不振荡,对布料进行高效建模。但是这种框架没有考虑塑性材料的布表面的网络。

7. 结语

本文简要介绍了布料模拟的网格模型、约束条件和基于位置动力学的算法,并概述了该方法在服装行业中的主要应用。基于位置动力学的方法是一种几何驱动技术,其通用性、鲁棒性、可控性和效率使其特别适合交互式应用。该方法避免了基于力的仿真模型在使用显式时间积分方案时的超调问题。只要确定了约束函数的梯度就可以处理任意双边约束和单边约束,非常灵活。因此,该方法已被广泛用于模拟布料、可变形固体和流体。

基于位置动力学的方法通用、简单、鲁棒且效率高,现在不仅用于离线仿真还可用于实时应用,然而,算法PBD下模型的刚度除用户定义参数外还依赖时间步长和求解器迭代次数,解耦这些参数以及自适应时间步是未来的研究课题。另一个缺点是不收敛问题,即在网格细化后,仿真不能收敛到某个解,自适应网格的使用是另一个开放问题。PBD与深度学习的结合也是未来的发展方向,例如利用深度学习模型来预测约束条件,动态产生PBD算法中需要计算的约束,提高模拟的速度。

NOTES

*通讯作者。

参考文献

[1] O’brien, J.F. and Hodgins, J.K. (1999) Graphical Modeling and Animation of Brittle Fracture. Proceedings of the 26th Annual Conference on Computer Graphics and Interactive Techniques, Los Angeles, 8-13 August 1999, 137-146.
https://doi.org/10.1145/311535.311550
[2] Terzopoulos, D., Platt, J., Barr, A., et al. (1987) Elastically Deformable Models. Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, Anaheim, 27-31 July 1987, 205-214.
https://doi.org/10.1145/37401.37427
[3] Provot, X. (1995) Deformation Constraints in a Mass-Spring Model to De-scribe Rigid Cloth Behavior. Proceedings of Graphics Interface, Québec, 17-19 May 1995, 147.
[4] Breen, D.E., House, D.H. and Wozny, M.J. (1994) Predicting the Drape of Woven Cloth Using Interacting Particles. Proceedings of the 21st Annual Conference on Computer Graphics and Interactive Techniques, Orlando, 24-29 July 1994, 365-372.
[5] Jakobsen, T. (2001) Advanced Character Physics. Game Developers’ Conference Proceedings, San Jose, 20-24 March 2001, 383-401.
[6] Müller, M., Heidelberger, B., Hennix, M., et al. (2007) Position Based Dynamics. Journal of Visual Communication and Image Repre-sentation, 18, 109-118.
https://doi.org/10.1016/j.jvcir.2007.01.005
[7] Wang, H., Ding, Y., Yang, Q., et al. (2020) Cloth Simulation Algorithm Based on the Mass-Spring Model and the Non-Planar Vortex Lattice Model. Frontier Computing: Theo-ry, Technologies and Applications, Kyushu, 9-12 July 2019, 578-585.
https://doi.org/10.1007/978-981-15-3250-4_72
[8] Zhang, X., Wu, H., Sun, W., et al. (2020) An Optimized Mass-Spring Model with Shape Restoration Ability Based on Volume Conservation. KSII Transactions on Internet and Infor-mation Systems, 14, 1738-1756.
https://doi.org/10.3837/tiis.2020.04.018
[9] Macklin, M., Müller, M., Chentanez, N., et al. (2014) Unified Particle Phys-ics for Real-Time Applications. ACM Transactions on Graphics, 33, Article No. 153.
https://doi.org/10.1145/2601097.2601152
[10] Grinspun, E., Hirani, A.N., Desbrun, M., et al. (2003) Discrete Shells. Proceedings of the 2003 ACM SIGGRAPH, San Diego, 27-31 July 2003, 62-67.
[11] Narain, R., Pfaff, T. and O’Brien, J.F. (2013) Folding and Crumpling Adaptive Sheets. ACM Transactions on Graphics (TOG), 32, Article No. 51.
https://doi.org/10.1145/2461912.2462010
[12] Bergou, M., Wardetzky, M., Harmon, D., et al. (2006) A Quadratic Bend-ing Model for Inextensible Surfaces. Symposium on Geometry Processing, Cagliari, 26-28 June 2006, 227-230.
[13] Bender, J., Koschier, D., Charrier, P., et al. (2014) Position-Based Simulation of Continuous Materials. Computers & Graphics, 44, 1-10.
https://doi.org/10.1016/j.cag.2014.07.004
[14] Bouaziz, S., Martin, S., Liu, T., et al. (2014) Projective Dynamics: Fusing Constraint Projections for Fast Simulation. ACM Transactions on Graphics (TOG), 33, 1-11.
[15] English, E. and Bridson, R. (2008) Animating Developable Surfaces Using Nonconforming Elements. ACM SIGGRAPH 2008 Papers, Los Angeles, 11-15 August 2008, 1-5.
https://doi.org/10.1145/1399504.1360665
[16] Wanner, G. and Hairer, E. (1996) Solving Ordinary Differential Equations II. Springer, New York.
https://doi.org/10.1007/978-3-642-05221-7
[17] Wesseling, P. (1995) Introduction to Multigrid Methods.
[18] Wang, Z., Wu, L., Fratarcangeli, M., et al. (2018) Parallel Multigrid for Nonlinear Cloth Simulation. Computer Graphics Forum, 37, 131-141.
https://doi.org/10.1111/cgf.13554
[19] Müller, M. (2008) Hierarchical Position Based Dynamics.
[20] 雍俊海, 陈梓苗. 基于物理的布料模拟研究综述[J]. 包装工程艺术版, 2021, 42(14): 28-39.
[21] Macklin, M., Müller, M. and Chentanez, N. (2016) XPBD: Position-Based Simulation of Compliant Constrained Dynamics. Proceedings of the 9th Interna-tional Conference on Motion in Games, Burlingame, 10-12 October 2016, 49-54.
[22] Müller, M., Macklin, M., Chentanez, N., et al. (2020) Detailed Rigid Body Simulation with Extended Position Based Dynamics. Computer Graphics Forum, 39, 101-112.
https://doi.org/10.1111/cgf.14105
[23] 阮艳雯, 施雨荷, 顾力文, 等. 人机交互感知对虚拟试衣体验满意度的影响[J]. 丝绸, 2023, 60(5): 87-96.
[24] 汤顺雷. 面向虚拟试衣的实时化衣物模拟和材质实现研究[D]: [硕士学位论文]. 南京: 南京大学, 2018.
[25] Hu, P., Nourbakhsh, N., Tian, J., et al. (2020) A Generic Method of Wearable Items Virtual Try-On. Textile Research Journal, 90, 2161-2174.
https://doi.org/10.1177/0040517520909995
[26] Va, H., Choi, M.H. and Hong, M. (2023) Efficient Simulation of Volumetric Deformable Objects in Unity 3D: GPU-Accelerated Position-Based Dynamics. Electronics, 12, Article No. 2229.
https://doi.org/10.3390/electronics12102229
[27] 贾江凯. 拉伸, 碰撞情景下布料碰撞与撕裂的实时仿真模拟[D]: [硕士学位论文]. 秦皇岛: 燕山大学, 2019.
[28] 刘宇涵. 特种装备全生命周期重要环节实时仿真关键技术研究[D]: [博士学位论文]. 秦皇岛: 燕山大学, 2020.
[29] Tang, M., Wang, T., Liu, Z., et al. (2018) I-Cloth: Incremental Collision Handling for GPU-Based Interactive Cloth Simulation. ACM Transactions on Graphics (TOG), 37, Article No. 204.
https://doi.org/10.1145/3272127.3275005
[30] Mohammed, M., Al-Sharify, T. and Kolivand, H. (2020) Real-Time Cloth Simulation on Virtual Human Character Using Enhanced Position Based Dynamic Framework Technique. Baghdad Science Journal, 17, 1294-1294.
https://doi.org/10.21123/bsj.2020.17.4.1294
[31] Shao, H., Kugelstadt, T., Hädrich, T., et al. (2021) Accurately Solving Rod Dynamics with Graph Learning. Conference on Neural Information Processing Systems 2021 (NeurIPS), Volume 35, 4829-4842.
[32] Lee, D., Kim, T., Choi, Y., et al. (2022) Volumetric Object Modeling Using Internal Shape Preserving Con-straint in Unity 3D. Intelligent Automation & Soft Computing, 32, 1541-1556.
https://doi.org/10.32604/iasc.2022.020674
[33] Va, H., Choi, M.H. and Hong, M. (2022) Parallel Cloth Simulation Using OpenGL Shading Language. Computer Systems Science and Engineering, 41, 427-443.
https://doi.org/10.32604/csse.2022.020685
[34] Kyosev, Y., Kyosev, Y. and Schilgerius (2019) Topology-Based Model-ing of Textile Structures and Their Joint Assemblies. Springer International Publishing, Berlin.
https://doi.org/10.1007/978-3-030-02541-0
[35] Bilisik, K. (2013) Three-Dimensional Braiding for Composites: A Re-view. Textile Research Journal, 83, 1414-1436.
https://doi.org/10.1177/0040517512450766
[36] Narain, R., Samii, A. and O’brien, J.F. (2012) Adaptive Anisotropic Remeshing for Cloth Simulation. ACM Transactions on Graphics, 31, Article No. 152.
https://doi.org/10.1145/2366145.2366171
[37] Lu, X., Bo, P. and Wang, L. (2023) Real-Time 3D Topological Braiding Simulation with Penetration-Free Guarantee. Computer-Aided Design, 164, Article ID: 103594.
https://doi.org/10.1016/j.cad.2023.103594
[38] Lee, T.M., Oh, Y.J. and Lee, I.K. (2019) Efficient Cloth Simulation Using Miniature Cloth and Upscaling Deep Neural Networks.
[39] Bertiche, H., Madadi, M. and Escalera, S. (2022) Neural Cloth Simulation. ACM Transactions on Graphics, 41, Article No. 220.
https://doi.org/10.1145/3550454.3555491
[40] Bertiche, H., Madadi, M. and Escalera, S. (2020) PBNS: Physically Based Neural Simulator for Unsupervised Garment Pose Space Deformation.
https://doi.org/10.1145/3478513.3480479
[41] Chen, L., Ye, J. and Zhang, X. (2021) Multi-Feature Super-Resolution Network for Cloth Wrinkle Synthesis. Journal of Computer Science and Technology, 36, 478-493.
https://doi.org/10.1007/s11390-021-1331-y
[42] Zhang, M., Wang, T., Ceylan, D., et al. (2021) Deep Detail Enhancement for Any Garment. Computer Graphics Forum, 40, 399-411.
https://doi.org/10.1111/cgf.142642
[43] Kim, J.H., Kim, S.J. and Lee, J. (2022) Geometry Image Super-Resolution with AnisoCBConvNet Architecture for Efficient Cloth Modeling. PLOS ONE, 17, e0272433.
https://doi.org/10.1371/journal.pone.0272433