Shark 3D physics

1. Rigid body physics

Flexible collision detection

Support for mesh geometry (convex and non-convex), primitive geometry (e.g. spheres), and a combination of both.

Various types of constraints

Including ball-and-socket, hinge and hinge-two, "keep-vertical", and many more.

Generic motors

For example the motion of a motor can be defined as path in Max™ and controlled in a flexible way by scripts.

Player control

This includes for example a special component for player movement in air or on ground.

Skinning

Rigid body skeletons can drive mesh skinning for rendering. This can be used for example for faked bendable objects like trees including rag doll effects.

2. Optimized for large worlds

Smart active-object management

Physics computation time does not depend on the total number of objects in the level, but only on the number of active objects in the level. Inactive objects away from active objects cost no time at all (except some minimal overhead for collision pair detection, where inactive objects cost the same as passive environment).

Compact collision geometry storage

Internally, collision geometry, especially mesh collision geometry, is stored very compactly and optimized for efficient access.

Smart collision database

This allows for a very efficient collision object pair detection also in large levels. The pair detection depends only logarithmically on the number of total objects in the level.

3. User interfaces

Physics parameter can be directly manipulated in the modelling tool, for example in 3D Studio Max™.

4. Collision and friction sound

A standard module automatically generates collision noise and friction noise. This module provides several possibilities for generating different sounds depending on material.

Internally, the physics noise generation uses several optimizations. This includes for example using only one sound source for multiple nearby contact points.

5. Live editing

The physics module works together seamlessly with live editing descriped at Workflow. You can manipulate object properties on the fly. This includes for example
  • Body masses.
  • Hinge axis position and orientation.
  • Collision geometry.
  • Many other properties.

6. Using third-party physics

In case of special needs, you can use Shark 3D also in combination with third-party physics middleware, for example example Havok™.