使用 Bifröst 碰撞对象

碰撞对象是 Bifröst 模拟的流动的障碍物。可以使用它们形成烟必须围绕其流动的障碍物,或者创建防止液体在重力作用下流失的水池,或者为它们设置动画以创建波浪和飞溅。

添加碰撞对象

  1. 选择一个或多个多边形网格作为碰撞对象(不支持实例),并选择下列选项之一:
    • 主容器(例如,bifrostLiquidbifrostAero),以便将所有选定网格添加到新的共享碰撞对象特性。或者,可以选择形状(例如,液体Aero)。
    • 现有碰撞对象特性,以便与选定网格共享其属性值。
  2. 选择“Bifrost > (添加)碰撞对象”(Bifrost > (Add) Collider)

移除碰撞对象

  1. 选择以下选项:
    • 一个或多个现有碰撞对象。
    • 容器(例如,bifrostLiquidbifrostAero)或形状对象(例如,液体Aero)。
  2. 选择“Bifrost > 移除 > 碰撞对象”(Bifrost > Remove > Collider)

    移除最后一个使用特定特性的网格时,会同时移除特性节点。

控制流体与碰撞对象的交互

可以使用碰撞对象的“特性”(Properties)属性组中的“启用”(Enable)选项来切换对象是否用作碰撞对象。此外,还可以使用“转化”(Conversion)选项控制如何体素化碰撞对象。

在液体特性节点上启用“空间自适应性”(Spatial Adaptivity)时,碰撞对象上的“优化邻近流体”(Refine Nearby Fluids)属性可防止流体分辨率在靠近碰撞对象的区域中变粗糙。对于需要较少细节的碰撞对象(例如,在水池底部和侧面),请禁用此选项。但对于需要全部细节的碰撞对象,则启用此选项。这不会影响始终使用完全分辨率的自由曲面(空气边界)。

此外,液体发射器特性的“粘滞”(Stickiness)部分将控制关联发射器中的流体粒子如何与任何碰撞对象进行交互。较高的“粘滞强度”(Stickiness Strength)值会导致粒子黏着并降低其在整个碰撞对象曲面上移动的速度,“粘滞带宽”(Stickiness Bandwidth)控制粒子需要距离碰撞对象曲面多近才会受粘滞影响。

如果使用碰撞对象作为池来收集静态发射器中的液体,最好让发射器和碰撞对象稍稍重叠。这样可以防止出现小气隙,因为液体填充这些间隙时可能会发生速度突变。

您可能会注意到,在碰撞对象网格特性的“转化”(Conversion)属性中将“厚度”(Thickness)设置为 1.0 或更大值时,流体会稍微偏移碰撞对象的几何体;或者,当“厚度”(Thickness)更低时,流体会略微穿透碰撞对象的几何体。这应该不会导致出现问题,并且分辨率越高(“主体素大小”(Master Voxel Size)越小),就越难以觉察。