RBD —— DOP Nodes

目录

RBD Packed Object —— 创建表示大量刚体的单个DOP对象

Bullet Solver —— 子弹解算器


RBD Packed Object —— 创建表示大量刚体的单个DOP对象

        在DOP内创建单个DOP对象,从SOP导入几何体,使用每个primitive(包含变换和表示RBD的单个点),如packed primitive、sphere、tube等;每个primitive提供碰撞体,和点属性(用于储存方向、质量、速度的信息);

        所得到的DOP对象在表示大量的对象方面,比RBD Fractured Object DOP、RBD Point Object DOP更有效;当前仅适用于Bullet Solver;

Bullet Solver使用的点属性
Name Type Description
active int 指定是否对其他对象做出反应,默认由initial object type设置;
animated int 指定变换transform(pack后的)是否更新,仅active为0时使用,默认由initial object type设置;
deforming int 指定是否重建碰撞外形(即变形),默认由initial object type设置;
name string 对象唯一名字,会被Constraint Network用于识别约束赋予的对象;
orient quaternion 围绕pivot的方向;当调整此属性时,解算器会自动更新变换;
P vector 对象质心的当前位置;
pivot vector 应用方向的枢轴点;如computecom不为0,将从碰撞形状解算,否则由Center of Mass设置;
v vector 对象线速度,可由Velocity参数设置;
w vector 对象角速度(弧度),可由Angular Velocity参数设置;
age float 对象年龄(秒);
life float 最大年龄(秒);
dead int 指定对象在下次解算中是否被删除;POP Kill可被用于生成此属性;
pscale float 围绕pivot统一的缩放,与scale相乘;
scale vector 围绕pivot统一的缩放,与pscale相乘;解算器会自动更新碰撞体和inertial tensor;
restxform matrix 初始变换,当前变换是初始变换和position transform的合并;position transformPrestpivotorientpscale, scale定义,这些属性会自动初始化;
inheritvelocity int 非零则使用原v/w覆盖参数设置;
computecom int 是否从对象的碰撞形状自动计算质心,默认由Compute Center of Mass参数设置;
computemass int 是否从对象的碰撞形状和density参数自动计算质量,默认由Compute Mass参数设置;
density float mass=volume*density,默认由Density参数设置;
mass float 对象质量;如computemass非零将自动计算质量,否则由Mass参数设置;
inertialtensorstiffness float 缩放惯性张力(inertial tensor),值越高越难旋转,默认值由Rotation Stifffness参数设置;
bounce float 弹力,当两对象均为1时反弹不损失能量,均为0时碰撞后会保持静止,默认由Bounce参数设置;
friction float 摩擦系数,值为0则为无摩擦,默认值由Friction参数设置;
creationtime float 储存创建对象的解算时间$ST;
bullet_ignore int 指定是否完全被bullet solver忽略,将无法与其他对象碰撞;
bullet_add_impact int 在解算中发生的任何撞击,均会记录在Impacts或Feedback数据;可能会增加解算时间或内存;
bullet_want_deactivate int 禁止不移动对象的解算,直到对象再次移动为止;线速度和角速度阈值用于确定对象是否不一定;如Display Geometry关闭,可查看Deactivated Color;
bullet_angular_sleep_threshold int 角速度的睡眠阈值,角速度在此值以下达到指定时间即视为不移动;
bullet_linear_sleep_threshold int 线速度的睡眠阈值,线速度在此值以下达到指定时间即视为不移动;
用于自定义碰撞形状属性
Name Type Description
bullet_color vector 指定形状引导几何体的颜色;
bullet_deactivated_color vector 指定对象不移动或失活时形状引导几何体的颜色;
bullet_georep string 表示对象的碰撞外形,convexhull,concave,box,capsule,cylinder,compound,sphere,plane;设置为none将产生禁用碰撞的static对象,但约束仍会被赋予;
bullet_groupconnected int 当为Convex Hull时,指定是否为每个prim单独创建Convex Hull;
bullet_collision_margin float 增加外形间隙距离,以提高碰撞检测的稳定性和高效性;与Shrink Collision Geometry配合使用;不支持Concave或Plane;
bullet_adjust_geometry int 收缩碰撞几何体以避免collision padding增加对象有效尺寸;可避免初始碰撞外形相互渗透以提高性能,也可消除Collision Padding引起的间隙;
bullet_shrink_amount float 指定收缩碰撞体的量;
bullet_autofit int 是否使用对象边界框计算碰撞形状(当Geometry Representation是Box, Capsule, Cylinder, Sphere, Plane时)
bullet_primR vector Box, Capsule, Cylinder, Plane碰撞外形的方向,如AutoFit,此值会自动计算;
bullet_primS vector Box碰撞外形的尺寸,如AutoFit,此值会自动计算;
bullet_primT float Box, Sphere, Capsule, Cylinder, Plane碰撞外形的位置,如AutoFit,此值会自动计算;
bullet_radius float Sphere, Capsule, Cylinder碰撞外形的半径,如AutoFit,此值会自动计算;
bullet_length float Capsule或Cylinder碰撞外形的Y方向长度,如开启AutoFit,此值会自动计算;
碰撞属性
Name Type Description
activationignore string 如对象非激活,min_activation_impulse属性为正值,将不被任何对象碰撞激活;
activationxformgroup string 对agent,当使用min_activation_impulse时,激活刚体;默认是激活所有的agent刚体;该属性应包含transform group名字(指定哪个关节刚体被激活);
collisiongroup string 由collisionignore属性使用,用于忽略碰撞;
collisionignore string 该对象将不与任何匹配的对象碰撞;可使用DOP对象的名字,ID,DOP组,collisiongroup点属性;可使用POP Collision Ignore;
min_activation_impulse float 最小碰撞impluse,使对象从非激活切换到激活;activationignore用于避免被碰撞激活;
stickycollisionignore string 忽略粘性碰撞,类似collisionignore;
minstickycollisionimpulse float 最小碰撞impluse,使对象产生粘性;stickycollisionignore用于避免被碰撞激活;
maxstickycollisionobjects int 被粘住的最大数量,小于大于0则可粘住任何数量;
numstickycollisionobjects int 粘住对象的数量;
maxstickycollisionpoints int 最大锚点数(约束),用于将该对象粘住其他对象;默认为1,将在一对对象间创建一个约束;
速度限制属性
Name Type Description
speedmin float 最低速度(单位/秒)
speedmax float 最高速度(单位/秒)
spinmin float 最低角速度(弧度/秒)
spinmax float 最大角速度(弧度/秒)
accelmax float 限制速度的变化
angaccelmax float 限制角速度的变化
Force属性
Name Type Description
force vector 指定应用到质心的力
torque vector 指定应用的扭转力
drag float 当对象被targetv、targetw属性阻尼时,此属性用于进一步缩放;
dragexp float 更高的拖拽阻尼指数,将引起离目标速度或角速度(targetv/targetw)更远的对象比离目标较近的对象,更快的恢复;
airresist float 指定匹配目标速度targetv的强度;
spinresist float 指定匹配目标角速度targetw的强度;
targetv vector 指定的目标速度,与airresist一起去计算将对象移动到目标速度的力force;
targetw vector 指定的目标角速度,与spinresist一起去计算将对象移动到目标角速度的扭矩torque;
解算器内部保留的属性
Name Class Type Description
bullet_autofit_valid point int 当AutoFit开启,此值储存解算器是否已经计算碰撞外形属性(如bullet_length、bullet_primT);
bullet_sleeping point int 跟踪对象是否已被求解器置于休眠状态;会发生在对象和附近或受约束的对象低于线性阈值和角度阈值一段时间后;当手动唤醒对象时,应将deactivation_time设置为0,避免对象立即又回到睡眠状态;
deactivation_time point float 对象已低于线性阈值或角度阈值的时间,解释器会使用该值去禁用解算对象(已失活一段时间);
found_overlap point int 当解算器首次识别到对象时,会检测对象初始是否与其他对象重叠,避免被强制分开;解算器使用此属性值判断是否对前一帧执行此过程;
id point int 对象唯一识别属性,可被解释器使用去标识已添加的对象或从解算中移除;
nextid detail int 储存解算器将分配给下个新添加的对象;

RBD —— DOP Nodes_第1张图片

RBD —— DOP Nodes_第2张图片

RBD —— DOP Nodes_第3张图片

RBD —— DOP Nodes_第4张图片

Bullet Solver —— 子弹解算器

        此解算可使用简化的对象表示,如boxes、spheres、这些节点形状的组合;还可使用凸面体convex(基于几何体点的);也可与cloth、solid、wire碰撞;

注,与wire碰撞时,wire solver的collision handling参数应设置为SDF ;凹面体concave碰撞有些问题,不能完全支持;

Constraint Solver 解析碰撞和约束,都可并行,质量差异很小;

  • Parallel Gauss-Seidel (Islands),大量小的碎片更快(如堆叠的书);
  • Parallel Gauss-Seidel (Graph Coloring),对小而大的碎片更好(如巨大的坍塌建筑物);

RBD —— DOP Nodes_第5张图片

你可能感兴趣的:(Houdini,#,RBD,Houdini)