animated static object
RBD DOP.hiplc - .hip file
H17 Masterclass - [Rigid Body Solver]
H18 Sigraph
Destruction FX | 2 | RBD Simulation
Houdini Masterclass Tutorial: RBD Smart Activation Workflow
Solvers
Rigid Body Solver
The RBD engine uses volumes and is useful for complicated, deforming, stacked, geometry.
- OBJECT
objects
- rbdpackedobject / rbdfractureobject / rbdobject (hero)
- PRE-SOLVE
pop forces
- apply pop forces in RBD
- POST-SOLVE
sop solver
- will take geometry and transform it
.
- Unable to enforce glue constraints between RBD Objects and Static Objects. You can work around this limitation by (using constrained RBD Objects perhaps with some RBD Pin Constraint DOPs instead of a Static Object)
Bullet Solver
The Bullet engine offers simpler collision shapes and is suitable for fast, large-scale simulations. Bullet likes pieces between 0.1 and 100 if you need smaller pieces, scale up and boost gravity proportionally
- OBJECT
- DATA STREAMS
Subframes
Subframes: in global anim options (global subs?) And Time is float turn off / solver substeps (expensive when stacking obj) / constraint substeps
Substeps
SOP
Geometry :
- pack!
- convex !
s@name
(point [packed])
Constraints:
s@name
(point) - name same as geometry. (s@name = "piece" + itoa(@ptnum);
)s@constraint_name
(prim)s@constraint_type
(prim)
States
Point attribute on packed SOP geometry:
i@active=1;
- Do the actual solve.i@deforming=1;
Animation before packing. (Will recompute collision every frame! )i@animated=1;
Packing before animation.
Can set up with [RBD Configure] SOP
:
Animate:
To animate state ude SOP solver:
-
if (@Frame >21){ i@active=1; i@animated=0; }
Physical properties
@density
-@bounce
- how much energy conservation there is when two objects collide, this is multiplication between the two objects (e.g. sphere and the ground) - 0 dont bounce@friction
-how difficult is to move object from rest. 0 - no resistance at all - 0 is ice.dynamic friction
- multiplier for objects that are already movingrotational stifness
- how much object will spin (how much object inherites rotation when hit by another object), 0 - means no rotation@name
- name piecesv@v
- velocvityv@w
- angular velo@mass
-
DOP
Objects
[RBD Packed Object] DOP
Multiple packed pieces connect to 1op in solver.
- rotation for packed RBD : dop angular momentum ? ??? or use POP torque !
- geometry source can be fires tcontext geo
[RBD Object] DOP (Hero)
[RBD Fracture Object] DOP
[Static Object] DOP
[Static object] DOP
For collisions after solver
Constrains
- Change
data name
in DOP to match input geometry @constraint_name.
Attributes
required:
s@name
(point) - same as packed geometry point name.s@constraint_name
(prim)s@constraint_type
(prim)
optional:
broken
(prim}group will be ignored by solvers on subsequent frames.next_constraint_name
next_constraint_type
i@propagate_iteration
Detail
Hard
Soft
Use it a lot (ony bad case is lot of oscilation with small dumping witch require lot of substeps) not enough subs can cause unexpected damping
stiffness
- (mass indep.) frq (nr of iter per sec) 1 > 100 stiffer > to infi. (will bend anyway, oyu can increase substeps)damping ration
- (mass indep.) 0 - bedzie oscylowac zanim wroci, 1 soft return to standard pos. Over >1 can incresse even more
Glue
halftime - remove impact pwer (decay over time)
propagation rate - 1 - will spread evn to naaighb.
propagate iteration (same as solver iteration ovveride on other consrains) -1
< use default value /1
propagate. Override it in SOP as prim attrib propagationiterations
Spring
strenth
- string constant (mass dep.)damping
- damping coeficient (mass dep.)
Slider
Animate
Animate in SOP Solver attached to constraint net.
-
if (f@impact >= 1000) { s@constraint_name = ''; }
Collision
Sphere Representation
For bulletsolver
use spheres collision representation, fastest!. Not for one sided surfaces and sharp corners.
Setup:
- In RBD Object DOP change:
- Bullet Data > check: [x] Create convex hul per set of connected primitives
Convex Decomposition
.
? Volume collision source
- mode: collision intersect to volume source
- proxy volume: vdb path
? Mesh collision source
for mesh collision source:
- if its plane turn off volume based collision
SOP Solver
lets the DOP simulation use a SOP Network or chain of SOPs to evolve an object’s geometry over time - dop geo impact and feadbacks and gve tou also import merge geo.
Sops in dops TUT
Sops in dops YT
—
POP Forces
- forces inside dop
Proxy
Use transfor pieces
SOP to move orginal over proxy.
.
Packed geometry - have packedfulltransform
is 4x4 matrix transform (rot, trans, scale)
Proxy - Unpack transform from sim: matrix m = primintrinsic(1,'packedfulltransform',0);
and copy to full geo
Deforming to animating extraction
To make sim more efficient. Can pick up scale
Extract transform
SOP
Fracture
Boolean fracture
- special sop that provide constraints
RBD Material Fracture
Voronoii ++
- glass - radial
- wood - boolean based - per piece can detect wood longer edge direction
-
Voronoii 2.0
-
can do multiuple and
append to name
attribute.RBD Interior detail
- 1op - geo
- 2op - constraint
- 3op - proxy geo
RBD Cluster sop
Can Cluster from voronoii or boolean.
Set up i@cluster
point attribute (on constraints)
But for static permanent connection
…
Pack
RBD Pack
RBD Unpack
Some of attributes can run over ‘pieces’:
- Piece Attribute
- Attribute Promote - can calc center ! (compute aver ‘P’ )
- Convex Decomp + assemble
- Extract Centroid - can calculate actual center of mass.
- rbdconstraintproperties SOP «« !!!!!! ?????
[Static Solver] DOP
[Multi Solver] DOP
- multisolver is for pops (and rigid body)