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 bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
XML (Score:4, Insightful)
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: (Score:1)
Re: (Score:1, Insightful)
Re: (Score:3, Insightful)
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 "...data, 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 an
Re: (Score:2)
Could you send me a file in SQL format?
Re: (Score:2)
Re: (Score:2)
OK, M[r|s] Deliberately Obtuse: SQL is not a data-exchange format, it's a query language. SQL is to relational data as XQuery is to XML. So it's a bit silly to say that if you want to exchange relational data, you should use SQL.
Re: (Score:2)
Re: (Score:2)
Hmmmm, interesting. I don't see the advantages over XML if you do this, though. In fact, it seems worse (to me). What problems do you see this technique as solving?
Re: (Score:2)
So why not just use SQLite's binary repestation? I wanted to avoid being tying the database to a particular version of SQLite, or even (as much as possible) SQLite at all. The time to convert the da
Re: (Score:2)
Re: (Score:2)
ANSI-standard SQL as a data exchange format for relational data isn't really any more verbose than XML plus DTD, and a lot more readily usable by many relational datbase systems...
Re: (Score:2)
Okay, I know I screwed up the data type of genus_id, but you get my point...
Re: (Score:2)
As someone else mentioned, it was worded that way to get you to NOT think about xml...as it was already chosen as the data transfer format of choice for Collada. IE: Trust that the people that worked on this put the required thought into choosing to use XML. There is no point in arguing about the implications of XML in general as people are for whatever asinine reason.
Re: (Score:2, Insightful)
'(
(
(
(
(
?
Re: (Score:1)
No, and neither can XML.
When a human "reads" formatted data, the human is not reading the fucking data off the hard drive with their eyes. The computer reads the data first, then presents it on a graphical display, in a human-readable way. Even when you read text files or XML, the computer has to do this for you. It just so happens that for text files, there are a
Re: (Score:1)
Don't be a Bush.
Re: (Score:3, Insightful)
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: (Score:2)
For a verbose format, it sure is wasteful of bandwidth in transmission.
Just some observations.
As someone who has used Director's property lists for a long time, it makes me wonder why people use XML at all.
Director property list:
[property:value,
[prop: [prop:val, prop:val,... ] ]
[#imageIndex: 123, #rect: [0,0,320,240], #tags: [ "kitten", "feline", "edible" ], "Main Author": "Alex The Complainer"]
To me, that type of data layout is much more readable. And y
Serialization (Score:2)
[prop: [prop:val: [prop:val, prop,val]]
which is only two levels deep into the first prop... many times if you have structures and the like, it will go deeper and it is no longer really human-readable.
Re: (Score:2)
I just didn't want to spend too much time typing in sub lists.
You're correct about it not being easily readable but then you have a simple intent based displayer. I wrote one in 1995.
It's not that hard. Like 7 lines of code maybe?
Re: (Score:2)
Re: (Score:2)
Right tool for the job etc etc. You know the drill.
Re: (Score:2)
By the way, anyone who loads files in a 3d engine past the initialization load time of the project might be making a bad mistake.
It should be pointed out that it doesn't matter much what format you use in the long run, and also that there are various good reasons to make different choices along the way.
Space is less of a concern now, and will be less of a concern as time goes on. And if this is not true in a given si
Re: (Score:2)
Re: (Score:2)
Perhaps you are still using C or Pascal though -- where you can actually stream binary "records" from file directly into the data type. (I know that c approaches that problem differently, but it is still fast, so its the same
Re: (Score:3, Insightful)
<word><letter type="capital">W</letter><letter>h</letter><lette r >y</letter></word>
<space/>
<word><letter>d</letter><letter>o</letter></word>
<space/>
<word><letter>y</letter><letter>o</letter><letter> u</letter></word>
<space/>
<word><letter>s</letter><letter>a</letter><letter> y</letter>
Re: (Score:2)
Re: (Score:2)
Re: (Score:1)
no (Score:1, Offtopic)
Silly lameness filter requires me to type something...
maybe (Score:2)
One main contributor not mentioned... (Score:1, Informative)
Re: (Score:2)
To be specific, Feeling Software's exporters (ColladaMax, ColladaMaya) and their COLLADA manipulation library (FCollada) are under the MIT licence. The development process isn't particularly open (their Bugzilla is, but their code repository isn't and you have to just wait until the next official release to get any new fixes), but that hasn't been a problem for me in practice - I've had to make some local changes to get FCollada compiling on Linux, but it's easy to do that and to distribute patches since it
Collada (Score:1)
Mentioning that you were involved with VRML... (Score:2)
Re: (Score:2)
And do you really think that in the interim, these people have learned nothing from their experiences with VRML? It appears they did just that. X3D was a complete fresh start.
And could you keep things in context a little? Please? Taking one single statement completely literally ignoring it's context doesn't make sense. a) This guy deals with w
Re: (Score:3, Insightful)
Re: (Score:2)
Sony [scea.com] (PS3 SDK). Epic [feelingsoftware.com] (Unreal Engine 3). Nvidia [nvidia.com] (FX Composer). AGEIA [ageia.com] (physics).
XML provides more than just a way of serialising a tree into text - I've not looked into the details very far, but what I've seen is that COLLADA uses XML Schema for validation, URIs for references between different locations (e.g. defining a piece of geometry, then addin
Re: (Score:2)
Sony? That doesn't mean anything, Microsoft uses the
Epic? Ships content in Collada format? Uses it for its own art pipeline? I'm just guessing but they probably support using it for mods, right? That the only format they support?
Nvidia? It isn't supported in 1.8, purported to be supported in 2.0. BTW,
Re: (Score:2)
I doubt anyone would ship it, since it's not suitable for that. I can't find any details of how UE3 actually uses it, so I couldn't do more than conjecture - and most other game developers also appear to keep quite quiet about what technology they're using (at least in public). I've not heard of any other games that have been released yet and are using COLLADA - they [khronos.org] claim that "active users" include "THQ, EA, Konami, NCsoft, DoubleFin
Re: (Score:2)
Amateurs and little tools companies...riiiight. Because amateurs have such high need for this kind of thing. Little bands of 2 or 3 coders with rendering farms and content creation pipelines.
Fuck you're an idiot. This ONLY makes sense for the big boys in the industry really, and surprise! They're the ones that came up with it!
Read a bit next time would you?
Re: (Score:2, Informative)
I have been developing tools for use with Collada for the last 6 months, and have been following it's development for a good year before that.
As a startup Collada provides us with a cheap way to bring our tool chain together. We can rely on data from one tool to make it into another tool unaltered and useable. Being XML it is easy to 'look under the hood' and see if there is any crud and make minor fixes that would be difficult with any of the binary int
Re: (Score:2)
"Because amateurs have such high need for this kind of thin
Re:Mentioning that you were involved with VRML... (Score:4, Interesting)
Collada is rapidly being adopted because it works great as an open exchange format between 3D content creation tools. Maya, 3DS Max, XSI, Lightwave, Houdini, Blender, all have Collada support - indeed good Collada support is a major selling point of the latest release of XSI.
Since Collada is the native format supported for Sony on the PS3 everyone is also motivated to support it well.
LetterRip
Re: (Score:2)
"indeed good Collada support is a major selling point of the latest release of XSI." - Doesn't seem to be mentioned on the XSi 6 pages. I did see a blurb about integration being added in
Re: (Score:1)
I know of at least two production companies that use a proprietary XML format. ( http://www.xsi-blog.com/?p=15 [xsi-blog.com] ). If Collada had existed at the time, maybe they would have used Collada instead.
Re: (Score:2)
Re: (Score:2)
In my experience, people who are using art pipelines to generate content for serious commercial applications (whether games, visualization, or other verticals) will avoid this format because when you get down to it, if you're a 3D developer writing your own file format is trivial. Writing your own exporter is NOT; however, there are many exporters than are quite good at their job which you can use to prod
If Collada is .... (Score:2, Funny)
Now they publish (Score:2)
Having implemented a parser/importer in Python from scratch I can attest to a huge amount of ambiguity in the 1.4 spec.
That said, once you figure it out COLLADA is really sweet.
COLLADA Physics (Score:1)
Collada Academic, not only games (Score:1)
XML is the best way to store data? (Score:2, Interesting)
Another company I worked for had a proprietary geometry/animation format that was ASCII based and very verbose. The tools to process this data were also very slow, probably at a minimum 10x slowe
Re: (Score:2)
It's not good, but it's not quite as bad as one could imagine. Most of space in COLLADA is not XML tags - it's the lists of numbers (arrays of coordinates, indexes into arrays, etc), and those tend to be what increase when you get millions of vertices. The coordinate data for a very small object looks like:
Re: (Score:1)
Or to put it more bluntly, batch-convert the stuff you are working on, to work on it and convert it back to COLLADA when it's going back into the pipeline.
I might be mistaken here, but that's how we saw the format and its best use.
my 2 cents and a d
Re: (Score:2)
I've only been working on amateur game development, where all the people are spread around the world and have different tools and there isn't really a traditional art pipeline. Batch conversion doesn't seem as suitable if everyone would have to download hundreds of megabytes over the internet each time the converted data changes, which is why we [are planning to, in the next few weeks] distribute just the COLLADA files to the people involved in development, and their copy of the game automatically converts
Re: (Score:1)
I wish you guys the best of luck for your project. Maybe you should think about writing an article how you made use of Collada. Would be the kind of "How we did it" stuff everybody loves to read.
best,
Erik
Re: (Score:1)
In your situation, I definitely can see the benefit of Collada for interchange between different environments. I think going forward your distributed development model will be more the norm, as art outsourcing gets more popular (though I'm guessing the environments won't be quite so heterogenous as what you have to deal with!). But fo
COLLADA (Score:2)
I've seen lots of complaints that the format is not necessarily any better than Microsoft's
Of course XML
How will this affect X3D? (Score:1)
How do you think Collada will affect people's interest and involvement in X3D? It's evident that VRML/X3D has failed to gain traction in the 3D entertainment sector, and that Collada's focus here means that it will probably (hopefully) be much more successful. Also, from a gut-reaction level, Collada is much cleaner and doesn't have some of the silly baggage that you find in X3D (such as delimiting lists with "-1" a
Re: (Score:1)
Thanks (Score:1)
It's also refresh
COLLADA Review Should Have Been Posted In Games./. (Score:2)
-Pip