“MassFX 工具”对话框中的“世界参数”面板提供用于在 3ds Max 中创建物理模拟的全局设置和控件。这些设置会影响模拟中的所有对象。
界面

“场景设置”卷展栏
“环境”组
通过这些设置可以控制地面碰撞和重力。要模拟重力,您可以使用 MassFX 包含的力或 3ds Max 中的重力空间扭曲。也可以选择根本不使用重力。
- 使用地面碰撞
- 启用时,MassFX 使用地面高度级别的(不可见)无限、平面、静态刚体,即,与主栅格平行或共面。此刚体的摩擦力和反弹力值为固定值。默认设置为启用。
提示: 使用地平面作为模拟的便捷测试台。
- 地面高度
- 启用“使用地面碰撞”时地面刚体的高度。以活动的单位指定。
- 全局重力
- 这些设置应用于启用了“使用世界重力”的刚体和启用了“使用全局重力”的 mCloth 对象。
“刚体”组
如果碰撞和约束看起来在模拟中无法正常使用,请尝试调整这些设置。
- 子步数
- 每个图形更新之间执行的模拟步数,由以下公式确定:(子步数 + 1) * 帧速率。如果帧速率为 30fps,则子步数为 0 时每秒 30 模拟步数,子步数为 1 时每秒 60 模拟步数,子步数为 2 时每秒 180 模拟步数,依此类推。“子步数”的最大值为 159,在帧速率为 30fps 的动画中将生成每秒 4800 模拟步数。使用的“子步数”值越高,生成的碰撞和约束结果就越精确,但会降低性能。
- 解算器迭代次数
- 全局设置,约束解算器强制执行碰撞和约束的次数。如果模拟使用许多约束,或关节错误公差非常低,则可能需要更高的迭代次数值。通常不需要此值高于 30。
- 使用高速碰撞
- 全局设置,用于切换连续的碰撞检测。
如果刚体的移动速度非常快以致于从一个模拟帧到下一个模拟帧可移动非常远的距离,那么一个刚体可以“穿越”另一个刚体。例如,低帧速率动画中的快速移动保龄球,在某一帧时位于瓶柱的一侧,而在下一帧移动到瓶柱的另一侧。在此情况下,保龄球和瓶柱之间不发生所需碰撞。
可以通过增加模拟的帧速率和/或子步数来解决此问题。但是,这些设置是全局应用的;如果将这些设置增加到足够大来修正某个快速移动的对象,将会导致整个模拟的性能降低。当启用“使用高速碰撞”时,MassFX 查找任何快速移动的刚体,并在跨越上一帧和当前帧之间的位置创建简化的碰撞图形。例如,将保龄球从瓶柱的一侧拉伸到另一侧,成为一个胶囊;由于胶囊和瓶柱发生重叠,因此 MassFX 会检测到碰撞。
默认情况下,MassFX 设置阈值速度,如果刚体的速度高于该阈值,将以试探方式(即,基于经验数据)对刚体应用“使用高速碰撞”。要指定自定义值,请使用“高速碰撞”
“最小速度”设置。
注: 此模式仅适用于有限的碰撞情形。动力学刚体也必须启用“
使用高速碰撞”,移动速度必须高于“最小速度”阈值,且必须与以凸面外壳作为物理图形的静态刚体发生碰撞。
- 使用自适应力
- 启用时,MassFX 会通过根据需要收缩组合防穿透力来减少堆叠和紧密聚合刚体中的抖动。
- 生成每个元素的图形
- 启用并将“MassFX 刚体”修改器应用于对象后,MassFX 会为对象中的每个元素创建一个单独的物理图形。禁用时,MassFX 会为整个对象创建单个物理图形。后一个选项可能不太精确,但模拟速度更快。
例如,3ds Max 中的茶壶基本体包含四个元素:壶体、壶把、壶嘴和壶盖。下图将启用和禁用“生成每个元素的图形”时为茶壶生成的物理图形进行比较。左侧的版本有四个物理图形,仍有一些“封闭”的凹面区域(例如壶把内部),但它更接近于茶壶的实际形状。
左:按照元素生成图形 = 启用
右:按照元素生成图形 = 禁用
注: 此开关仅适用于后续创建的刚体。无法在单个图形与每个元素的图形模式之间切换现有的刚体修改器。
“高级设置”卷展栏

