What & How & Why

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
后一修订版
前一修订版
vfx:houdini:dop:node:objects:rbd_packed_object [2019/10/14 02:28] – [Point Attributes] codingharevfx:houdini:dop:node:objects:rbd_packed_object [2021/11/11 08:08] (当前版本) codinghare
行 1: 行 1:
 ======RBD Packed Object====== ======RBD Packed Object======
 <color #7092be>**//Creates a single DOP object from SOP Geometry that represents a number of RBD Objects.//**</color> <color #7092be>**//Creates a single DOP object from SOP Geometry that represents a number of RBD Objects.//**</color>
-===== =====+----
 // RBD Packed Object// 节点 会在 DOP 中创建一个 DOP 对象,供 DOP 模拟使用。该节点从指定的 SOP 路径获取几何体,并使用一个单独的点和每个具有变换的 primitive 来描述 RBD 对象。这些 primitives 可以是 //packed primitives//,//spheres//,//tubes//。每个 Primitives 都会为刚体提供碰撞几何体;而在 primitives 上的点则会包含属性,用于存储相关的信息,比如方向(orientation),质量,速度等等。\\ \\ 这导致该节点的效率远远高于 //RBD Fractured Object//、//RBD Point Object//。该节点现在只能被 //Bullet Solver// 识别。 // RBD Packed Object// 节点 会在 DOP 中创建一个 DOP 对象,供 DOP 模拟使用。该节点从指定的 SOP 路径获取几何体,并使用一个单独的点和每个具有变换的 primitive 来描述 RBD 对象。这些 primitives 可以是 //packed primitives//,//spheres//,//tubes//。每个 Primitives 都会为刚体提供碰撞几何体;而在 primitives 上的点则会包含属性,用于存储相关的信息,比如方向(orientation),质量,速度等等。\\ \\ 这导致该节点的效率远远高于 //RBD Fractured Object//、//RBD Point Object//。该节点现在只能被 //Bullet Solver// 识别。
 ====Point Attributes==== ====Point Attributes====
 +<WRAP center round help 100%>
 +之所以要提前讨论属性,是因为这些属性初始状态下只存在于 DOP netowork中(//geometry spreadsheet -> geometry//),但我们可以提前在 SOP 中设置好这些属性供 DOP 使用。而正因为这些都是 point attribute,而 //Packed Objects// 正是基于点来模拟位移与方向的,因此这些属性可以为每一个实例(instance)添加初始状态。
 +</WRAP>
 +
 //Bullet Solver// 使用如下的点属性(point attributes)来存储 //Packed Object// 中每一个部分需要的信息。 //Bullet Solver// 使用如下的点属性(point attributes)来存储 //Packed Object// 中每一个部分需要的信息。
-^ Name ^  Type  ^Description ^+^ Name ^  Type  ^  Description  ^
 |<color #900>active</color> Int  |指定对象**是否能够**与模拟中的其他对象交互。\\ \\ **关联参数**: ''initial Object Type'' 。| |<color #900>active</color> Int  |指定对象**是否能够**与模拟中的其他对象交互。\\ \\ **关联参数**: ''initial Object Type'' 。|
 |<color #900>animated</color> Int  |指定是否将 SOP 的变换(也就是自带的动画)更新到 DOP中(以 timestep 为单位)。\\ \\  该选项只在 ''active'' 为 ''0'' 的时候使用。\\ \\ **关联参数**: ''initial Object Type'' 。| |<color #900>animated</color> Int  |指定是否将 SOP 的变换(也就是自带的动画)更新到 DOP中(以 timestep 为单位)。\\ \\  该选项只在 ''active'' 为 ''0'' 的时候使用。\\ \\ **关联参数**: ''initial Object Type'' 。|
行 30: 行 34:
 |<color #900>v</color> Float  |对象的线速度。\\ \\ **关联参数**:''Velocity ''。| |<color #900>v</color> Float  |对象的线速度。\\ \\ **关联参数**:''Velocity ''。|
 |<color #900>w</color> Float  |对象的角速度。\\ \\ **关联参数**:''Angular Velocity''。| |<color #900>w</color> Float  |对象的角速度。\\ \\ **关联参数**:''Angular Velocity''。|
 +===Collision Shape Attributes=== 
 +下列属性可以用于自定义**碰撞形状**。该属性来自于 ''Bullet Data'' 节点。\\ \\  
 +^Name^  Type  ^Description^   
 +|<color #900>bullet_adjust_geometry</color> Int  |收缩碰撞几何体的范围,防止 collision padding 带来的碰撞几何体增大导致模拟发生变化。该属性可以防止碰撞几何体的交叉,去除 collision padding 带来的几何体缝隙。| 
 +|<color #900>bullet_autofit</color> Int  |当碰撞几何体的表现形式为 box、Capsule、Cylinder、Sphere、Plane 的时候,该参数决定是否使用碰撞几何体的 bounds 来作为碰撞外形。| 
 +|<color #900>bullet_collision_margin</color> Float |碰撞外形之间的 padding,用于提升 Bullet 的碰撞检测的稳定性和表现。**该属性与场景的比例有关系。**\\ \\ 该 padding 会同样增加碰撞外形的大小,因此推荐使用 ''Shrink Collision Geometry'' 来防止碰撞外形的变化。该选项不支持 ''Concave'' 、''Plane''。| 
 +|<color #900>bullet_georep</color> String  |碰撞外形的表现形式。比如  //Convex Hull//。| 
 +|<color #900>bullet_groupconnected</color> Int  |当表现形式是 Convex Hull 的时候,指定解算器是否以已连接的 primitives 为单位(Packed Primitives),创建一个包含多个 //Convex Hull// 的复杂碰撞外形。| 
 +===Collision Attributes=== 
 +以下属性用于使指定对象忽略与模拟中其他对象的碰撞行为。 
 +|<color #900>collisionignore</color>|String|如果对象处于**未激活**状态,且''min_activation_impulse '' 的值为正,那么该对象不能通过与任何满足 ''collisionignore'' 中表达式的对象进行碰撞而达到**激活**的效果。| 
 +|<color #900>activationxformgroup</color>|String|| 
 +|<color #900>collisionignore</color> String  |若指定对象满足该属性中的表达式,那么该对象不会与任何其他对象进行碰撞。\\ \\ 该表达式可以使用 DOP 对象的名字,ID、DOP Groups,或 RBD pakced object 中的 ''collisiongroup'' 属性。同时,POP Collision Ignore 节点可以用于生成该属性。以下是语法:\\ \\ <WRAP> 
 +   * ''*'' 会关闭所有的碰撞,留空会开启所有的碰撞。 
 +   * ''* ^object1'' 会导致对象只与名为 ''object1'' 的对象碰撞。 
 +   * ''wall*'' 会关闭 Packed primitive 中,所有 ''collisiongroup'' 属性中,以 ''wall'' 开头的对象。 
 +   * ''object1/wall*'' 同上,但指定了 Packed primitive 的来源为 ''Object1''。 
 +</WRAP>|