命令条目:“粒子视图” 单击或添加 mP 世界操作符。 单击 => 按钮(如果可用),否则,请单击“创建新的驱动程序”,然后单击 =>。
命令条目: “修改”面板 “视口” 选择 mP 世界辅助对象。
命令条目:“创建”面板 “辅助对象”“粒子流” 单击“mP 世界”。 在视口中绘制出长方体形状的辅助对象。
“mParticles 世界”辅助对象(又称驱动程序)用于定义模拟的全局属性。
注意“mParticles 世界”驱动程序的图标无法设置动画,“mParticles 世界”驱动程序的参数也无法设置动画。可以对“mParticles 世界”驱动程序图标设置动画,但由该图标放置和方向所决定的重力方向和地面位置则由第 0 帧的图标位置来定义。
请参见“mParticles 世界”操作符。
“界面”-“参数”卷展栏
“mParticles 世界”辅助对象界面由两个卷展栏组成:“参数”(本部分)和高级参数。
注意使用“mParticles 世界”辅助对象上的标准隐藏功能也可以隐藏任何相关联的“mParticles 粘合”绑定。若要隐藏一个绑定而不影响另一个绑定的可见性,请使用此卷展栏底部的“隐藏视觉表示”选项。
应用重力
启用重力,这是在模拟真实世界物理情景时最常用的力。重力方向由“mParticles 世界”辅助对象图标的方向决定。启用时,图标中心将显示一个箭头,以指示重力方向。
重力大小。默认值与地球海平面的重力相对应。
注意当您添加“mParticles 世界”辅助对象时,该软件将基于当前“系统单位”设置确定默认的“加速度”值。如果在创建“mParticles 世界”辅助对象之后更改系统单位,则“加速度”值将不再与标准重力相对应。
创建一个与粒子发生碰撞的不可见地平面。此地平面不与任何几何体相关联;而是由“mParticles 世界”辅助对象的图标位置和方向来定义。启用时,其中一个图标面将显示十字图标,以指定地面碰撞平面。
有关显示“地面碰撞平面”选项效果的视频,请参见地面碰撞平面。
此地平面恢复到与其碰撞的任何粒子的能量。通常这会产生反弹效果。将其设置为最大值 1.0 可能会导致满足“牛顿第三定律”:每一个作用力都有一个大小相等、方向相反的反作用力。
当“恢复系数”接近 1.0 时,反弹效果会很明显,但结果是碰撞期间消耗的能量并不多,且动力学解决方案可能缺乏稳定性。如果碰撞对象比较少,并且它们也未捆绑在一起时,则使用接近于 1.0 的值会有一定风险。
有关显示“恢复系数”值效果的视频,请参见恢复系数。
在两个非移动曲面(粒子和地面)之间阻碍运动的力。
有关显示“静摩擦力”值效果的视频,请参见静摩擦力。
在两个移动曲面(粒子和地面)之间阻碍运动的力。
有关显示“动摩擦力”值效果的视频,请参见动摩擦力。
使用此选项可优化模拟的性能。启用时,将仅在辅助对象图标所定义的体积内准确计算模拟。而在长方体外部模拟非常简单;通常,这意味着一般会计算力而不会计算碰撞检测,因为碰撞检测在模拟计算中最为繁琐。
如果粒子数很多(数千个粒子),则启用此选项会显著加快模拟计算速度;而在某些情况下,可以按大小顺序进行计算。加快计算速度会消耗一定内存:启用此选项后,如果已知“世界限制”,则 MassFX 模拟引擎会相对于粒子位置对此体积进行空间分析。
有关显示“设置世界限制”选项效果的视频,请参见设置世界限制。
设置辅助对象图标的尺寸(以世界单位表示)。通常,图标的大小不会影响模拟;它只显示重力方向和地面碰撞平面。唯一的例外是,当启用了“设置世界限制”(请参见上文)时。
启用时,模拟将从现有缓存运行;只有在使用“缓存/烘焙模拟”之后才可用(请参见下文)。
无论已启用还是已禁用“时间配置” 实时,您都可以播放烘焙的模拟。非烘焙(“活动”)模拟只能在“非实时”播放模式下运行。原因是,“活动”模拟需要特定的时间-步长积分,而这在“实时”播放模式下是不可用的。此软件不会阻止在没有缓存的情况下以“实时”播放模式运行“活动”模拟,但结果将不一致,并且有时会出错。
打开一个对话框,其中显示烘焙模拟的统计信息,包括所消耗的内存量。烘焙的模拟随场景文件一起存储。
计算所定义时间间隔内的模拟,并将模拟数据存储在界面缓存中。一旦将模拟数据存储在缓存中,即可使用“运行烘焙的模拟”。若要移除烘焙的模拟,以防止场景文件过大,请单击“X”按钮。
设置缓存模拟的帧范围。这些选项包括:
活动段使用活动时间段。
自定义范围使用两个时间微调器(从 [开始] 到 [结束])定义自定义范围。
启用时,将在计算模拟时更新视口。禁用此选项可加快计算速度,但不会产生视觉反馈。
提示您无需一次性连续计算模拟。您可以将模拟参数更改为不同的帧范围来计算不同部分的模拟。例如,可以对第 0 - 50 帧使用一组参数,而对第 51 - 100 帧使用另一组参数来缓存模拟。然后,在运行烘焙的模拟时,您可能会在第 50 帧处看到运动变化。
启用非实时模拟播放,以使模拟不会跳过任何动画帧。这样可以确保行为一致。
此命令会对活动时间段重复运行模拟。使用“模拟播放”对话框控件可更改播放速度,并查看实际速度和当前帧。使用“停止”和“播放”按钮可切换播放。若要退出此对话框,请单击“取消”。
两个复选框,用于在由“mParticles 世界”辅助对象控制的事件中切换“mParticles 世界”辅助对象图标以及“mParticles 粘合”绑定的可见性。启用时,相应的元素便不会显示在视口中。
模拟过程采用“粒子流系统”积分步长作为此模拟中每个步长的计时参数。若要提高模拟的精度,可以通过以下两种方法之一将系统积分步长细分为更小的模拟间隔:
固定使用“子帧因子”设置(请参见下文)来细分系统积分步长。
可变MassFX 引擎确定用来细分和定义步长间隔的最佳方法。
如果子帧类型设置为“固定”,则此设置将指示粒子流如何将系统积分步长细分为较小的模拟间隔。如果子帧因子值为 1,则表示不再进行细分;如果此值为 2,则表示对于物理模拟,主积分步长减半,依此类推。
提示如果在模拟中遇到不稳定因素,例如,对象在本不应移动时却移动了,请尝试增加“子帧因子”值。设置子帧因子的一般规则是,每个粒子的最大绑定数值的两倍并加 2。因此,如果“每个粒子的最大绑定数”为 4,则将子帧因子设置为 (2 x 4) + 2 = 10。
有时,可以使用较低的“子帧因子”值,具体取决于模拟的总体复杂性。通常,您需要通过试验来确定最佳设置。
有关显示“子帧类型”选项和“子帧因子”值效果的视频,请参见“子帧类型”和“子帧因子”。
使用此设置可以加快或减慢模拟时间。可以对此设置设置动画,例如,可以在最初以正常速度运行模拟,然后对于若干个帧,将“时间比例”减小为较低的值,以获得“极速时间”类型的效果。
注意为获得最佳结果,在更改“时间比例 %”值时,请按类似的比例调整“子帧因子”值(请参见上文)。例如,如果“子帧因子”为 18,并将“时间比例 %”设置为 50.0(默认值为 100.0),请将“子帧因子”更改为 9。否则可能会显著更改模拟输出。
有关显示“时间比例 %”值效果的视频,请参见时间比例 %。
能量将粒子质量考虑在内,这样,如果一个大型粒子移动速度较慢,则不会将其置于睡眠状态,因为即使速度较慢,其质量值也足以创建足够的能量。通过此方法可使用“能量”和“反弹”参数(请参见下文)定义睡眠状态。
速度/自旋粒子的“速度”和“自旋”值必须低于所定义的阈值(请参见下文),粒子才能进入睡眠状态。
能量阈值,低于此阈值的粒子可能会进入睡眠状态。动能高于此阈值的粒子不会进入睡眠模式。
线性速度(以世界单位/秒为单位),低于此速度的粒子可能会进入睡眠状态。线性速度高于此阈值的粒子不会将进入睡眠状态。
角速度(以每秒旋转角度为单位),低于此速度的粒子可能会进入睡眠状态。角速度高于此阈值的粒子不会将进入睡眠状态。
与睡眠状态并不直接相关,而是影响模拟停止的速度。“反弹”设置可定义碰撞项(粒子与粒子或粒子与导向器)之间的相对速度值(以世界单位/秒为单位)。以低于此值的相对速度进行接触或碰撞意味着粒子不会反弹。
将“睡眠阈值”组设置(“能量”与“速度/自旋”单选按钮除外)恢复为默认值。
如果您的计算机有多个 CPU(实体或虚拟),并且没有 PhysX 硬件,则可以通过启用此开关并将“线程数”设置为用于计算模拟的 CPU 数来加快模拟处理速度。此软件不会检查“线程数”值的精度。
注意由于场景的复杂性,某些模拟可能无法轻松分割为多个核心;在这种情况下,如果使用多线程,可能会使性能有小幅度降低。
如果计算机上安装了 NVIDIA PhysX 硬件,则可以使用此选项,您可以启用此选项以指示“mParticles 世界”驱动程序在此硬件上运行模拟。
注意PhysX 硬件一次只能容纳一个模拟。因此,如果粒子系统使用多个“mParticles 世界”驱动程序执行若干个并发模拟,则只有其中一个驱动程序可以使用此硬件进行模拟。此外,使用 PhysX 硬件的其他插件还可能会对“mParticles 世界”驱动程序使用此硬件进行模拟的能力造成干扰。
硬件场景可以在两种模式下运行:“限制”和“正常”。在“限制”模式下运行时,此硬件将执行宽阶段碰撞检测,此检测仅限于 4,000 个模拟项(粒子 + 导向器)。或者,在“正常”模式下,如果已禁用“限制宽阶段”,则宽阶段将在软件中执行,此时唯一限制是内存,而对于不同图形,内存当前设置为 64K。其缺点是,在软件中运行宽阶段会使用更多的 CPU,并可能导致性能下降。总之,如果模拟的粒子数在任何时间超过 4,000,请禁用“限制宽阶段”。
硬件场景还具有其他限制:
一个硬件场景最多可以容纳 64,000 个绑定(请参见“mParticles 粘合”测试)和 64,000 个模拟项(粒子和导向器)。
此外,对于活动(而非睡眠)的模拟项,还具有其他限制。虽然一个场景可以容纳 64,000 个模拟项(假定此场景不是限制场景);但只有 4,000 个模拟项和 4,000 个绑定可以处于活动状态。
此硬件对于一个凸面图形最多支持 32 个面和 32 个顶点(请参见“mParticles 图形”操作符)。对于更大的图形,将使用软件。
由于此硬件使用不同的解算器,因此绑定和碰撞的行为与在软件上运行的行为不同。因此,不要将在软件模拟和硬件模拟中渲染的帧混淆。
启用时,可以指定模拟引擎计算一个积分步长可能花费的最长时间(以秒为单位)(请参见下文的“计算限制”)。禁用时,计算模拟步长将没有时间限制,如果模拟成功,则可能比启用此选项时的运行速度显著加快。默认设置为启用。
在某些情况下,MassFX 引擎可能导致无限循环或无法在合理的时间内解析一个积分步长,此时,使用此选项会很有帮助(例如,当粒子大小远远大于“出生栅格”“栅格大小”设置时)。在通常情况下,尤其是首次学习粒子流模拟时,请启用“安全模式模拟”。随着经验的累积,当您可以避免 MassFX 引擎的大多数问题时,便可禁用此选项。默认情况下,您还可以通过编辑 ParticleFlowToolsBox2.ini 文件来禁用此选项(请参见“自定义 mParticles 模拟”工具)。
模拟引擎可用于计算一个积分步长的最长时间(以秒为单位)。如果超过此时间,模拟将停止,并且状态栏将显示一条错误消息。然后,您可以撤消并尝试其他方法。仅当“安全模式模拟”处于启用状态时可用。
加速度
地面碰撞平面
“地面反弹和摩擦力”组
启用“地面碰撞平面”后,设置地平面的动力学属性:
恢复系数
静摩擦力
动摩擦力
注意“粒子流”界面无法为每个材质对定义这些参数。而是这些参数将按每个材质进行定义。对象与对象交互的实际参数(材质对参数)将计算为每个材质的平均参数。
设置世界限制
图标大小
“碰撞排除”组
默认情况下,模拟中的所有项均指定给“碰撞组 0”,这意味着它们将与模拟中的所有对象进行碰撞。若要优化计算或出于其他原因,可以将特定碰撞组指定给具有“mParticles 图形”和“mParticles 碰撞”操作符的项。
在“碰撞排除”组中,您可以在两个特定碰撞组之间定义“不计算”碰撞。如果您知道某两组项彼此始终不会接近,或者您不关心这些项是否会彼此穿越,则可以为一对碰撞组定义排除。方法是,将“碰撞组”值设置为其中一个“碰撞组 ID”值,然后选择具有另一个碰撞组 ID 的按钮。该按钮将保持活动状态(亮显蓝色或黄色,具体取决于颜色方案),可以用碰撞排除标识一对碰撞组。
运行烘焙的模拟
缓存/烘焙模拟
计算烘焙模拟的时间间隔由以下参数定义:
范围
更新视口
>> [播放]
隐藏视觉表示
“界面”-“高级参数”卷展栏
子帧类型
提示对于与 mParticles 粘合结合使用的稳定且可重现的模拟,强烈建议使用“固定”子帧类型。
子帧因子
时间比例 %
“睡眠阈值”组
睡眠阈值
为优化计算,如果模拟元素移动速度较慢或能量较低,则 MassFX 模拟引擎会将其置于不活动或睡眠状态。在这种情况下,粒子将不再参与模拟并保持睡眠状态,直到活动粒子通过碰撞来接触它,或者其属性之一发生更改(通常由于“输出 mParticles”子操作符而发生更改)。这样有助于减少粒子在近乎静止时所发生的抖动。
“睡眠阈值”组设置可指定在将粒子置于睡眠状态时所使用的方法,并定义粒子属性最小值。
若要定义系统确定将粒子置于睡眠状态的时间的方法,请选择以下选项之一:
根据所使用的方法(请参见上文),使用以下设置可指定确定睡眠状态的上限值:
能量
速度
自旋速率
反弹
重置为默认值
启用多线程
使用硬件 PPU
限制宽阶段
安全模式模拟
计算限制