简介

布料模拟是计算机图形学中最难的方面之一,它是一种被认为是理所当然的简单的现实世界物品,但实际上它有非常复杂的内部和环境的相互作用。布通常被建模为二维网格,以模拟现实世界的物体,如织物、旗帜、横幅。然而,布也可以用来为三维物体建模,如泰迪熊、枕头、气球或球。

布料与其他移动物体,风和其他力以及一般的空气动力学模型相互作用并受其影响,所有这些都在您的控制之下。

../../_images/physics_cloth_introduction_example1.jpg

布料例子。

../../_images/physics_cloth_introduction_oncarved-wood.jpg

雕刻木人上的布料(由motorsep制作)。

../../_images/physics_cloth_introduction_example2.jpg

布料例子。

将布料物理特性添加到网格中后,布料 修改器 将添加到对象的修改器堆栈中。作为修改器,它可以与其他修改器进行交互,例如 骨架平滑 。在这些情况下,网格的最终形状是根据修改器堆栈的顺序计算的。例如,您应该在修改器计算布料的形状后平滑布料。

您可以 应用 布料修改器来冻结或锁定当前帧处的网格形状,这样会删除修改器。 例如,您可以在桌子上铺上一块平布,让模拟运行,然后应用修改器。从这个意义上说,您正在使用模拟器来节省大量建模时间。

模拟的结果保存在缓存中,以便一旦在动画中的计算出来的每一帧的网格形状不必再次重新计算。如果对模拟进行了更改,您可以完全控制清除缓存并重新运行模拟。第一次运行模拟是完全自动的,没有烘焙或单独的步骤会中断工作流程。

计算每一帧的布料形状是自动的,并在后台完成;因此您可以在模拟计算时继续工作。但是,这很占用CPU,并且取决于PC的性能和模拟的复杂性,计算网格变化所需的CPU占用量会有所不同,同样您可能会注意到的电脑卡顿也会不同。

Note

不要跳到前面

If you set up a cloth simulation but Blender has not computed the shapes for the duration of the simulation, and if you jump ahead a lot of frames forward in your animation, the cloth simulator may not be able to compute or show you an accurate mesh shape for that frame, if it has not previously computed the shape for the previous frame(s).

工作流程

制作布料的一般过程是:

  1. 建模出布料物体作为一般起始形状。

  2. 在 "属性" 的 物理 选项卡中将对象指定为 "布" 。

  3. 模拟与布料相互作用的其他偏转对象。确保修改器堆栈上的形变修改器位于任何其他网格变形修改器之后。

  4. 给布料添加灯光并指定材料和纹理,如果需要,可进行UV展开。

  5. 如果需要,可以给予物体颗粒,如从表面上掉下来的蒸汽。

  6. 运行模拟并调整设置以获得满意的结果。时间轴编辑器的播放控件非常适合此步骤。

  7. 可选的操作是,将网格动画到模拟中的某个时间点,以获取新的开始动画的形状。

  8. 在逐帧的基础上对网格进行较小的编辑,以修正较小的破洞。

Tip

为避免不稳定的模拟,请确保布料对象不会穿透任何偏转对象。

弹性

在内部,布的物理学是用连接网格顶点的虚拟弹簧来模拟的。有四种类型的弹簧可以控制布的弯曲方式。这四种类型定义如下,并在下面的图片中进行了说明。

../../_images/physics_cloth_introduction_springs.png

Specifies the degree to which the force decreases when parallel to a surface, such as a cloth. If set to 1, only the normal component of the force is considered.

张力弹簧

控制布料的刚度。

压缩弹簧

控制折叠或压缩布料所需的力的大小。

剪切弹簧

像压缩弹簧一样,但它控制着角度变形。

角形弯曲弹簧

控制布对折叠或皱缩的弹性如何。

所有这四种弹簧类型都可以在 物理属性 面板中独立控制。虽然这些设置控制的是表面弹簧,但可选的是内部弹簧可以用于三维网格,其行为类似于 软体