[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ] |  |  |  |  | [Top] | [Contents] | [Index] | [ ? ]

## 1.5 Feature List

The first feature to mention here is that Crystal Space is an Open Source project (or a Free Software project, depending on your religion) that is freely available under the GNU Lesser General Public License (GNU LGPL). See section Licenses. This means a number of things for developers, but perhaps most important is that any program you write may freely link to the Crystal Space libraries.

The second important feature of Crystal Space is that it is written to run under a wide variety of hardware and software platforms. As of this writing Crystal Space has been known to run on the following systems. Note that if a system is listed here it does not necessarily mean that it is 100% supported:

- Windows (Windows 9x/NT/ME/2000/XP)
- Unix (GNU/Linux, FreeBSD, etc.)
- MacOS/X

Here are some of just some of Crystal Space's features in no particular order. Whenever there is some documentation on the subject this is marked after the feature. The most useful documentation comes first.

- Geometric utility library with handy classes such as 2D and 3D vectors, matrices, transforms, quaternions, kdtree, axis aligned and oriented bounding box routines, rectangle subdivision, etc. See section Geometry Library (`csGeom`).
- General utility library with stuff like templated arrays, smart pointer, hash map, object registry, plugin manager, radix sort, bit array, optimized allocators, strings, etc. See section Utility Library (`csUtil`).
- Higher level tool library containing things like some example procedural textures (plasma, fire, and water), full screen effects, collider support, texture generation tools, etc.
- Graphics library with simple utilities to do mipmapping, color quantization, calculation of color gradients, simple bumpmapping, etc.
- 2D and 3D polygons
- Shared Class Facility SCF. See section Shared Class Facility (SCF). See section The Basics.
- Smart Pointers. See section Correctly Using Smart Pointers.
- Flexible plug-in system. See section Shared Class Facility (SCF). See section Create Your Own Plugin.
- Virtual file system and transparent support for ZIP files. See section Virtual File System (VFS).
- Configuration files. See section Configuration File.
- Command-line parsing. See section The Basics. See section Configuration File.
- Event system.
- Full screen effects (fading, whiteout, etc).
- Procedural textures. See section Procedural Texture System. See section Texture Mapping.
- Level of Detail. See section Level of Detail.
- Animated 3D models (3D sprites). See section Animating your Objects.
- 2D animations.
- Quake MD3 and MDL to Crystal Space convertor. See section `md32spr` Tutorial.
- The ``sprcal3d'` plugin is able to load Cal3D models. See section SpriteCal3D Mesh Object.
- Crystal Space native windowing system(s). See section Alternate Windowing System (AWS).
- 2D canvases (OpenGL, DirectDraw, X11, CoreGraphics, Cocoa, null, memory)
- 3D renderers (OpenGL, software, null). See section The Rendering System.
- Playing AVI streams (DivX 4, OpenDivX) on a texture.
- Various image loaders (BMP, GIF, JPG, PNG, SGI, TGA, WAL).
- Portals and sectors. See section Portal Engine.
- Lighting: static, pseudo-dynamic, dynamic, halos, shadows, stencil shadows. See section Lighting. See section Pseudo-dynamic Lights.
- Bezier curves.
- Visibility culling based on kd-tree with coverage buffers (Dynavis). See section Visibility Culling In Detail.
- Multiple cameras. See section Camera Movement.
- Textures, materials, and shaders. See section Texture Mapping.
- Sound drivers (CoreAudio, OSS, and WaveOut). See section Sound Plugins.
- Sound renderers (software, DirectSound 3D, EAX, aRts). See section Sound Plugins.
- Sound loaders (WAV, AU, IFF, AIFF, MOD, MP3, OGG). See section Sound Plugins.
- Thing and other mesh objects. See section Mesh Object Plug-In System. See section Thing Mesh Object, See section Creating a Thing Mesh. See section Genmesh Mesh Object. See section Creating a Genmesh Mesh.
- 2D and 3D sprites. See section Sprite3D Mesh Object. See section Sprite2D Mesh Object.
- Terrain engines with support for texture splatting (dynamically merging multiple textures on a terrain and LOD). See section Terrain Mesh Object.
- Particle systems (fire, explosions, rain, snow, spirals, fountain). See section Particle Systems in General.
- Haze mesh (a bit like volumetric light). See section Haze Mesh Object.
- Pull-down console that you can integrate in your own games. See section Console Configuration.
- Collision detection (using OPCODE). See section Basic Collision Detection.
- Powerful sequence manager to control movement, animation and other features in a world. See section Sequence Manager.
- Bitmapped and vector fonts (FreeFont). See section Using a Custom Font.
- Map file loader and converters. See section Format of Map File (XML), See section Simple Tutorial 3: Map Loading. See section Old Format of Map File.
- Scripting bindings (Python, Perl, Java). See section Scripting Languages.
- Skeletal animation. See section SpriteCal3D Mesh Object.
- Object movement. See section Mesh Movement.
- Movie Recording plugin. See section Recording Movies.
- Debugging system

[ < ] | [ > ] |  | [ << ] | [ Up ] | [ >> ]

This document was generated using texi2html 1.76.