This feature has been partly implemented by Jwir3 as a part of the Summer of Code. This page details things that still need to be done to get a fully working implementation.


General

The COLLADA conversion system is a two-part system written to enable the conversion of files in the COLLADA interchange format to Crystal Space map and library files.


Implementation

The system is composed of a COLLADA conversion plugin (colladaconvertor) and a conversion utility (collada2cs). The plugin itself does most of the work, and is designed in such a way so as to enable on-the-fly conversions, even though this is probably impractical.


To Do

The following is a list of things that need to be done as of 28/07/2008.

  • Implement visual_scenes (sector) conversion. This includes lights and camera/start position. I intend to have this completed next week (week of 8/20/2007), but I am placing it on this list anyway.
  • Fully document Crystal Space map and library files. This, at first glance, doesn't seem to be part of the COLLADA conversion process, but I have battled with things not being documented all summer. I think it would be better to document the map files' and library files' syntax, and then work from there to develop the remaining parts of the system. This is one of the first things I intend to accomplish after the Summer of Code is completed.
  • Convert images (for textures) into Crystal Space files. (This would have been done, but it's taking me a little bit more time that I realized to figure out how to export the texture images in COLLADA format using Blender).
  • Separate meshfact objects' output into different files. Right now, each meshfact object is placed into a single library file. Worse, if a user selects 'CS_MAP_FILE' as output type, the meshfact objects are all placed as top-level nodes. It would be better to get a directory from the user, and then output all files using the convention of /factories, /cache, etc... subdirectories. Once this is done, we can add support to compress world files to .zip files.
  • Finish implementation of CS::Geom::Triangulate3D algorithm.
  • Restructure <polygons>, <polylist>, <trifans>, and <tristrips> conversion. Currently, the working code only successfully converts <triangles> elements.
  • Implement conversion for shaders and more complex effects, as specified in the COLLADA FX 1.4 specification.
  • Implement rigging and animation conversion.
  • Implement conversion for physics, as specified in the COLLADA Physics 1.4 specification. This will take some more planning than the FX and rigging/animation conversion, mostly because, if I understand correctly, physics aren't really specified very well in the CS files. It's possible that a new standard inside the Crystal Space file format will need to be developed.
  • Find and implement some way of integrating portals. I assume some level of extra data is going to need to be added to the COLLADA file for this work correctly, similar to what's been done with the blend2cs convertor. More research needs to be done to figure out the best method of implementing a conversion for portals.
  • Document everything, and provide a more concise design document.