Warning: Can't synchronize with the repository (Couldn't open Subversion repository /home/crystal/scm/crystal: SubversionException: ("Expected FS format between '1' and '3'; found format '4'", 160043)). Look in the Trac log for more information.

This feature has been partly implemented by Jwir3 as a part of the Google Summer of Code 2007. 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.

The plugin is lacking the implementation of the iModelLoader and iBinaryLoaderPlugin interfaces. This would allow to load transparenlty COLLADA files through the iLoader system, removing the need of collada2cs which can be merged eg in viewmesh (see here for some ideas about that).


To Do

The following is a list of things that need to be done.

  • Implement conversion for shaders and more complex effects, as specified in the COLLADA FX 1.4 specification.
  • Implement animeshes, rigging and animation conversion.
  • Implement conversion for physics, as specified in the COLLADA Physics 1.4 specification.
  • Implement visual_scenes (sector) conversion. This includes lights and camera/start position.
  • Finish implementation of CS::Geom::Triangulate3D algorithm.
  • Restructure <polygons>, <polylist>, <trifans>, and <tristrips> conversion. Currently, the working code only successfully converts <triangles> elements. Note by kickvb: a better solution would be to extend genmeshes and animeshes to be able to define other primitives than triangles.
  • 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).
  • 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.