可以指定被动曲线(“被动填充”(Passive Fill))与主动曲线的比率。被动曲线会对主动曲线的动态行为进行插值,但成本要比模拟每条曲线低的多。请参见被动填充。
更具体地说,被动毛囊通过对相邻动力学毛囊的运动进行插值来定义其运动,而非计算其自身的运动。它们可以与“Paint Effects”和“NURBS 曲线”(NURBS Curve)输出结合使用。
如果被动毛发没有输入开始位置曲线,则其形状及其运动将通过对相邻动力学头发进行插值来确定。不会对被动头发计算动力学、力或碰撞。(follicleShape 的“模拟方法”(Simulation Method)属性确定头发是处于动力学状态、被动状态还是静态。静态头发只保留“开始位置”(Start position)而不设置动画。)(请参见开始位置、静止位置和当前位置曲线。)
“被动填充”(Passive Fill)属性确定最初设置的主动毛囊与被动毛囊的比例。如果“被动填充”(Passive Fill)为 1,则说明毛囊的每隔一行和一列为被动毛囊(不在这些行或列中的点均为动力学毛囊)。如果为 2,则说明每隔一行动力学毛囊就有两行/两列的被动毛囊。动力学头发的数量随着“被动填充”(Passive Fill)值的增加而明显减少。如果头发的运动相对统一,则在大部分头发都为被动头发时,可能不会看到很大的差异。但是,“被动填充”(Passive Fill)将在主动头发之间进行均匀插值。这将在不要求自碰撞的情况下创建相同数量的头发。
尽管可以通过选择被动毛囊,然后选择 nHair > 设置开始位置(nHair > Set Start Position) >“来自当前”(From Current)轻松设置“开始位置”(Start position)曲线,但在创建毛囊时,不会为被动毛囊创建该曲线。随后可以通过编辑被动头发的开始曲线来编辑其形状。
被动毛囊也可以完全用于建模。通过修改少量开始曲线来使用它们雕刻头发。若要执行此操作,请先创建一些起初含有少量动力学头发的头发。同时显示“当前位置”和“开始位置”并将“时间滑块”设定为开始帧。编辑动力学毛囊的开始头发时,不具有开始位置的被动头发将进行插值。头发成形后,可以将被动毛囊的“当前位置”(Current position)设置为“开始位置”(Start position),然后将其激活。(选择毛囊,并在“通道盒”(Channel Box)中将“模拟方法”(Simulation Method)设定为“动力学”(Dynamic)。)
在优化性能方面,被动毛囊仅在当前某些情况下有帮助,因为动力学计算通常是头发功能总体计算成本的一小部分,尤其是在使用输出曲线时。如果大比例的头发是被动头发曲线,则开销很大的动力学计算(如自碰撞、高拉伸阻力(Stretch Resistance)、弯曲阻力(Bend Resistance)和子步(Substeps)值)完成更快速。对于大量毛囊,“Paint Effects”输出比“NURBS 曲线”(NURBS Curve)输出要快 10 倍。您往往会注意到,如果与几何体碰撞且模拟曲线上的 CV 数很大,则使用被动毛囊时性能提高最多。(模拟曲线上的点数是开始曲线上的 CV 数与毛囊节点上采样密度的乘积。)在hairSystemShape中也有一个“模拟方法”(Simulation Method)选项,通过该选项可以仅输出主动毛囊,隐藏被动毛囊。
但是,最大优点可能就是被动头发作为连贯组进行移动。这可用于虚设大量毛发的某些自碰撞一致性,而无需子碰撞开销。另一个优点就是无需对其直接建模。