Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Book Reviews Books Media

Collada 79

Tony Parisi writes "Remi Arnaud and Mark C. Barnes' Collada: Sailing the Gulf of 3D Digital Content Creation is a great first book on a new technology for entertainment applications. Collada is a file format for the exchange of 3D game and interactive content, developed by a consortium of companies including Sony and leading digital content creation software vendors. Collada acts as an intermediate format between DCC tools and end applications — thereby promising to solve ages-old productivity issues in the 3D content pipeline. The authors have done a thorough job explaining this problem, and how Collada solves it, in an introductory book that is well suited for a technical audience building advanced 3D tools and applications." Read the rest of Tony's review.
Collada: Sailing the Gulf of 3D Digital Content Creation
author Remi Arnaud, Mark C. Barnes
pages 240
publisher A K Peters
rating 9
reviewer Tony Parisi
ISBN 1568812876
summary Describes Collada, a new format standard for 3D graphics content

When I first heard about Collada in 2004, I was skeptical. I am no stranger to 3D file formats: I co-created VRML in 1994 and continue to push that rock up the hill with X3D, an XML-encoded 3D format for the web. After a decade of getting arrows in my back blazing this trail, it felt like the last thing the world needed was Yet Another 3D File Format. Developers in the game world, and to a lesser extent, the DCC tools world, had largely turned their backs on standards of any kind — the proverbial tough crowd. However, the laser-focus of the Collada design team seems to have paid off: the industry now has a common exchange format for game assets, and there is hope yet for developers who would rather spend their time building games than building tools to make games. This clarity of focus on the design comes through in the book as well. Arnaud and Barnes, principal designers of the Collada standard, have written a detailed and lucid book that explains Collada from concept through implementation.

Any first book on a new technology has the unenviable task of explaining the *why* of it, as well as the what and the how. The big risk there lies in devoting too much of the book's content to the background and overview materials before getting to the meat. The book excels in this regard, by clearly laying out a compelling case for an intermediate format, but quickly, so that experienced engineers and managers can get the point, and then move on to the useful information that comprises the bulk of the material. I suspect that Collada will serve as the seminal text on the subject for some time to come, and therefore the overview material is essential. However, if this had only been a survey or introductory book it would have missed the mark with its target audience — some of the busiest and results-oriented developers on the planet, people for whom what-is-it and how-do-I are where the rubber hits the road.

Most of Collada is devoted to explaining the format's core concepts: geometry, scenes, animations, and physics. These are the building blocks of all interactive graphics content. The book walks through these in a straightforward progression; I found it very easy to follow. After covering the basics, it combines them into useful end-to-end examples that give prospective implementers a sense of what it would take to build Collada tools. It worked for me anyway: we will be building Collada support into our products based what I learned in here.

Midway through, the book goes into a bit of a jag on the subject of effects. In its simplest form, the concept of effects simply refers to an object's basic visual appearance: color, textures, shading etc. Unfortunately, in modern graphics, nothing is ever that simple. What begins as a discussion about those basic concepts quickly cascades into a deep-dive on programmable shaders, effects-packaging techniques, multi-pass rendering, and profiles — the latter presenting a glimpse into the sausage-making stuff of standards and hardware consortia, things mere mortals were not meant to know. This is not really the fault of the chapter's author (contributor Daniel Horowitz from NVIDIA), but more a side-effect of the intensity of the subject matter. I am wondering if this all could have been handled better in a separate book or an appendix. The saving grace here is that it's at this exact point in the current printing of the book that we get the color plates — 8 gorgeous images courtesy of the biggest names in graphics: Epic, NVIDIA, Alias and the like. But that's the beauty of 3d graphics: when the math gets hard... go to demo!

Collada gets back on track with 2 excellent chapters on animation and physics — again, at just the right level for a seasoned 3D toolmaker like me. The final chapter explores the Collada content pipeline: how different Collada-aware tools can be mixed and organized to create the final content from all the original assets. Here the orientation of the book moves from a focus on specific features to a system view of how to assemble disparate software tools into working production solutions. Managers and decision makers reading the book will benefit most from this chapter, which I found to be not only thoughtful but provocative, as it touches on the issues at the heart of Collada's mission: how to make robust, open, cost-effective systems for creating rich content that lasts the test of time. The book also contains a handful of informative appendices on Collada plug-ins for the major DCC tools such as 3ds Max and Maya. The plug-in appendices cover build steps, supported features, practical use scenarios, and known bugs and issues.

Other than that effects digression, my only critique — a minor one — is that it is a bit heavy on the XML. From the second chapter, the book dives into details of XML syntax, document types, schema and such, and never looks back. I understand where the authors are coming from: rather than invent a pseudo-code to illustrate the concepts (which then would have to be translated into XML for the working examples anyway), it's more economical to just get the reader up the ramp with XML and get on with it. I am willing to believe that graphics-savvy readers who are not conversant in XML — and I am betting there are still many, many such 3D geeks out there — will be able to get over this quickly. You should: XML is *the* way to store and transmit data, period, full stop. Just in case you are naïve about XML, the authors have actually put in a short primer on it in the second chapter. It's good, and it should be enough to get you through.

