|
Introduction to COLLADA
COLLADA: A Short History
It is important for the graphics community to participate in the design of a standard intermediate format, in order to avoid the situation where one single vendor dictates what features should be included and then uses their position to eliminate competition.
Following SIGGRAPH ’03, Sony Computer Entertainment did a thorough analysis of all the existing formats and, in the process, involved several other companies in the game industry, notably Criterion Software, which was at the time the most successful independent middleware company with their product RenderWare [17].
Many other companies became involved in the project:
- Vicarious Vision, a game developer that also was a middleware provider with the product Alchemy, which they acquired with the purchase of Intrinsic Graphics [18];
- Emdigo, a start-up in the mobile space, using COLLADA for 3D graphics on cellular phones [19];
- Novodex, a real-time game physics company [20];
- Discreet, representing 3ds Max [21];
- Alias, representing Maya [22];
- Softimage, representing XSI [23].
An informal working group was established, and after a year of weekly meetings, the COLLADA 1.0 specification was produced. The goal was that every partner would be satisfied with the specification so that DCC vendors would create importer/exporter plug-ins for the format. SCE insisted that the specification and plug-ins source code would be made public. It was not an easy task to get agreement on even the most basic definitions. More than one company pushed their current format to be adopted instead of creating a new one, which was not possible because of the highly competitive industry, and because a completely open format was needed without any intellectual property (IP) issues.
The work paid off. At SIGGRAPH ’04, the first public presentation of COLLADA 1.0 was made in a sponsored Tech Talk [24]. Even though the presentation was about a public open source project, SIGGRAPH organizers looked at the COLLADA presentation as a commercial project and requested sponsorship for it.
The presentation included numerous demonstrations of COLLADA content exported by one DCC vendor and then loaded back into another, modified and saved back, and loaded again into another DCC tool or into a middleware content pipeline. COLLADA content was also demonstrated running simultaneously on Xbox® and PlayStation®2 on the same screen with a video split-screen mechanism. In addition, a reduced version of the same content was created and demonstrated on a mobile phone.
This presentation surprised a lot of people and annoyed some. The audience was amazed at seeing the DCC vendors helping each other to make sure the data was correctly exchanged between their tools.
Why was SCE sponsoring an interchange format? The audience expected SCE to focus only on the PlayStation® platforms and avoid cross-platform capabilities by developing only proprietary technologies.
Many developers reported they needed a common intermediate format and thanked the partners for working on it, but it was so sudden that they said they would wait before embracing it, since it could go away as fast as it appeared!
Some complained that the COLLADA group was defining yet another format and instead should have embraced an existing format. The most upset crowd was from the X3D community that has worked to create a format for 3D content visualization for the Web [25], which used some of the same basic constructs used in COLLADA. The main difference between the two formats is the result of the fact that X3D is derived from the VRML scene graph concept for Web browsing of 3D assets, while COLLADA is targeting advanced game applications.
The COLLADA 1.0 specification concentrated on putting together the basic elements of the format. It was missing some fundamental features to be usable by game developers, such as animation. The main goal was to get the community excited about this project and gather feedback.
Overall, the presentation was quite successful, since it produced more involvement from the game and middleware community and gathered a large amount of feedback, which resulted in several revisions of the format (1.1, 1.2, 1.3, 1.3.1, and 1.4) [26].
More companies joined the COLLADA working group: ATI [27], NVIDIA [28], 3Dlabs [29], and Nokia [30].
The design committee work progressed with the objective to bring to COLLADA all the features required by the game industry.
A lot of work was needed to improve the quality of the plug-ins and refine the specification. At SIGGRAPH ’04, the only way a plug-in was tested was by using the content for the demonstration. It quickly became clear that this was not sufficient, since all the early adopters encountered so many problems that it made the technology usable only for very basic applications.
SCE started to put in place a conformance test, a really complex task. Once the early version of the conformance test was put in place and early adopters had provided feedback, a bug database was put in place, revealing some fundamental issues with the plug-ins, sometimes revealing aspects of the specification that were too loosely defined.
The speed at which bugs were fixed was slow because the amount of resources available at the DCC vendors for this project was limited and directly related to the number of customers requesting it—a typical “chicken and egg” problem. If the quality of the plug-ins was not improved significantly, developers would not use the technology; if developers were not using the technology, the plug-ins would not improve.
The situation progressed slowly, but in the right direction. One favorable event was the fact that SCE announced that COLLADA would be the official format for the PlayStation®3 SDK, which was a target for the DCC vendors [31]. Another big push came from the hardware vendors who were suffering from the problem of a lack of standard format. They have to develop numerous plug-ins and deal with the fact that each of their customers has a different format, which makes it expensive and complex to support. In addition, hardware vendors are already accustomed to collaborations for standardization. With the addition of features required by game developers, such as animation and skin and bones, early adopters started to use COLLADA in their tool chain, putting more pressure on DCC vendors to do a good job on their exporters/importers.
Another lesson learned during this year was that, in order to be adopted, COLLADA would need to provide an API for developers to load, modify, and save COLLADA content easily. This was something we wanted to avoid, first because it is more work, but also because there are several commercial tools already available for this task that could be adapted for COLLADA. However, many developers were waiting for an official API to access COLLADA content from their application.
SCE then decided to start working on the COLLADA DOM, a source code providing a C++ object model that reflects the COLLADA elements in the application memory. The first version was subcontracted to Emdigo and was limited to a sample code to load and save COLLADA documents, but it lacked the capability to edit the data in place. After delivery of this sample code, SCE dedicated resources to improve this code and add the missing features to make it really useful. The COLLADA DOM was finally released as open source in January 2006 (see “The COLLADA DOM,” page 167).
Another direction of improvement was to determine what the most important features were for the next-generation (PlayStation®3, Xbox® 360) content and to add those to the specification and the plug-ins. The decision was to focus on adding shader effects and physical properties to COLLADA.
At SIGGRAPH ’05, the first anniversary Tech Talk presentation was made. In addition, COLLADA presentations were made in in September 2005 in Europe at Eurographics ’05 and in Japan at CEDEC ’05.
These presentations were a sneak preview of COLLADA 1.4 features, described in this book, which include shader effects (COLLADA FX ) and real-time physics and collisions (COLLADA Physics). Once again, numerous demonstrations were made by many partners, showing more tools.
- Softimage demonstrated XSI supporting both the shader effects and physics. They also demonstrated the new version of their viewer (the XSI viewer), a fast-path visualization tool capable of displaying all the new features simultaneously.
- Alias demonstrated how the COLLADA external reference system can be used to improve productivity.
- Discreet demonstrated work-in-progress of their shader and physics implementation.
- Nokia and Emdigo demonstrated COLLADA content running on mobile phones.
- NVIDIA demonstrated an alpha version of FX Composer 2.0, a shader-effect tool based on the COLLADA FX specification. The files created by FX Composer were then loaded back into DCC tools and assigned to several objects before being saved back and visualized with external viewers.
- Feeling Software demonstrated Nima, a plug-in based on AGEIA’s PhysX that enables authoring and exporting of COLLADA Physics content inside Maya.
The technologies demonstrated were very advanced. Never before had there been a shader-effect format capable of using the Cg, HLSL, and GLSL languages. Never before had shader effects been exchanged back and forth between DCC tools and external tools. Never before had common physical parameters been exchanged between several tools and viewers. Although COLLADA 1.4 was to be delivered publicly months later, the presentations were very successful, and hundreds of developers were impatient to have access to this new release.
|