Houdini 中文帮助文档

Rigid Body Solver

设置和配置RBD动力学解算器。

如果一个物体有该DOP,作为其子数据,物体会演变成一个RBD物体。

解算器有两个引擎:RBD引擎和ODE引擎。

ODE引擎适合模拟简单的形状,因为它处理快速,但是它对级别形态的数量有限制。

Parameters

Solver Engine在子弹,ODE,RBD之间选择一个解算器。

Bullet

Number of Substeps设置每个模拟步幅中的子步幅数量。增加此数值可以增加模拟的精度。

记住两个公式:

最大步幅==子步幅 + 1

固定的时间步幅== 时间步幅 / 子步幅

Constraint Iterations迭代次数越高,处理约束和碰撞的精度也就越高。
Use Parallel Constraint Solver指定子弹引擎是否使用多线程约束解算器(而非使用默认的单线程约束解算器)。子弹引擎使用的约束解算器可以处理碰撞和约束,所以启用该设置,可以提高模拟的性能。
Split Impulse会尝试使相互渗透的物体分离,但不会添加速度(避免物体爆炸性的飞开)。
Penetration ThresholdSplit Impulse参数只会运用在物体渗透距离大于该值的物体上。此数值应当是一个负值。

ODE

Error Reduction控制从无效关节位置处的恢复。
Constraint Force Mixing帮助解决异常的模拟。
Oversamples设置内部子步幅数量,用于增加解算器的精度。
Random Seed当ODE解算器需要重新解算一些非定义的东西时,它会使用该种子值用于随机生成标号。
Clamp to Maximum Angular Velocity钳制角速度值。此项默认是开启的。如果关闭此项,就不会产生钳制
Maximum Angular Velocity最大角速度的数值。

RBD

Substeps

Minimum Substeps设置RBD解算器的最小子步幅。增加该值会增加模拟精度。
Maximum Substeps设置RBD解算器的最大子步幅。
CFL ConditionCFL条件是一个缩放因子,用于自动定义场景所需要的步幅尺寸大小。此思想就是任何子步幅不得允许有任何超过1个体素单元的物体渗透。

当该参数值为1时,会满足条件。值为10允许子步幅有10个体素单元的渗透。

Collisions

Collision Passes堆栈解算器会查看所有对象来查找弹道碰撞。因为重解算一个碰撞时可能在其它地方创建一个碰撞,此不可以在当通道是使用局部方法解算。

因此堆栈解算器会重复碰撞解析率,直到不再查找到碰撞,或到达了通道计数值。

即使碰撞没有被完全解算,它仍然会在接触通道中被清理。主要的差异就是它会变成无弹性的。

Contact Passes堆栈解算器会查看所有对象,来查找何处的静止接触需要一个角速度来调节它。

很多堆栈的物体都是常规对象,这往往有复杂的相互关系,所以需要更多的通道来覆盖。

SubContact Passes静止物体比弹性物体有更高的稳定性需求。因此,物体不会立即陷入静止状态,但会经过多个迭代计算变得缓慢,使系统稳定。

此是用于每个接触通道的步幅数量。

Shock Propagation这些通道通常和接触通道类似。

主要的区别在于,如果一本书静止放在一个桌面上,在这个通道中会指定桌面质量为无限大。此可以防止桌面在地面上移动,使系统聚合速度更快

作为一个经验法则,设置该值为堆栈物体预期的最大值。如果你的平面在该配置中的其它对象上有十个堆栈桌面,值为10可以确保堆栈被完全解算。

Resolve Penetrations这些通道是最终用于尝试避免任何渗透通道。像Shock Propagation尝试,它会尝试从底向上处理物体。

如果一本书静止在桌面上,且和其有渗透,书会被移动躺到物体的边界。即使书是静止在桌面上的,此也会被执行。

SubContact Passes 参数是用来慢慢的羽化物体的分离。并非立即将书移动到桌面的边界,而是通过给定的子连接通道数量来处理它。此可以在计算重叠错误时,稳定处理过程。

