Crystal Space is a free 3D game toolkit. It can be used for a variety of 3D visualization tasks. Many people will probably be interested in using Crystal Space as the basis of a 3D game, for which it is well suited.
It is divided in a main package containing an engine, a development package containing development related utilities, a documentation package containing extended HTML information.
It can optionally use OpenGL, SDL, X11and SVGALib. It can also use assembler routines using NASM and MMX extensions.
- Highly platform independent with good platform abstraction.
- 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.
- 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.
- Bone based animation mesh using the cal3d library.
- Collision detection and dynamics:
- Provides bindings for ODE and bullet dynamics systems.
- Automatic setup of collision detection meshes and synchronization 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.
- 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.
- Custom model and scene file format with exporters for Blender and 3d studio max and model importers for common file formats such as 3ds and md2.
- Supports all common texture file formats including dds, jpg, png as well as some more exotic ones such as mng (animated texture format).
- Sound loaders for wav and ogg formats.
- All subsystems easily extendable for new file formats.
|Read our complete collection of recommended free and open source software. The collection covers all categories of software.|