“睡眠设置”组
- [睡眠方法]
- 模拟中移动速度低于某个速度的刚体会自动进入“睡眠”模式并停止移动。这会使 MassFX 转向其他速度更快的对象,从而提高性能。如果被其他未睡眠刚体碰撞,则睡眠对象会“醒来”并再次开始移动。
选择 MassFX 确定刚体何时睡眠的方法:
- 自动 MassFX 自动计算合理的线速度和角速度睡眠阈值,高于该阈值即应用睡眠。为此,MassFX 使用试探式或基于经验的方法。
- 手动要覆盖速度和自旋的启发式值,请选择“手动”并根据需要调整以下设置:
- 睡眠能量
- “睡眠”机制测量对象的移动量(组合平移和旋转),并在其运动低于“睡眠能量”阈值时将对象置于睡眠模式。该阈值独立于质量。
“高速碰撞”组
- [高速碰撞方法]
- 当启用“使用高速碰撞”时,这些设置确定了 MassFX 计算此类碰撞的方法。选择一种方法:
- 自动 MassFX 使用试探式算法来计算合理的速度阈值,高于该值即应用高速碰撞方法。
- 手动要覆盖速度的自动值,请选择“手动”并设置所需的“最低速度”值:
- 最小速度
- 模拟中移动速度高于此速度(以单位/秒为单位)的刚体将自动进入高速碰撞模式。如果将此值设置得非常高,可能会导致快速移动的对象穿越应与其发生碰撞的对象。如果将此值设置得非常低,将导致更多对象进入高速碰撞模式,此时,由于也需要对低速移动的对象进行碰撞计算,因此会降低性能。如果将此值设置为 0.0,则对所有移动对象启用高速碰撞模式。要应用这些设置,必须启用“使用高速碰撞”。
“反弹设置”组
- [反弹方法]
- 选择用于确定刚体何时相互反弹的方法:
- 自动 MassFX 使用试探式算法来计算合理的最低速度阈值,高于该值即应用反弹。
- 手动要覆盖速度的试探式值,请选择“手动”并设置所需的“最低速度”值:
- 最小速度
- 模拟中移动速度高于此速度(以单位/秒为单位)的刚体将相互反弹,这是碰撞的一部分。如果将此值设置得非常高,将导致快速移动的对象与其他对象碰撞时不反弹。如果将此值设置得非常低,将导致场景中更多低速移动的对象反弹,这会降低模拟性能,并可能会导致发生抖动。如果将此值设置为 0.0,将对所有移动对象启用反弹。
“接触壳”组
使用这些设置确定周围的体积,其中 MassFX 在模拟的实体之间检测到碰撞。
- 接触距离
- 允许移动刚体重叠的距离。
如果此值过高,将会导致对象明显地互相穿透。如果此值过低,将导致抖动,因为对象互相穿透一帧之后,在下一帧将强制分离。
最佳值取决于多种因素,包括场景中对象的大小、摄影机可能发生互相穿透的接近度、“重力加速度”和“解算器迭代次数”设置、物理图形的膨胀量以及模拟的帧速率。
- 支撑深度
- 允许支撑体重叠的距离。当使用捕获变换设置实体在模拟中的初始位置时,此设置可以发挥作用。
注: 更改“接触距离”值会自动将“支撑深度”值更改为新的“接触距离”值加上两者之间的差。例如,假设“接触距离”为 10.0,“支撑深度”为 8.0(差 = -2.0)。然后,如果将“接触距离”更改为 6.5,“支撑深度”将自动更改为 4.5 (6.5+(-2.0))。但是,更改“支撑深度”值不会影响“接触距离”。
“引擎”卷展栏
如果您具有要求的硬件,则可以使用这些选项加快模拟速度。
重要: 使用这些选项中的一个或两个可能可以略微改善性能。然而,启用它们时,模拟是不确定的,这意味着每次运行模拟都会生成不同效果。我们建议您禁用该选项来避免此问题,因为性能差异通常不是很大。
- 使用多线程
- 启用时,如果 CPU 具有多个内核,CPU 可以执行多线程,以加快模拟的计算速度。在某些条件下可以提高性能;但是,连续进行模拟的结果可能会不同。
- 硬件加速
- 启用时,如果您的系统配备了 Nvidia GPU,即可使用硬件加速来执行某些计算。在某些条件下可以提高性能;但是,连续进行模拟的结果可能会不同。
- 关于 MassFX
- 将打开一个小对话框,其中显示 MassFX 的基本信息,包括 PhysX 版本。