PhysX Dynamics Operator Property Editor

 
 
 

Sets the overall accuracy of the rigid body dynamics simulation, as well as the accuracy of collisions.

To display: Choose Modify Rigid Body Edit Simulation Properties from the Simulate toolbar, or in the explorer, open the Operators folder for the current rigid body simulation Environment and click the Dynamics Operator icon.

To see parameters on the ODE Dynamics Operator property editor, see ODE Dynamics Operator Property Editor.

Simulation Accuracy

For more information, see Setting the Accuracy of Rigid Body Simulations [ Simulation].

Substeps

The number of times that the rigid body simulation is evaluated at each frame. Increasing this value can make the simulations more accurate, especially with collisions that involve either fast-moving or complex-shaped rigid bodies.

Adaptive Substepping

Sets the collision accuracy for all colliding rigid bodies in the simulation environment. You may want to set the collision accuracy level for fast-moving rigid bodies, or for rigid bodies that use their actual shape as the collision geometry, especially for the ODE dynamics engine.

For more information, see Setting the Accuracy of Collisions for PhysX [ Simulation].

Enabled

Toggles the usage of the Subdivision Depth value. This computes collisions more accurately by increasing the number of simulation substeps around the moment that the collisions occur.

Subdivision Depth

Determines how accurately the dynamics operator solves collisions. Increasing this value make the collisions more accurate.

If you increase the Substeps value (above) significantly (such as to 100), make sure to reduce this value (to 6 or less) because the combination of these two parameters can increase the calculations per frame immensely!

Advanced

The parameters on this page are settings for those who are using the PhysX engine at an advanced level. For example, you may need these parameters for when you're developing games, so that you can have the same settings here as in your game engine.

In-Engine Gravity

Enabled

Activates the built-in gravity of the PhysX dynamics engine. This is different from the gravity force found within Softimage.

Amplitude

Strength of the gravity force. The amplitude is the acceleration due to the gravity vector. If your scene's Softimage units are set to meters, this equals to about a 9.8 magnitude on earth. The force that is applied at each rigid body's center of mass is this acceleration vector multiplied by the rigid body's mass.

Sleeping

When a rigid body does not move for a period of time, it is assumed that it will remain immobile until an external force changes its state. This state of immobility is called sleeping. Sleeping means that the rigid body is not being simulated, which saves calculation time.

Sleeping can also help with stability. For example, if you do not want the bricks in a loosely constructed brick wall to start moving before a car hits the wall, you can make the bricks sleep at beginning of the simulation.

The simplest method used to determine if a rigid body can be sleeping is to set its linear and angular velocity thresholds. For a rigid body to be sleeping, it must have a linear velocity lower than its Sleeping Squared Linear Velocity Threshold value and an angular velocity lower than its Sleeping Squared Angular Velocity Threshold.

Squared Linear Velocity Threshold

The default linear velocity, squared, below which the rigid bodies start going to sleep. Range is 0 to infinity.

Squared Angular Velocity Threshold

The default angular velocity, squared, below which the rigid bodies start going to sleep. Range is 0 to infinity.

Collisions

Continuous collision detection is useful for fast moving objects. With traditional collision detection, fast moving objects can pass through other objects during a single time step. Imagine a bullet traveling towards a thin metal plate: in the first time step it would be on one side, and in the next time step it would be on the other. The PhysX engine would never detect a collision, so it would not know that it needs to change the motion of the bullet.

To deal with this problem, you can select the Continuous Collision option. Instead of testing for collision at discrete points, it tests an extruded volume which represents the object's motion during the whole time step. If a collision is detected, the time of impact can be computed and the object's motion is modified appropriately.

Continuous Collision

Activates continuous collision detection calculations which are useful for collisions with fast-moving objects.

Bounce Threshold

Sets the threshold value for when a rigid body will not bounce. All rigid bodies with a relative velocity below this value will not bounce.

The range is -infinity to 0. This value is negative because the velocity is a relative velocity, which is basically a closing velocity between the rigid body and the object with which it is colliding.

This parameter is useful for stopping objects that are prone to bouncing repeatedly until there is little visible or physical result from their bouncing, like a basketball vibrating on the ground after it has been dropped. These are usually high-restitution objects.

Skin Width

When you stack rigid bodies, the PhysX engine deals with inaccuracy by letting them slightly interpenetrate each other. You can determine the amount of interpenetration that is permitted at a scene level by setting the Skin Width value. Too much interpenetration can make a collision look incorrect, but not enough interpenetration can be worse: objects may repel each other to the point where they separate, and then fall back down on each other in a subsequent time frame. This leads to jittering.

The amount of interpenetration that works best in your scene depends on many things, such as the size of the objects and the stability of the simulation. The stability is usually determined by the gravity, as well as the time step size: lower gravity and smaller time steps typically result in more stable simulations.

Skin Width

Specifies how much rigid bodies can interpenetrate as opposed to how much they are separated. Object penetration depth directly affects how reactive objects are to collisions, which also affects how easily they are awakened from their sleeping state.

Global Body Controls

You can scale the magnitude of static and dynamic friction of all the rigid bodies in your scene at once using the Dynamic Friction Scaling and Static Friction Scaling parameters.

  • Static friction is the force that opposes a rigid body from changing its state from resting to motion. For instance, if you place a ball on an sloped plane, the static friction determines how easily the ball begins its initial slide or roll down the plane. Static friction has little or no effect after an object is moving.

  • Dynamic (also known as kinetic) friction is how much a moving rigid body resists movement against another rigid body's surface. This is the force that tends to slow down a rigid body in motion. This force is generally proportional to any force that has been applied to the rigid body, so you can think of it as the ratio of frictional force to the applied force on the rigid body.

Setting these two parameters halves the static and dynamic friction values on all materials in the simulation (the default for both parameters is 1). An example use for this scaling might be in a racing game: you can gradually make all rigid bodies slippery if conditions become wet or icy, then gradually return them to their default values as conditions return to normal.

Dynamic Friction Scaling

Scales the magnitude of the dynamic friction applied to all rigid bodies in the scene. Range is 0 to infinity.

Static Friction Scaling

Scales the magnitude of the static friction applied to all rigid bodies in the scene. Range is 0 to infinity.

Maximum Angular Velocity

Sets the maximum angular velocity that is applied to all rigid bodies in the scene.