Home - Forums - Documentation - Gallery - Bugs
m (Protected "Features" [edit=sysop:move=sysop])
(Putting temporarily the whole page, assuming it is better than an obsolete page)
Line 1: Line 1:
-
== Feature Spotlight ==
+
== CS ==
 +
* Portability
 +
* Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows.
 +
* Support of a wide range of compilers and IDE, including gcc, MinGW/MSYS, Cygwin, Visual C++ 8 & 9.
 +
* Written in standard C++ using very few non-standard extensions.
 +
* Self contained so that many modules requires no or few external dependencies.
 +
* File system 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.
-
This page was simplified due to massive amount of visits from other sites.
+
* Modularity
 +
* Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched.
 +
* Bindings for other programming languages through SWIG: Java, Python, Perl.
 +
* All subsystems easily extendable for new file formats.
-
=== Version 1.1 ===
+
* Rendering & Lighting
 +
* OpenGL-based engine, supports hardware accelerated rendering on all supported platforms and cards from all well known vendors.
 +
* Rendering loops for custom rendering of objects.
 +
* Static, pseudo-dynamic and dynamic lights. Statically and dynamically lit objects can be combined.
 +
* Shadow map shadows.
 +
* Multiple render targets.
 +
* Rendering to textures.
-
==== Decals ====
+
* Shaders
 +
* Can be written in Cg, ARB, and GLSL. Shader description and mappings are defined in a XML compliant language.
 +
* Support for multiple passes, vertex and fragment programs. Light selection and multiple lights in one pass possible.
 +
* Node-based system for combination of shaders and post-processing effects.
 +
* HDR rendering, tone mapping and eye adaptation.
 +
* Fallback system of shader techniques for hardware compatibility.
 +
* Cache storage of compiled shaders for faster loading.
 +
* Library of available shaders and post-processing effects: diffuse, specular, bump map, glow, parallax, fur, bloom, blur, water, glass, and many others.
 +
* Automatic environment mapping.
-
<span>[[Image:Showcase_1_1_Decals.jpg|thumb|right|Decals]]In the development version of Crystal Space (1.1) we recently added support for decals. In this screenshot you can see how decals will be used in future versions of PlaneShift for doing shadows under characters and for a targetting effect. Of course you can use decals for many other things (footsteps, bullet holes, ...).</span>
+
* Scene & Level Of Detail Management
-
<br clear="all">
+
* Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading or space warping.
 +
* Two different cullers: frustum culling (Frustvis), and dPVS (Dynavis), which also does software occlusion culling.
 +
* General system for static LOD on all types of meshes.
 +
* Impostors for replacement of far meshes with a 2D object.
 +
* Threaded loader for streamed loading of levels and objects.
 +
* Instanciation of meshes and objects.
-
=== Version 1.0 ===
+
* Meshes
 +
* Many different type of meshes: general triangle mesh with skeletal animation, morphing and sockets, cal3d, sprite 2D, sprite 3D, ocean,...
 +
* Terrain mesh with paging and splatting.
 +
* Foliage system to dress up a scene with objects such as flora and rocks,...
 +
* Decals to be added on top of other meshes.
 +
* Configurable and extensible particle system mesh with billboards, emitters, physical effectors,...
 +
* Halos and lens flares.
 +
* Automatic triangulation of shapes.
-
==== Terrain with Foliage ====
+
* Animation
 +
* Specialized mesh for advanced skeletal animation with animation blending tree, weight skinning, morphing, and sockets.
 +
* Many types of animation nodes can be combined to generate dynamically complex animations: multi-blending, Finite State Machine, random, priority, LookAt, speed (time warping).
 +
* Ragdoll animation and animation of hairs & equipment.
 +
* Skeletal animation and morphing for the general triangle mesh.
 +