I highly recommend this book. If you are a programmer with a reasonable understanding of 3D graphics programming and/or authoring using 3D scene graphs, you will be able to learn the basics of Collada. If you are an experienced 3D toolmaker, Collada contains everything you need to get up and running to build your game, game engine or content pipeline tool. If you are a manager or decision maker, you get the added comfort of knowing that — finally — you just might be able to write that tool once and not over and over again.

Tony Parisi is a software architect and entrepreneur who loves to solve hard problems. Tony's company, Media Machines, is building an open source, open standards-based platform for delivering 3D virtual worlds on the web. Tony is the co-creator of VRML, the original standard for 3D on the web, and is a principal developer of X3D, the XML-based successor to VRML for building web-based 3D virtual worlds.

You can purchase Collada: Sailing the Gulf of 3D Digital Content Creation from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
This discussion has been archived. No new comments can be posted.


Comments Filter:
  • lol vrml (Score:0, Insightful)

    by Anonymous Coward on Wednesday December 20, 2006 @04:25PM (#17316826)
    lol vrml
  • XML (Score:4, Insightful)

    by Trillan ( 597339 ) on Wednesday December 20, 2006 @04:33PM (#17316932) Homepage Journal

    XML is *the* way to store and transmit data, period, full stop.

    Sure, it's a good way, but could we please have an end to silly and blatantly false assertions like this one?

  • Re:XML (Score:1, Insightful)

    by Anonymous Coward on Wednesday December 20, 2006 @04:43PM (#17317080)
    Some of you people are fucking morons. Do you want it easy to read, or do you want it fast? It is painfully slow to parse vertex data in a human readable XML format!! Where do you draw the line? Why not sure DTX-compressed images in XML too? Humans don't need to read this type of stuff anyway. When are you people going to get it? Console game developers still store game data on the media in a native buffer format just for performance reasons. Do you think WoW would load up as fast if it stored animations, geometry, and textures in XML? I think not.

  • Re:XML (Score:3, Insightful)

    by Trillan ( 597339 ) on Wednesday December 20, 2006 @04:44PM (#17317096) Homepage Journal
    The claim was "XML is *the* way to store data, period, full stop." Period.

    Depending on the structure of the data needing to be stored, XML can be very verbose and highly redundant. The hierarchal model isn't necessarily ideal, either, depending on the application. Relational models often work better.

    Depending on the nature of the data (and again, the claim is ", period, full stop"), there's a bunch of options. If the data is very simple a simple delimited text file may be better. If rapid searches and transformations are required, SQL may be better. Define the requirements and pick the format; don't just say "XML, period, full stop." That's simply insane.
  • Re:XML (Score:3, Insightful)

    by Chris Burke ( 6130 ) on Wednesday December 20, 2006 @04:53PM (#17317232) Homepage
    "period, full stop."

    Are both almost always code phrases for "What I just said would be utterly retarded to takes as a tautology which you will realise if you think about it for three seconds, but I would much rather you just skipped the thinking part and took my word for it. Pretty please."

    This is just another example.

  • Re:XML (Score:2, Insightful)

    by LordOfTheNoobs ( 949080 ) on Wednesday December 20, 2006 @05:34PM (#17317926) Homepage
      '( :box
         :id 37
         :points (
           ( :x -5 :y -5 :z 0 )
           ( :x  5 :y -5 :z 0 )
           ( :x  5 :y  5 :z 0 )
           ( :x -5 :y  5 :z 0 ))
         :color ( :r 50 :b 100 :g 150 )))

  • by Assmasher ( 456699 ) on Wednesday December 20, 2006 @05:39PM (#17318008) Journal
    XML makes zero sense for a 3D content system unless you have an overriding need to make the data human readable in its raw form. Again, I really like XML and i use it for event system communication throughout our enterprise architecture. The people in the 'industry' who know what they are doing? Like who? People who write Collado viewers? People who don't make games, don't make useful visualization products, people who write simple things like a model view. Let's put this another way. People much much more involved in the 3D industry will avoid this format on the simple grounds that it is a generic solution to a problem best solved by specific art pipelines.

    Who, exactly, do they think is going to use this besides amateurs and little tools companies (like the ones linked to in the article) who cater to amateurs...? No game company is likely to use it. No visualization product company is likely to do more than *possibly* add import capabilities for the format. It really is just another file format.
  • Re:XML (Score:3, Insightful)

    by Bogtha ( 906264 ) on Wednesday December 20, 2006 @06:29PM (#17318864)
    <sentence type="question">
    <word><letter type="capital">W</letter><letter>h</letter><letter >y</letter></word>
    <word><letter>y</letter><letter>o</letter><letter> u</letter></word>
    <word><letter>s</letter><letter>a</letter><letter> y</letter></word>
    <word><letter>t</letter><letter>h</letter><letter> a</letter><letter>t</letter></word>

To write good code is a worthy challenge, and a source of civilized delight. -- stolen and paraphrased from William Safire