创建可信的布料效果的第三步是使 nCloth 对象的碰撞尽可能精确。现实中,下落布料与其所落在的对象紧密接触,然后发生变形,反映出布料所接触对象的形状。目前桌布不会展现出这种行为。
nCloth 的“厚度”(Thickness)属性确定桌布碰撞体积的半径或深度。碰撞体积是桌布曲面的不可渲染曲面偏移,由 nucleus1 解算器在计算桌布的被动对象碰撞时使用。碰撞发生在桌布的碰撞体积处,而非桌布自身曲面上。
桌布的碰撞体积将会显著减少,现在桌布行为更像是薄的织物而非厚的曲面。这一新“厚度”(Thickness)有助于提高桌布下落到桌子上时桌布碰撞的精确度。
即使调整了桌布的“厚度”(Thickness),桌布仍然不会显示为要与桌子曲面发生接触。这是因为被动碰撞对象(如桌子)也拥有碰撞体积。
场景视图中“碰撞厚度”的显示方式由 nCloth 的当前碰撞标志选择确定。“碰撞标志”(Collision Flag)下拉列表可用于指定参与碰撞的桌布组件,以及桌布使用的碰撞体积类型。可以使用“碰撞标志”(Collision Flag)来调整 nCloth 碰撞的速度,代价是牺牲碰撞精确度。
桌布的某些部分未与桌子正确发生碰撞。这是因为,当选择“顶点”(Vertex)作为组件类型时,只有桌布顶点周围的小碰撞球体将参与到桌布的碰撞中,而不是像“面”(Face)那样让整个曲面都参与到碰撞中。
顶点和面适用于要通过降低碰撞计算的数量来加快模拟的情况,以及布料模拟无需最大级别碰撞精确度的情况(例如,碰撞 nCloth 对象的距离快照)。