Game Development Reference
can simply fix the center of buoyancy to the rigid body. In a real boat the center
of buoyancy will move around as the boat pitches and rolls and a different volume
of water is displaced. Most boats are designed so that this variation is minimized,
however. Fixing the center of buoyancy doesn't look odd for most games. It shows
itself mostly with big waves, but can be easily remedied, as we'll see later.
Our buoyancy force generator can be updated to take an attachment point;
Excerpt from include/cyclone/fgen.h
* A force generator to apply a buoyant force to a rigid body.
class Buoyancy : public ForceGenerator
* The maximum submersion depth of the object before
* it generates its maximum buoyancy force.
* The volume of the object.
* The height of the water plane above y=0. The plane will be
* parallel to the XZ plane.
* The density of the liquid. Pure water has a density of
* 1000 kg per cubic meter.
* The center of buoyancy of the rigid body, in body coordinates.
/** Creates a new buoyancy force with the given parameters. */