Home - Forums - Documentation - Gallery - Bugs


Feature Spotlight

Version 1.0

Terrain with Foliage

Trees on a hill
Trees on a hill
Crystal Space includes a foliage generator. This generator can randomly (based on user supplied input like density map and material based densities) place objects like stones, trees, grass, and so on. Especially in combination with our outside terrain engine this will make your worlds feel a lot less empty.

Funny Shaders

Wolf with fur shader
Wolf with fur shader
Our support for vertex and fragment shaders will give you great possiblities of enhancing your art with the nicest, up-to-date effects. Several shaders are included standard with Crystal Space but you are free to make your own.

Skeletal Animation and Dynamic Shadows

Evil character
Evil character
Skeletal animation and dynamic shadows let you characters look lifely and ever more dangerous. We support skeletal animation through the cal3d library but we also support our own skeletal animation system. Including support for 3D hardware based animation.

Upcoming Version 1.2


For the upcoming 1.2 release we are working on an imposter system. Basically this means that objects that are far away will be replaced automatically with a single procedural texture. This will help gain speed in wide open areas (like landscape or space based games) with very little effort for the game developer or artist.


Most 3D worlds typically contain a lot of static geometry (i.e. houses and hills that don't move). In such situations the PVS visibility culler will help by precomputing visibility in a separate tool. At runtime it will then become very easy to calculate which objects are visible from a given camera position.

New Terrain

We are also working on a new improved terrain engine. One of the most important improvements of this new terrain engine is better paging support.

Complete featurelist

  • Generic
    • Highly platform independent with good platform abstraction. Officially supports Linux, OSX and Windows using a wide range of compilers.
    • Modularized using a lightweight component framework, SCF, based upon the COM model.
    • Self contained so that many modules requires no or few external dependencies.
    • Written in standard C++ using very few non*standard extensions. Source available under LGPL license.
  • Comprehensive and competent
    • Contains modules for 2d and 3d graphics, sound, collision detection and dynamics via ODE and bullet as well as support modules for filesystem abstraction, xml loading etc.
    • Graphics subsystem:
      • Generic renderer abstraction with main implementation being OpenGL based.
      • Supports hardware accelerated rendering on all supported platforms and cards from all well known vendors.
      • OpenGL renderer uses acceleration techniques such as vertex buffers in AGP or VRAM and asyncronious uploads.
      • Shader centric design with shaders defined in xml markup and shader programs implemented using Cg, assembly language or fixed function operations.
      • Complicated shaders can be constructed using a meta syntax as composed by simpler modules that gets combined on load.
      • Library of common shaders such as normal mapping, parallax (virtual displacement) mapping and hardware skinning.
      • Contains a software renderer with scaled down features for platforms without OpenGL and/or debugging.
    • Mesh objects:
      • Plugin based mesh object system
      • Generic triangle based mesh with support for frame and bone based animation.
      • Terrain mesh with fast block based LOD system.
      • Configurable and extensible particle system mesh.
      • General system for static LOD on all types of meshes.
    • Collision detection and dynamics:
      • Provides bidnings for ODE and bullet dynamics systems.
      • Automatic setup of collision detection meshes and syncronization of position and orientation of meshes.
      • Simplified collision detection when you don't need the full dynamics simulation
    • Sound system:
      • 2D and 3D sound rendering via DirectSound, Alsa, OSS and CoreAudio.
      • Provides both one*time playing of effects and streaming playing in the background for music.
    • Other:
      • Filesystem abstraction layer, VFS, that handles both physical files on disk and files within ZIP files, giving virtual layout independent from platform and physical layout.
      • Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line.
  • Compatible
    • Custom model and scene file format with exporters for Blender and 3d studio max and model importers for common file formats such as obj.
    • Supports all common texture file formats including dds, jpg, png as well as some more exotic ones such as mng.
    • Sound loaders for wav and ogg formats.
    • All subsystems easily extendable for new file formats.
| Article | Discussion | View source | History |