* Generic animation system for triggering of time events, moving of objects, fade in/out.
-
<span>[[Image:Showcase_1_0_Foliage.jpg|thumb|left|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.</span>
+
* Audio
-
<br clear="all" />
+
* 2D and 3D sounds with OpenAL.
 +
* Audio codecs: speex, ogg, wav (8- and 16-bit PCM).
 +
* Provides both one-time playing of effects and streaming playing in the background for music.
-
==== Funny Shaders ====
+
* Physics & Collisions
 +
* Physics of rigid bodies and joints, made through a wrapper for two physics libraries: Bullet and ODE.
 +
* Support of kinematic bodies for interaction between classical animation and the physical simulation.
 +
* Debug plugin to visualize the physical simulation.
 +
* Simplified collision detection when you don't need the full dynamics simulation.
-
<span>[[Image:Showcase_1_0_Shader.jpg|thumb|right|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.</span>
+
* Data Representation
-
<br clear="all" />
+
* XML language for the description of each object and plugin of the whole CS. XML files can be set binary for faster loading.
 +
* Procedural, dynamic and animated textures.
 +
* Support for many image formats: png, jpg, dds, bmp, gif, tga, mng, jng, (binary) alpha, transparency, non 2n sized images,...
 +
* Importers for many 3D file format: Blender through blender2crystal, 3D Studio Max, Maya, COLLADA, and model importers for common file formats such as 3ds, cal3d and md2.
-
==== Skeletal Animation and Dynamic Shadows ====
+
* User Interface
 +
* Event system & peripherals: mouse, joystick, keyboard.
 +
* Graphical user interface system through CEGUI.
 +
* User interface widgets for wxWidgets.
 +
* Text localization.
 +
* Plugin fo easy video recording and screenshots.
 +
* Font servers, FreeType2 and glyphs fonts.
-
<span>[[Image:Showcase_1_0_Demo.jpg|thumb|left|Evil character]]Skeletal animation and dynamic shadows let you create characters that look and feel more lifelike. We support skeletal animation through the [http://home.gna.org/cal3d/ cal3d] library but we also support our own skeletal animation system. Including support for 3D hardware based animation.</span>
+
* Project Management
-
<br clear="all" />
+
* Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind.
 +
* Scripts for generation of new projects.
 +
* Easy compilation and customization of the whole project thanks to Jam.
-
==== Haze ====
 
-
<span>[[Image:Showcase_1_0_Haze.jpg|thumb|right|Haze effect]]Haze is a moody visual effect showing light cones or boxes with standard, animated or procedural texture.</span>
+
== CEL ==
-
<br clear="all" />
+
-
=== Upcoming Version 1.2 ===
+
* Entity System
 +
* Each object in CEL is an entity. Entities are defined by adding them a list of property classes that defines their attributes and their behavior.
 +
* Generic event system for communication between property classes.
 +
* Persistence layer for saving and loading world states.
-
''This is a preliminary list and subject to change.''
+
* Runtime Package Environment
 +
* CELStart: generic executable for all CELStart applications, only data files have to be installed.
 +
* The whole logic may be written with bindings for Python, or in a XML scripting language.
-
==== Imposters ====
+
* World Management
 +
* Avatar and Non Player Character management: synchronization of the user actions with the mesh, its position, its orientation and its collisions.
 +
* Camera management with many different modes: first person, third person, tracking, isometric, horizontal.
 +
* Region management: decomposition of a complete world in regions, with zoning between regions.
 +
* Advanced management of portals, e.g. for closing portals that are occluded.
 +
* Spawning of entities.
 +
* Triggering of proximity events.
-
<span>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.
+
* Inventory & Interaction
 +
* Key and peripherals events bindings.
 +
* Billboards and tooltips.
 +
* Inventory system.
 +
* Selecting and grabbing objects.
-
==== PVS ====
+
* Advanced Physics
 +
* Projectiles and damages to entities.
 +
* Collision management with the ground.
 +
* Advanced physical effects: fluids, thrusters, steering, explosions, attractors and repulsors.
 +
* Vehicles and their physics: bikes, cars, tanks, hovercrafts, or any wheeled vehicle.
 +
* Mesh deformation, e.g. for destroying gradually an object.
-
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.
+
* Artificial Intelligence
-
 
+
* Finite state machine for the management of the evolution of the environment.
-
==== New Terrain ====
+
* Behavior trees to build complex artificial behaviors.
-
 
+
* Path finding and steering behaviors.
-
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.
+
* Neural networks and genetic algorithms.
-
 
+
-
== Complete Feature List ==
+
-
* 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.
+
-
*** Bone based animation mesh using the [http://home.gna.org/cal3d/ cal3d] library.
+
-
** Collision detection and dynamics:
+
-
*** Provides bindings 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 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.
+
-
 
+
-
=== Crystal Space vs the Other Graphics Rendering Engine ===
+
-
 
+
-
Often, Crystal Space is compared with [http://www.ogre3d.org OGRE], and “Crystal Space or Ogre?” is a question a lot of people that wish to venture in realtime 3D graphics probably face sooner or later. Naturally, people from one or the other community have a biased opinion; Walt Collins looked at both sides and wrote [http://www.arcanoria.com/CS-Ogre.php a comparison between CS and Ogre].
+
[[Category:Media]]
[[Category:Media]]

Revision as of 09:31, 6 April 2010

CS

* Portability
 * Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows.
 * Support of a wide range of compilers and IDE, including gcc, MinGW/MSYS, Cygwin, Visual C++ 8 & 9.
 * Written in standard C++ using very few non-standard extensions.
 * Self contained so that many modules requires no or few external dependencies.
 * File system 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. 
* Modularity
 * Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched.
 * Bindings for other programming languages through SWIG: Java, Python, Perl.
 * All subsystems easily extendable for new file formats.
* Rendering & Lighting
 * OpenGL-based engine, supports hardware accelerated rendering on all supported platforms and cards from all well known vendors.
 * Rendering loops for custom rendering of objects.
 * Static, pseudo-dynamic and dynamic lights. Statically and dynamically lit objects can be combined.
 * Shadow map shadows.
 * Multiple render targets.
 * Rendering to textures.
* Shaders
 * Can be written in Cg, ARB, and GLSL. Shader description and mappings are defined in a XML compliant language.
 * Support for multiple passes, vertex and fragment programs. Light selection and multiple lights in one pass possible.
 * Node-based system for combination of shaders and post-processing effects.
 * HDR rendering, tone mapping and eye adaptation.
 * Fallback system of shader techniques for hardware compatibility.
 * Cache storage of compiled shaders for faster loading.
 * Library of available shaders and post-processing effects: diffuse, specular, bump map, glow, parallax, fur, bloom, blur, water, glass, and many others.
 * Automatic environment mapping.
* Scene & Level Of Detail Management
 * Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading or space warping.
 * Two different cullers: frustum culling (Frustvis), and dPVS (Dynavis), which also does software occlusion culling.
 * General system for static LOD on all types of meshes.
 * Impostors for replacement of far meshes with a 2D object.
 * Threaded loader for streamed loading of levels and objects.
 * Instanciation of meshes and objects.
* Meshes
 * Many different type of meshes: general triangle mesh with skeletal animation, morphing and sockets, cal3d, sprite 2D, sprite 3D, ocean,...
 * Terrain mesh with paging and splatting.
 * Foliage system to dress up a scene with objects such as flora and rocks,...
 * Decals to be added on top of other meshes.
 * Configurable and extensible particle system mesh with billboards, emitters, physical effectors,...
 * Halos and lens flares.
 * Automatic triangulation of shapes.
* Animation
 * Specialized mesh for advanced skeletal animation with animation blending tree, weight skinning, morphing, and sockets.
 * Many types of animation nodes can be combined to generate dynamically complex animations: multi-blending, Finite State Machine, random, priority, LookAt, speed (time warping).
 * Ragdoll animation and animation of hairs & equipment.
 * Skeletal animation and morphing for the general triangle mesh.
 * Generic animation system for triggering of time events, moving of objects, fade in/out.
* Audio
 * 2D and 3D sounds with OpenAL.
 * Audio codecs: speex, ogg, wav (8- and 16-bit PCM).
 * Provides both one-time playing of effects and streaming playing in the background for music. 
* Physics & Collisions
 * Physics of rigid bodies and joints, made through a wrapper for two physics libraries: Bullet and ODE.
 * Support of kinematic bodies for interaction between classical animation and the physical simulation.
 * Debug plugin to visualize the physical simulation.
 * Simplified collision detection when you don't need the full dynamics simulation.
* Data Representation 
 * XML language for the description of each object and plugin of the whole CS. XML files can be set binary for faster loading.
 * Procedural, dynamic and animated textures.
 * Support for many image formats: png, jpg, dds, bmp, gif, tga, mng, jng, (binary) alpha, transparency, non 2n sized images,...
 * Importers for many 3D file format: Blender through blender2crystal, 3D Studio Max, Maya, COLLADA, and model importers for common file formats such as 3ds, cal3d and md2.
* User Interface
 * Event system & peripherals: mouse, joystick, keyboard.
 * Graphical user interface system through CEGUI.
 * User interface widgets for wxWidgets.
 * Text localization.
 * Plugin fo easy video recording and screenshots.
 * Font servers, FreeType2 and glyphs fonts.
* Project Management
 * Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind.
 * Scripts for generation of new projects.
 * Easy compilation and customization of the whole project thanks to Jam.


CEL

* Entity System
 * Each object in CEL is an entity. Entities are defined by adding them a list of property classes that defines their attributes and their behavior.
 * Generic event system for communication between property classes.
 * Persistence layer for saving and loading world states.
* Runtime Package Environment
 * CELStart: generic executable for all CELStart applications, only data files have to be installed.
 * The whole logic may be written with bindings for Python, or in a XML scripting language.
* World Management
 * Avatar and Non Player Character management: synchronization of the user actions with the mesh, its position, its orientation and its collisions.
 * Camera management with many different modes: first person, third person, tracking, isometric, horizontal.
 * Region management: decomposition of a complete world in regions, with zoning between regions.
 * Advanced management of portals, e.g. for closing portals that are occluded.
 * Spawning of entities.
 * Triggering of proximity events.
* Inventory & Interaction
 * Key and peripherals events bindings.
 * Billboards and tooltips.
 * Inventory system.
 * Selecting and grabbing objects.
* Advanced Physics
 * Projectiles and damages to entities.
 * Collision management with the ground.
 * Advanced physical effects: fluids, thrusters, steering, explosions, attractors and repulsors.
 * Vehicles and their physics: bikes, cars, tanks, hovercrafts, or any wheeled vehicle.
 * Mesh deformation, e.g. for destroying gradually an object.
* Artificial Intelligence
 * Finite state machine for the management of the evolution of the environment.
 * Behavior trees to build complex artificial behaviors.
 * Path finding and steering behaviors.
 * Neural networks and genetic algorithms.
| Article | Discussion | View source | History |