Skip to content

AVSimulation/osgCal

Repository files navigation

                _____     __
 ___  ___ ___ _/ ___/__ _/ /
/ _ \(_-</ _ `/ /__/ _ `/ / 
\___/___/\_, /\___/\_,_/_/
        /___/
*===========================*

osgCal is an adapter to use cal3d (http://home.gna.org/cal3d/) inside an
OSG (http://www.openscenegraph.com/) tree.

Requirements:

 * Cal3D (version 0.11.0 or higher)
 * OSG   (version 2.0.0 or higher)

Features:

 * Completely wraps Cal3D so that users doesn't need to know the cal3d API. 
   But the simplified API is similar to Cal3D one to ease the use for Cal3D
   users.
 * Handles several animations, meshes and materials in a single model. Offers
   an API for changing between different animations without knowing anything
   about cal3d.
 * Uses GLSL hardware skinning, yet supporting OSG picking.
 * Can be switched to fixed function implementation.
 * Supports normal/bump mapped, two-sided & transparent meshes.
 * Uses different shaders (with minimum of instructions) for different
   materials.
 * Uses matrix transforms and non-skinning shader for fast drawing
   of rigid meshes. 
 * Calculates deformations only when bone positions are changed.
 * Puts each submesh inside a different osg::Drawable to take advantage of
   the OSG state sorting.

How to build:

 * Type the following commands:

     cmake . -DCMAKE_BUILD_TYPE=Release
     make
     sudo make install

 * If you want to install into /usr/ instead of /usr/local, use this instead:

     cmake . -DCMAKE_INSTALL_PREFIX=/usr

 * If some libraries are not found using "cmake ." (for example under Windows)
   you can use following environment variables

     OSG_DIR
     CAL3D_DIR


After installation you get:

 * libosgCal{.so|.dll} -- the library itself.

 * osgCalViewer[.exe] -- model viewer:

     osgCalViewer cal3d.cfg   - view model
     osgCalViewer <...>.cmf   - view one mesh from model
     osgCalViewer <...>.caf   - view specified animation
     osgCalViewer --help      - for additional command line parameters

   In the viewer itself you can run and switch animation cycles
   using '1', '2', etc. keys and '0' key to stop animation. Using
   'Ctrl+1', 'Ctrl+2', etc. keys you can run single animation.
   Also you can use 'h' key to see other available key combinations.

 * osgCalPreparer[.exe] -- meshes cache file preparer. Use it to
   speedup subsequent loading times. It saves mesh data generated by
   osgCal for the model so there is no more need to regenerate it each load. 
   When running:

     osgCalPreparer cal3d.cfg

   it creates `cal3d.cfg.meshes.cache' file which is later used when
   loading model. BTW, with meshes.cache file you can remove *.cmf files 
   since they are not needed anymore.