Contents

Interpenetration Resolution

When objects collide, they can end up "interpenetrating", in a situation where the two objects are "attempting to occupy the same space". Havok4 resolves interpenetration scenarios in a different and generally better way than Havok1.

Interpenetration resolution is enabled for all dynamic objects

In Havok1 dynamic objects that started penetrating would stop colliding until they ceased to penetrate

In Havok4 dynamic objects will be pushed apart when penetrating

Volume Detection

Volume detection is now the exact shape of the object instead of the bounding box

The absolute largest push an object can attempt to make is determined by the size of its Energy tank (which is then attenuated based on its current Energy budget and distance^3 as per Havok1 implementation)

Physics Engine Overload And Level Of Detail (LOD)

The collision level of detail (LOD) of objects may change when the physics engine lags (this is controlled by the Runtime Collision Control System (RCCS))

At the moment there is only one LOD below the highest level: primitives collide like boxes

Correct collision shapes will gradually return to normal when the physics engine recovers (at a rate of one prim per physics engine timestep)

When objects transition from static to dynamic their LOD will be preemptively dropped and they will collide at the lower LOD until the RCCS automagically raises it

Duplicate scripted Actions are collapsed on multi-prim objects.

An Action is a behavior that pushes the object around, such as a Vehicle, Buoyancy, or Hover behavior.

Making two scripts on one object each producing the same Action (such as llSetBuoyancy()) will result in a single instance of the Action instead of two

When two scripts on distinct prims of a multi-prim object try to produce duplicate Actions from two distinct primitives and the prims are then separated in a delink operation then the single Action instance will migrate with the script that first created it; the other piece of the object will have no Action.

Other Misc Changes

Vertical simulation extent has been increased from 768m to 4096m (a change that will become visible once an updated viewer version is released, following the Havok4 deploy), however script and UI limitations have not yet been changed accordingly yet.

What Is NOT Changed?

Dynamic objects are still limited to 31 primitives

Most primitives still have a "collision tolerance" of 0.1 meters (everything except implicit spheres)

Spheres with non-uniform scale will collide with faceted geometry

Region crossing lag will not be significantly relieved by Havok4 changes