Use Point Velocity for Collisions定义是否将点位置上的变化运用到碰撞精度中。记住,此和RBD State选项中的继承速度是不同的。此标志只会管理速度属性是否会用于碰撞,而非设置初始速度。

当设置了此项时,会检测物体的每点速度属性。如果存在,它会被指定到局部变形向量上,并且用于增强碰撞响应。

如果没有点速度,会在两帧之间比较几何体来手动计算每点速度。

Use Volume Velocity for Collisions定义体积对象的变化是否会被用于碰撞精度中。

当设置了此项时,会在该帧和前一帧比较体积对象。此差异会被用于计算曲面的变形速度。

Glue Ignores Resting Objects当一个物体静止在另一个物体上时,因为重力的原因,它们仍然会接收其它影响。此选项可以防止这些力被添加粘滞力中,使其更容易避免因为其自身重力的原因而分离的现象。
Add Impact Data在RBD解算过程中,会计算RBD物体间的大量的影响因素。 为了节省时间,通常不会记录这些内容。

如果设置了,所有影响因素都会通过附加一个Impacts/RBDImpacts 数据到碰撞物体上,从而被记录。

Culling Method在模拟大量物体中,此有助于使用各种空间分区来减少查找碰撞的工作。此选项原因从这些方案中选择一个。

“none”意味着不会尝试空间细分。

“球体”表示物体会被认为是一个球, 且会对这些球体进行细分交叉检测。此非常快速,但带有蒙皮的物体可能会产生错误的方向。

OBB表示被使用一个可设置方向的方盒。

Contact Grouping Method控制当计算点碰撞时,Houdini是否以及如何将类似点成组。

如果你设置该参数为一个值,而非使用“none”选项,Houdini会在计算碰撞中将类似的点(即,在由 Contact grouping tolerance 参数指定的距离范围的点会被成组)作为单个点处理。

如果你设置 Contact Grouping Method 参数为平均方式,Houdini会基于角点之间的平均点来计算碰撞,产生一个更稳定的结果,更少的抖动。

None单独计算每个点的碰撞。
Most central point成组相似的点作为单个点,通常都是出于物体的质心处。 此会只使用源几何体中的点,且基于碰撞点来稳定点。
Average point将类似点平均处理来计算碰撞点。
Contact Grouping Tolerance当Contact grouping method 参数不是“None”方式时,在该距离内的点会被成组。

Fracture

Minimum Piece Volume设置该解算器所创建的每个几何体块的最小体积。此可以避免创建过小的几何体,以便RBD解算器可以在稳定的行为中处理数据。
Fuse Tolerance融合簇块时使用的容差。
Stamp Interior Primitives With Creation Time在新创建的内部Primitive对象上创建一个名为creationtime 的属性,存储着它们的创建时间。此可以用于一些效果中,如在破碎Primitive对象一段时间后产生碎块物体。
Allow Fracturing From Feedback通常是通过在该帧前解算的物体来驱动破碎。如果在不同解算器间有两种使用反馈的方式,此选项可以允许这些反馈效果触发破碎。
Fracture Ignores Resting Objects由物体创建的仅存在于相互间的影响不会被考虑到破碎中。
Random Seed设置随机种子值,产生不同的初始化效果。
Convert to Poly只有多边形可以用于破碎。此可以将Primitive几何体转为多边形几何体。
Parameter Operations每个数据选项都有一个关联的菜单,可以指定参数如何操作对象。

Use Default使用默认操作菜单中的数值。
Set Initial只当数据被创建时,设置该参数的值(设置初始状态)。在所有随后的时间步幅中,此参数数值不会改变。此可以用于设置,如位置,速度的初始状态。
Set Always一直都使用该参数值。此方式可以用于被设置关键帧的数值在整个时间上都需要时所使用。这可能在整个时间上都使用物体的关键帧位置,或导出SOP中的几何体物体在每个时间步幅上都被重新抓取(如果物体有变形)。

