Home - Forums - Documentation - Gallery - Bugs
(my topic)
Current revision (14:45, 29 March 2011) (edit) (undo)
 
(19 intermediate revisions not shown.)
Line 1: Line 1:
-
== Feature Spotlight ==
+
== The Crystal Space SDK ==
-
This page was simplified due to massive amount of visits from other sites.
+
* Portability
 +
** Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows operating systems, and x86, PowerPC, ARM and SPARC processor architectures.
 +
** Support of a wide range of compilers and IDE, including Visual C++ 8, 9 & 10, gcc, MinGW/MSYS, Code::Blocks.
 +
** Written in standard C++ using very few non-standard extensions.
 +
** Self contained so that many modules requires no or few external dependencies.
 +
** Virtual File System handling both physical files on disk and files within ZIP files.
 +
** Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line.
 +
** Platform specific optimizations (MMX/SSE/Altivec).
-
=== Version 1.1 ===
+
* Modularity
 +
** Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched dynamically.
 +
** Bindings for other programming languages through SWIG: Java, Python, Perl, dedicated bindings for Python.
 +
** All subsystems easily extendable for new file formats.
-
==== Decals ====
+
* 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.
 +
** Unshadowed, parallel-split shadow maps, and deferred lighting render managers.
 +
** Static lighter with radiosity and caustic.
 +
** Lightmap and per-vertex lighting.
 +
** Rendering to textures.
-
<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>
+
* Shaders
-
<br clear="all">
+
** Can be written in Cg and ARB. 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.
 +
** Shader weaver for combination of shaders and post-processing effects.
 +
** HDR rendering, tone mapping and eye adaptation.
 +
** Fallback system of shader techniques for hardware compatibility.
 +
** 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.
-
=== Version 1.0 ===
+
* Scene & Level Of Detail Management
 +
** Scene node system for easy composition of objects
 +
** Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading, mirrors or space warping.
 +
** Three different cullers: hardware occlusion culling (Occluvis), frustum culling (Frustvis), and dPVS (Dynavis).
 +
** General system for static LOD on all types of meshes, progressive LODS.
 +
** Impostors for replacement of far meshes with a 2D object.
 +
** Threaded loader for streamed loading of levels and objects.
 +
** Instanciation of meshes and objects.
-
==== Terrain with Foliage ====
+
* Meshes
 +
** Many different type of meshes: general triangle mesh with multi-materials, cal3d meshes, sprite 2D, sprite 3D, ocean,...
 +
** Terrain mesh with paging, multi-splatting, deformations and automatic loading and unloading of terrain cells.
 +
** Mesh generator to dress up a scene with objects such as flora and rocks,...
 +
** Decals to be added on top of other meshes, even animated.
 +
** Configurable and extensible particle system mesh with billboards, emitters, physical effectors,...
 +
** Halos and lens flares.
 +
** Automatic triangulation of shapes.
-
<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>
+
* Animation
-
<br clear="all" />
+
** Specialized and powerful mesh for advanced skeletal animation with animation blending trees, volume preserving dual quaternion 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, Inverse Kinematics (Quaternion-CCD and physically-based), speed (time warping), debug.
 +
** Ragdoll animation and animation of hairs & equipment.
 +
** Transparent import of BVH motion capture data, with real-time retargeting to a different (but similar) skeleton.
 +
** Motion capture viewer with integrated Point Light Display system.
 +
** Generic animation system for management of sequences of time events.
 +
** Coherent noise generation through the [http://libnoise.sourceforge.net/ libnoise] library.
-
==== Funny Shaders ====
+
* 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.
-
<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>
+
* Physics & Collisions
-
<br clear="all" />
+
** 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.
 +
** Transparent integration with the terrain system.
 +
** Soft bodies to simulate ropes, clothes and other volumetric deformable objects. General meshes can be animated automatically through them.
 +
** Debug plugin to visualize the physical simulation.
 +
** Simplified collision detection when you don't need the full dynamics simulation.
-
==== Skeletal Animation and Dynamic Shadows ====
+
* 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,...
 +
** Generic importer for static and animated models for [http://assimp.sourceforge.net/main_features_formats.html many 3D file formats].
 +
** Dedicated Exporters for many 3D file formats: Blender up to 2.49b through blender2crystal, Blender 2.5x through B2.5CS, 3D Studio Max, Maya, and model importers for common file formats such as COLLADA, 3ds, cal3d and md2.
-
<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>
+
* User Interface
-
<br clear="all" />
+
** 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 uber-screenshots.
 +
** Font servers, FreeType2 and glyphs fonts.
-
==== Haze ====
+
* Project Management
 +
** Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind and CppUnit.
 +
** Scripts for generation of new projects.
 +
** Easy compilation and customization of the whole project thanks to Jam.
-
<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>
+
== The Crystal Entity Layer ==
-
<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 behaviour.
 +
** Generic event system for communication between entities and property classes.
 +
** Persistence layer for saving and loading world states.
 +
** Experimental FTP-based network layer.
-
''This is a preliminary list and subject to change.''
+
* Runtime Package Environment
 +
** CELStart: generic executable for all CELStart packaged applications, only the packed data files of the applications have to be installed on the user machines.
 +
** The whole logic may be written with bindings for Python, or in a XML scripting language.
-
==== Imposters ====
+
* Artificial Intelligence
 +
** Behaviour trees to build complex artificial behaviours by combination of single decision nodes.
 +
** Hierarchical path finding upon [http://code.google.com/p/recastnavigation/ Recast & Detour], steering behaviours.
 +
** Neural networks and genetic algorithms.
-
<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.
+
* World Management
 +
** Avatar and Non Player Character management: synchronization of the user actions with the mesh, its animations, its position 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.
-
==== PVS ====
+
* Inventory & Interaction
 +
** Key and peripherals events bindings.
 +
** Billboards and tooltips.
 +
** Inventory system.
 +
** Selecting and grabbing objects.
-
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.
+
* 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.
-
==== New Terrain ====
+
[[Category:Media]]
-
 
+
-
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.
+
-
 
+
-
http://www.atoncer.com/food-wine/tea.htm
+
-
http://www.atoncer.com/food-wine/vegetables.htm
+
-
http://www.atoncer.com/food-wine/prepared-meals.htm
+
-
http://www.atoncer.com/food-wine/beer-wine-making.htm
+
-
http://www.atoncer.com/health/massage.htm
+

Current revision

The Crystal Space SDK

  • Portability
    • Highly platform independent with good platform abstraction. Supports GNU/Linux, OSX and Windows operating systems, and x86, PowerPC, ARM and SPARC processor architectures.
    • Support of a wide range of compilers and IDE, including Visual C++ 8, 9 & 10, gcc, MinGW/MSYS, Code::Blocks.
    • Written in standard C++ using very few non-standard extensions.
    • Self contained so that many modules requires no or few external dependencies.
    • Virtual File System handling both physical files on disk and files within ZIP files.
    • Abstracted configuration layer with support for settings in configuration file, system dependent storage such as the registry and command line.
    • Platform specific optimizations (MMX/SSE/Altivec).
  • Modularity
    • Modularized using a lightweight component framework, SCF, based upon the COM model. Components can be easily loaded or switched dynamically.
    • Bindings for other programming languages through SWIG: Java, Python, Perl, dedicated bindings for Python.
    • 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.
    • Unshadowed, parallel-split shadow maps, and deferred lighting render managers.
    • Static lighter with radiosity and caustic.
    • Lightmap and per-vertex lighting.
    • Rendering to textures.
  • Shaders
    • Can be written in Cg and ARB. 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.
    • Shader weaver for combination of shaders and post-processing effects.
    • HDR rendering, tone mapping and eye adaptation.
    • Fallback system of shader techniques for hardware compatibility.
    • 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
    • Scene node system for easy composition of objects
    • Decomposition of a world in sectors with portals connecting them. Portals can be used for effects such as LOD management, streamed loading, mirrors or space warping.
    • Three different cullers: hardware occlusion culling (Occluvis), frustum culling (Frustvis), and dPVS (Dynavis).
    • General system for static LOD on all types of meshes, progressive LODS.
    • 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 multi-materials, cal3d meshes, sprite 2D, sprite 3D, ocean,...
    • Terrain mesh with paging, multi-splatting, deformations and automatic loading and unloading of terrain cells.
    • Mesh generator to dress up a scene with objects such as flora and rocks,...
    • Decals to be added on top of other meshes, even animated.
    • Configurable and extensible particle system mesh with billboards, emitters, physical effectors,...
    • Halos and lens flares.
    • Automatic triangulation of shapes.
  • Animation
    • Specialized and powerful mesh for advanced skeletal animation with animation blending trees, volume preserving dual quaternion 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, Inverse Kinematics (Quaternion-CCD and physically-based), speed (time warping), debug.
    • Ragdoll animation and animation of hairs & equipment.
    • Transparent import of BVH motion capture data, with real-time retargeting to a different (but similar) skeleton.
    • Motion capture viewer with integrated Point Light Display system.
    • Generic animation system for management of sequences of time events.
    • Coherent noise generation through the libnoise library.
  • 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.
    • Transparent integration with the terrain system.
    • Soft bodies to simulate ropes, clothes and other volumetric deformable objects. General meshes can be animated automatically through them.
    • 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,...
    • Generic importer for static and animated models for many 3D file formats.
    • Dedicated Exporters for many 3D file formats: Blender up to 2.49b through blender2crystal, Blender 2.5x through B2.5CS, 3D Studio Max, Maya, and model importers for common file formats such as COLLADA, 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 uber-screenshots.
    • Font servers, FreeType2 and glyphs fonts.
  • Project Management
    • Debugging tools: generic plugin for visual debugging of scenes, support for Valgrind and CppUnit.
    • Scripts for generation of new projects.
    • Easy compilation and customization of the whole project thanks to Jam.

The Crystal Entity Layer

  • 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 behaviour.
    • Generic event system for communication between entities and property classes.
    • Persistence layer for saving and loading world states.
    • Experimental FTP-based network layer.
  • Runtime Package Environment
    • CELStart: generic executable for all CELStart packaged applications, only the packed data files of the applications have to be installed on the user machines.
    • The whole logic may be written with bindings for Python, or in a XML scripting language.
  • Artificial Intelligence
    • Behaviour trees to build complex artificial behaviours by combination of single decision nodes.
    • Hierarchical path finding upon Recast & Detour, steering behaviours.
    • Neural networks and genetic algorithms.
  • World Management
    • Avatar and Non Player Character management: synchronization of the user actions with the mesh, its animations, its position 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.
| Article | Discussion | View source | History |