How can I find out more about COLLADA?
COLLADA is one of the standards defined by the Khronos Group, www.khronos.org, the same group hosting the OpenGL standard. COLLADA defines an XML-based schema to make it easy to transport 3D assets between applications - enabling diverse DCC and 3D processing tools be combined into a production pipeline.
To get a start in COLLADA, get your copy of this COLLADA “Sailing the Gulf of 3D Digital Content Creation” by Remi Arnaud (Author), Mark C. Barnes (Author) – or go to the Khronos web-site at http://www.khronos.org/collada/
Are there already open source projects using COLLADA?
Yes - there are already several COLLADA projects on Sourceforge, among them:
- COLLADA DOM (http://sourceforge.net/projects/collada-dom/) is a C++ API (DOM) for application to load/save COLLADA documents
- COLLADA Max and Maya plug-ins (http://sourceforge.net/projects/colladamaya/) are plug-ins for Max and Maya applications to export and import COLLADA documents
- COLLADA Blender (http://sourceforge.net/projects/colladablender/) is a plug-in for Blender to export and import COLLADA documents
- COLLADA Refinery (http://sourceforge.net/projects/colladarefinery/) is a framework to write a COLLADA production pipeline
What is a Conditioner?
Many tools are currently offering COLLADA support (3dsMax, Maya, Softimage|XSI, Blender, Sketchup, TrueSpace, MilkShape ...) and many run-time applications have support for COLLADA (C4 Engine, Papervision3D, Unreal Engine, OpenSceneGraph, Google Earth, ....) COLLADA has many features (Geometry, Animation, Skin/Bone, Morphing, Programmable shaders, Physics), which are not expected to be supported by all the tools and applications. The goal of COLLADA is to provide a common language to express all those features, not to force all applications and tools to have to support everything in one place - COLLADA is designed to transport the data between all the stages of the content production pipeline.
Although COLLADA uses a consistent language is used to define assets, some transformations need to happen to the data during its trip down the content pipeline. For example, polygons created by the modeling tools may have to be converted to triangles, or triangles may have to be converted into triangle strips – this is where conditioners play a vital role.
A conditioner is a simple program that loads a COLLADA document, performs some useful computation (such as triangulation of all polygons, converting texture formats or optimizing for a specific target platform) and saves an updated COLLADA document. All asset transforms can be performed within the COLLADA document itself. For instance COLLADA can handle several type of geometry, including polygons, triangles, triangle strips and even polygons with holes!
What is the COLLADA Refinery?
COLLADA Refinery http://sourceforge.net/projects/colladarefinery/ is a framework to enable the pipelining of conditioners to create a content pipeline that can then be applied automatically in a batch to data in transit down the pipeline. The COLLADA Refinery also defines a user interface that enables the connection of multiple conditioners into a content pipeline.
Conditioners cab be written to interface with the COLLADA Refinery framework to undertake a specific task on a document,. Refinery users create conditioning pipeline by connecting together several conditioners into an execution pipeline. (see http://collada.org/mediawiki/index.php/Image:Screenshot1.jpg)
The COLLADA refinery already contains many conditioners, that are listed on the collada.org wiki http://collada.org/mediawiki/index.php/Portal:Conditioners_directory,
What kind of Conditioners would be useful to create?
There are many conditioners that would be extremely useful for the COLLADA user community. For example: conditioners that prepare the data from a specific tool for the needs of a specific engine - for instance some tools export too many materials for the engine, or the tool exports primitives that the engine does not recognize.
In other examples, not all tools have support for COLLADA, and sometimes it is easier to create a loader for a specific format than to write a COLLADA exporter for this tool, especially when the tool does not have a SDK! Yet more examples include conditioners that prepare the data for a specific platform - shader languages are often platform specific, so converting a COLLADA FX document from one shading language to another can be extremely useful.
Other examples of useful conditioners include:
- Conditioners that output some information or statistics about the document
- Conditioners that do some processing, for example doing a polygon reduction algorithm to crate LOD, or adapt geometry for a less powerful platform.
- Conditioners that merge several documents, or split a document in several documents using Xref.
The only limit is your imagination!