你也可以使用此设置与参数的局部变量来随着时间的改变而修改参数。例如,在X位置上,表达式$tx + 0.1会导致在每个时间步幅上都向右移动一个单位。

Set Never从不设置此参数的数值。当使用该节点修改一个已有的连接到第一输入端的数据块时,此选项非常有用。

例如一个RBD State DOP节点可以只给物体的质量设置动画。Set Never选项可以用于所有参数,除了质量参数(其会使用Set Always方式)。

Default Operation对于任意的“操作” 菜单中设置使“用默认方式”的参数,此参数控制使用什么操作方式。

该参数也有同样的菜单选项,意思和参数操作菜单一样,但是没有“使用默认”选项。

Make Objects Mutual Affectors开启此参数会使所有连接到该节点第一输入端的物体成为手动控制的效应器。

此相当于使用一个 Affector DOP节点在物体和物体间创建一个影响关系(在连接到该节点之前创建)。此选项使所有流入一个解算器节点的物体影响其它物体变得更方便。

Group当一个物体连接器被附加到该节点的第一输入端时,此参数可以用于从这些物体中选择被该节点所影响的一个Subnet容器。
Data Name提示会被附加到物体上火其它数据中的数据名。如果数据名包含一个或多个”/”,表示要进入子数据内部。

例如,如果 Fan Force DOP节点有默认的Forces/Fan数据名,此会将名为Fan的数据附加到一个名为Force的数据块中。如果不存在名为Forces的数据,会创建一个数据块容器来放置Fan子数据。

不同的数据块在应当使用什么名称方面有不同的需要。除非在及其罕见的情况下,会使用默认的数据。

Unique Data Name开启该参数会修改数据名参数值,确保由该节点创建的数据会使用一个唯一的名称被附加,这样它就不会在任何已有的数据中被覆盖。

当关闭该参数,使用相同名称附加两个数据块会导致第二个数据被第一个替换。

如果一个物体需要多个风扇力来吹起它,此时使用唯一数据名方式更容易确保每个风扇力不会覆盖先前的风扇力(而不是要试着改变每个风扇的数据名来避免产生冲突)。

在另一方面,如果已经知道一个物体被附加了一些RBD状态数据,关闭该选项可以允许一些新的RBD状态数据覆盖已有的数据。

Solver Per Object默认解算器的行为是附加同样的解算器到所有在指定组中的物体上。此可以让物体在一个但通道中被解算器所处理,因为这些参数对每个物体都是可识别的。 但是,在单个物体上的某些物体操作更逻辑化。在这种情况下,可以使用$OBJID表达式来改变解算器对于每个物体的参数。设置此项会在每个物体上创建一个单独的解算器,允许$OBJID 变量有所不同(按预期的那样变化)。

Inputs

First Input此可选输入可用于控制哪个模拟物体会被该节点修改。任何通过该输入端连接的物体,以及匹配组参数的物体都会被修改。

如果该输入端没有连接,此节点可以配合一个Apply Data(运用数据)节点使用,或者可以作为其它数据节点的输入。

All Other Inputs如果该节点有多高输入连接对象,其它数据可以作为修改由该节点创建的数据的修改器。

指定的子数据类型对从节点到节点是非常有意义的。中键点击一个输入连接器来查看可获取的数据节点列表(这些节点可以被有意义的附加)。

Outputs

First Output此操作节点的输出取决于连接到该节点的输入对象。如果一个物体流输入到该节点,输出也会是一个包含同样物体的物体流(但是会在物体上附加该节点的数据)。

如果没有物体流连接到该节点,此输出就会是一个数据数据。此数据输出可以被连接到一个Apply Data DOP节点上,或者之间连接到其它数据节点的输入上,将该节点的数据附加到另外一个物体或数据块上。

点击分享到: