Presentation about Collada in Sirikata

Daniel Horn

Greetings from New Orleans SIGGRAPH 2009.  I just gave a talk about using the COLLADA format in Sirikata at the COLLADA Birds of a Feather event at the Hilton.

I started with a high level description of our system architecture and then went through the rationale for choosing COLLADA as our interchange and display format.  Our reasoning is that Sirikata is essentially a 3d environment editing program and we wish to make the entire model available to users to edit and change its form in much the way as the “view source” option is available when visiting a webpage.

Clearly there are discussions to be had about whether to bake down this format to something specific to the renderer at hand, but we right now view that baking process as content-aware caching, because the original COLLADA format is the only container that will support the wide range of devices and viewers that we want to render our scenes.

Taking this further, I was chatting with Philipp Slusallek today and he reminded me that even providing pixel shader 2.0+glsl compatible shaders for a given model may be insufficient to both rasterize and raytrace it.  So some thought will need to go into using COLLADA as a multidevice, multirenderer-capable format such that users generate very compatible models that utilize the capabilities of their rendering environment.

2 Responses to “Presentation about Collada in Sirikata”

  • chuck_starchaser Says:

    I don't get the relation between ps2.0 and Collada; but then again, I'm not familiar with Collada at all. I just hope that the choice of file format won't force restrictions on shaders or texture packings. Klauss and I are working on a new shader called CineMut that doesn't use the standard diffuse + specular + glow textures; but rather uses multiple textures to specify albedo, metallic specularity, glossiness, dielectric constant, dielectric purity, anisotropy, iridescence… as well as self-shadowing layers like cosine AO, uniform AO, and bent normal; plus geometry related layers for normals and surface curvature. It would be a pity if a choice of file formats would preclude the use of an advanced shader. Shader and texture packing type should really be none of the business of the mesh file format.

    • remi Says:

      COLLADA is designed to be extended, especially for shaders where support for GLSL, HLSL, CG is already there. You should have no problem to expose the shader prameters and include the shader code in COLLADA. Also, this enables to link shader parameters with animations for instance, as well as providing a generig phong shader, or a CG/GLSL/HLSL equivalent, so the model can still be visible/used on platforms that do not have your advanced shader implementation. See nvidia fxcomposer for an example implementation.