User Tools

Site Tools


You are not allowed to perform this action
reference_guide:thinkingparticles_nodes:operator_nodes:bulletphysics:btsoftbody

BTSoftBody

Use this operator to create soft-body objects for physics simulations. This operator turns any particle (with a mesh) into a soft-body. This operator is useful to simulate cloth, paper, jelly or rubber type materials. Particles may interact with soft-bodies as well as rigid bodies.

Important
Soft-body objects and simulations are complex beasts! Due to the nature of a softer outer hull or shell; the interactions between different type of objects can easily result in madness and chaos if values are overused or set to extremes. World Scale plays an important role as well!

Operator Inputs

ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off.' You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator.

Time - (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.

Particle - (Particle) defines the input data stream representing the particle o assign parameters to.

The remaining input parameters are identical to the UI controls. For more information about the use of an individual parameter check out the descriptions below.

Operator Outputs

Initial -(Bool) is set True whenever a particle has been just created.

 

Rollout Menu

Collision - lets you choose from the drop down menu the physics engine solver to use for the physics simulation. All compatible solvers found in the thinkingParticles setup will be automatically listed.

Pull Stiffness - defines the force used to drive the springs back from an impact force.

Push Stiffness - sets the amount of force the springs use to push back into their relaxed state.

Damping - sets the amount of friction to be added on each spring interaction within the soft-body.

Shape Matching - set this amount greater than zero, to enable Shape Matching. This factor will add an extra force to keep the objects shape as stable as possible. This extra force offers the most powerful way to conform an object to its original shape.

Volume Conserv. - set this amount greater than zero, to enable Volume Conservation for soft-body objects. This extra force will distribute and restrict deformations of a soft-body based on the total volume it had, alone. This option is useful to simulate hollow and empty thin skinned objects (for example: Christmas Inflatables)

Pressure - set this amount greater than zero, to enable Pressure based effects for a soft-body. The greater this value the more internal pressure this soft-body will have. This factor adds an internal pressure force for the soft-body object. This is the perfect way to simulate a balloon or tire.

Global Friction - adds a global friction factor to all soft-body interactions and forces. This includes movement and rotation as well. If overdone; this force may freeze a soft-body in space and time.

Plasticity - sets the hardness against deformation. The higher this value the softer the material gets.

Plasticity Threshold - defines the minimum deformation length needed to create a permanent deformation. This length is specified relative to the bounding box of the soft-body. A value of 100 means the deformation has to be the size of the soft-body object.

Time Scale - use this factor to artificially change the simulation time samples taken for this type of object. Lowering this value will slow down the physics timing while increasing this value will speed up physics timing.

Position Iteration - sets the number of sub-steps to be used to estimate the real collision point of colliding objects. The lower this number, the faster the simulation will run. However, lower values would also mean less accurate results. In most situations, you can keep this value between 5-10, while in exceptionally complex scenes, you can try to set a value as high as 100 to get more accuracy.

Bending Constraints

Bending Constraint creates extra springs between two vertices to introduce extra tension on a soft-body surface. This option is usually prominent and best used with cloth like simulations. It creates the difference in look between sheets of paper or leather.

Layer - sets the amount of extra springs created between 2 different vertices to keep the soft-body from collapsing or wrinkling.

Pull Stiffness - defines the force used to drive the springs back from an impact force.

Push Stiffness - sets the amount of force the springs use to push back into their relaxed state.

Cluster

Cluster collisions and cluster deformation handling offers an optimized way of simulating soft-bodies. When this option is used, triangles are arranged in clusters within a soft-body object and physics interactions are done with the whole set of triangle clusters instead of each individual triangle. Typically this works best for simple soft-body shapes and when soft-bodies have a more rigid material property.

Count - when set to PerFace in the cluster option this value defines the amount of triangle clusters to create. A value of one would create one cluster out of the whole soft-body object. Finding a good value is dependent on the shape and polygon count of the object. Softer objects are harder to simulate with clusters as it tends to show the borders of the clustering on the surface of a soft-body object.

Cluster Iteration - sets the number of sub-steps to be used to estimate the real collision point of colliding objects. The lower this number, the faster the simulation will run. However, lower values would also mean less accurate results. In most situations, you can keep this value between 5-10, while in exceptionally complex scenes, you can try to set a value as high as 100 to get more accuracy. Note increasing this value also affects the soft-body behavior.

 

Collision /Contact

Margin - defines a collision offset for the rigid body simulation for this specific particle. The bigger this value, the earlier collisions will appear. Fast moving objects might need a bigger offset to prevent them from passing through rigid bodies.

Friction - specifies the amount of friction (factor) to apply when the object is sliding.

Hardness - defines the “bounce back” force when a collision occurs.

Anchor Hardness - sets the rigidity (strength) of an anchor attached to a soft-body

Self Collision - check this option to enable self collisions

Important
Self Collision must also be turned on to get collisions between soft-bodies. This includes particles created with the BTParticle Operator !

Aero Model

Soft-body simulation involves most of the time cloth type behavior of objects or softer thin skinned flexible surfaces that might interact with air resistance forces or wind forces.

Air resistance and wind effects are commonly used when simulating paper or light cloth materials as used in a flag for example. Those extra wind forces are added to all soft-body interactions and calculations. It enables wind forces to move soft-body objects or distort their surfaces. Various options allow to define how and where a soft-body object gets this extra force getting applied to. Those parameters work most efficiently for Paper or Flag type simulations.

Model - several options can be chosen from to apply wind force in the physics simulation calculations for soft-bodies.

Vertex Two Side - choose this option to apply wind force onto all vertices in a soft-body. Vertex normals are flipped to match velocity

Vertex Two Side Lift Drag - set this option to get wind force applied in both directions (back and forth). Vertex normals are flipped to match velocity and lift and drag forces are applied

Vertex One Side - set this option to apply wind force to all vertices from one direction only. Vertex normals are taken as it is.

Face Two Side - choose this option to apply wind force onto all faces in a soft-body from all directions. Face normals are flipped to match velocity.

Face Two Side Lift Drag - set this option to get wind force applied to all faces in both directions (back and forth). Face normals are flipped to match velocity and lift and drag forces are applied.

Face One Side - set this option to apply wind force to all faces from one direction only. Face normals are taken as it is

Lift - sets the lift force factor for the soft-body object. It defines the mechanical force generated by the soft-body moving through air. Lift acts on the whole soft-body object and is a force perpendicular to the moving direction of the object (imagine an airplane). Without air, there is no lift generated by the soft-body. Keep in mind that lift is generated by the difference in velocity of the soft-body and the air.

Drag - defines the drag force applied to a soft-body. Drag is created by air resistance and it acts the opposite direction of movement. It slows down objects on free fall and it creates a friction on all fast moving surfaces.

Wind Velocity X - defines the wind velocity in X direction. This is in world units

Wind Velocity Y - defines the wind velocity in Y direction. This is in world units

Wind Velocity Z - defines the wind velocity in Z direction. This is in world units

Hero Cut

This new feature is meant to create “Hero Cuts” into cloth or soft bodies. Full control of the tearing and advanced material handling allow for the best cutting and tearing simulations available on 3ds Max.

On - check this option to activate  advanced cutting and tearing

Source - Lets you pick between two options to control when a cut should happen. The options are:

  • Real Stress * Mask - when selected real physical stress values (stretching) are used and multiplied with the possible texture map (mask).
  • Mask Only - select this option to control the cutting/tearing based on texture maps, only.

Threshold  - sets a force threshold for the springs to break apart. If this value (force) is reached a connection between springs is lost/broken and tearing of the soft-body appears.

Mapping Channel - when set to -1 this feature is deactivated. Channels greater than -1 will use the selected channel as a tearing map. A plain white vertex color will break at this vertex while a pure black color will not break at all. Autobreak defines the threshold in all cases. Without a texture map the vertex color channel is used.

Mask - this mask (texture map) controls where the cloth tears apart. This can be a gray scale map where 1 means it is breaking and a black color means no breaking. As described in the vertex color channels, a plain white color in the texture map will break a vertex at that position while a pure black color will make a vertex unbreakable.

Important:
The “Mask”, which decides where a cut/tear appears  is the result of the combination from all possible inputs. Light, Helper and Particle Distance Group. All will be added together and create one final Mask value to cut or tear the soft body.

On Collision - when checked, tearing  will only act on faces that are colliding. Other faces that run into the threshold value will be unaffected.

Light - check this option to use a light to illumination values of a light source to control the cutting/tearing.

Intensity - this factor is multiplied by the amount of the illumination created by the light. This makes it easy to dim or turn off the effect without actually modifying the light source.

Light List Box - this list box lists all picked light objects

Pick - Press this button to pick any light source in the 3ds Max modeling view.

Rem. - pressing this button will remove the selected light source from the list box.

Helper - check this option to use a helper object to define where a cut or tearing should happen in the soft body.

Distance - sets the distance at which the helper object starts cutting the soft body.

Helper List Box -this list box lists all picked helper objects

Pick - Press this button to pick any helper object in the 3ds Max modeling view.

Rem. - pressing this button will remove the selected helper object from the list box.

Distance PGroup - instead of picking individual helper objects form the scene, a Particle Group can be used to control cutting or tearing within a soft body.

Include Sub Groups - check this option to consider nested sub groups as well.

Distance - defines the distance a particle needs to have to initiate a tear or cut operation

Multiplied by Particle Size - check this option to multiple the particle size with the distance value.

Crack Start

Max Count - sets the maximum count of tears or cuts.

Min Distance - each cut/tear needs to keep this minimum distance. If a cut appears to be too close in range it will not be created. This ensures that not all cuts are at the same position.

Position - Cuts can appear in many places or areas within a soft body. There are several options:

  • Maximum Stress - the cut/tear starts at the point of maximum stress
  • Minimum Stress - the cut/tear starts at the point of minimum stress
  • Random - a random point will be chosen to start the tear/cut.
  • Rigid Contact - the cut/tear starts at a rigid body contact position

Direction - sets the start direction of the tear/cut. Possible options are:\

  • Maximum Stress - the tear will run in the direction of Maximum Stress
  • Minimum Stress - the tear will run in the direction of Minimum Stress
  • Custom - defines a custom direction
  • RContact X-Axis - the tear will run along the direction of Rigid body X-Axis
  • RContact -X-Axis - the tear will run along the direction of Rigid body -X-Axis
  • RContact Y-Axis - the tear will run along the direction of Rigid body Y-Axis
  • RContact -Y-Axis - the tear will run along the direction of Rigid body -Y-AxisRContact Z-Axis - the tear will run along the direction of Rigid body Z-Axis
  • RContact -Z-Axis - the tear will run along the direction of Rigid body -Z-Axis
  • RContact Velocity - the tear will run along the travel direction of the Rigid body

Variation -  adds a random value to the X,Y,Z direction.

X,Y,Z Direction - sets the custom tearing direction to be used to propagate a tear in a soft body.

Bidirectional - check this option to get a tear or cut that runs in both ways along the direction.

Crack Spreading

Tearing or cracks run along their specified direction. The only way to stop a tear is by setting a Minimum Stress or Maximum length of the tear.

Min Stress - sets the minimum stress at which to stop a tear form running along the defined direction.

Max Length - defines the maximum length of a tear.

Variation - (percentage) a value of 100% means the range of random length values can be between 0 and Max Length.

Spreading/sec - sets the speed of the tear the higher this value the longer the tearing will take.

Variation - (percentage) a value of 100% means the range of random speed values can be between 0 and Spreading/sec.

Direction - sets the 'running' direction of the tear through the soft body. The following options are available.

  • Hold Start Direction - the tear runs along the initial start direction.
  • Minimum Stress - the tear runs along the Maximum Stress direction.
  • Minimum Stress - the tear runs along the Minimum Stress direction.
  • RContact X-Axis - the tear runs along the Rigid Body's X-direction.
  • RContact -X-Axis - the tear runs along the Rigid Body's -X-direction.
  • RContact Y-Axis - the tear runs along the Rigid Body's Y-direction.
  • RContact -Y-Axis - the tear runs along the Rigid Body's -Y-direction.
  • RContact Z-Axis - the tear runs along the Rigid Body's Z-direction.
  • RContact -Z-Axis - the tear runs along the Rigid Body's -Z-direction.
  • RContact Velocity - the tear runs along the Rigid Body's direction of travel

Direction Variation - adds a random angle to the direction. The higher this value the more zigzag the tear will run.

Bake Edge Data

Vertex Color MapID - lets you set the Vertex Color Map Channel (ID). As a tear happens the affected tear edges are flagged in the Vertex Color channel specified.

Materia lD - defines the Material ID to be used for marking/flagging the tear edge on the soft body surface.

Random Seed - lets you set a random seed for this Node. This ensures that no two operators of the same Node look the same when using random values.

©2024, cebas Visual Technology Inc.

reference_guide/thinkingparticles_nodes/operator_nodes/bulletphysics/btsoftbody.txt · Last modified: 2024/01/24 18:34 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki