调整 nCloth 碰撞的精确度
 
 
 

创建可信的布料效果的第三步是使 nCloth 对象的碰撞尽可能精确。现实中,下落布料与其所落在的对象紧密接触,然后发生变形,反映出布料所接触对象的形状。目前桌布不会展现出这种行为。

设定 nCloth 的厚度和被动对象

  1. 选择桌布。
  2. 打开“属性编辑器”(Attribute Editor)并选择 nClothShape1 选项卡。
  3. “碰撞”(Collisions)区域中,从“解算器显示”(Solver Display)下拉列表中选择“碰撞厚度”(Collision Thickness)

    在场景视图中将出现桌布的碰撞厚度。

    nCloth 的“厚度”(Thickness)属性确定桌布碰撞体积的半径或深度。碰撞体积是桌布曲面的不可渲染曲面偏移,由 nucleus1 解算器在计算桌布的被动对象碰撞时使用。碰撞发生在桌布的碰撞体积处,而非桌布自身曲面上。

  4. 转到播放范围的开始处。
  5. “碰撞”(Collisions)区域中,将桌布的“厚度”(Thickness)属性值更改为 0.066。

    桌布的碰撞体积将会显著减少,现在桌布行为更像是薄的织物而非厚的曲面。这一新“厚度”(Thickness)有助于提高桌布下落到桌子上时桌布碰撞的精确度。

  6. “解算器显示”(Solver Display)下拉列表中选择“禁用”(Off)

    桌布的“碰撞厚度”(Collision Thickness)不再显示在场景视图中。

  7. 播放桌布模拟。

    即使调整了桌布的“厚度”(Thickness),桌布仍然不会显示为要与桌子曲面发生接触。这是因为被动碰撞对象(如桌子)也拥有碰撞体积。

    若要进一步提高桌布碰撞的精确度,需要调整桌子的“厚度”(Thickness)

  8. 转到播放范围的开始处。
  9. 在场景视图中选择桌子,然后在“属性编辑器”(Attribute Editor)中选择桌子的 nRigidShape1 选项卡。
  10. “碰撞”(Collisions)区域中,从“解算器显示”(Solver Display)下拉列表中选择“碰撞厚度”(Collision Thickness)

    在场景视图中将出现桌子的碰撞厚度。

  11. 将桌子的“厚度”(Thickness)属性值设定为 0.066。

    桌子的碰撞体积会显著减少,这样现在在播放模拟时桌布将与桌子的实际形状紧密一致。

  12. “碰撞”(Collisions)区域中,从“解算器显示”(Solver Display)下拉列表中选择“禁用”(Off)

    桌子的“碰撞厚度”(Collision Thickness)不再显示在场景视图中。

  13. 播放桌布模拟。

    调整桌布 nCloth 和桌子被动对象的“厚度”(Thickness)显著提高了桌布碰撞的精确度。

  14. 转到播放范围的开始处。

场景视图中“碰撞厚度”的显示方式由 nCloth 的当前碰撞标志选择确定“碰撞标志”(Collision Flag)下拉列表可用于指定参与碰撞的桌布组件,以及桌布使用的碰撞体积类型。可以使用“碰撞标志”(Collision Flag)来调整 nCloth 碰撞的速度,代价是牺牲碰撞精确度。

设定参与碰撞的 nCloth 组件

  1. 选择桌布。
  2. “属性编辑器”(Attribute Editor)中,选择 nClothShape1 选项卡。
  3. “碰撞”(Collisions)区域中,从“解算器显示”(Solver Display)下拉列表中选择“碰撞厚度”(Collision Thickness)
  4. 默认情况下,“碰撞标志”(Collision Flag)设定为“面”(Face)

    “面”(Face)将提供最佳、最精确的碰撞,但对于碰撞计算而言速度最慢。

  5. “碰撞标志”(Collision Flag)选择更改为“顶点”(Vertex)“顶点”(Vertex)将生成最不精确的碰撞,但对于碰撞计算而言速度最快。

    桌布的碰撞体积从曲面更改为多个碰撞球体。

  6. 播放桌布模拟。

    桌布的某些部分未与桌子正确发生碰撞。这是因为,当选择“顶点”(Vertex)作为组件类型时,只有桌布顶点周围的小碰撞球体将参与到桌布的碰撞中,而不是像“面”(Face)那样让整个曲面都参与到碰撞中。

    顶点和面适用于要通过降低碰撞计算的数量来加快模拟的情况,以及布料模拟无需最大级别碰撞精确度的情况(例如,碰撞 nCloth 对象的距离快照)。

  7. “碰撞标志”(Collision Flag)重置为默认的“面”(Face)选择,然后从“解算器显示”(Solver Display)下拉列表中选择“禁用”(Off)
  8. 转到播放范围的开始处。
  9. 播放桌布模拟。

    桌布再次轻松、精确地与桌子发生碰撞。