Even though I'm completely exhausted, it was well worth the effort to get up for the Large Steps Toward Open Source panel. It seems that the movie industry is today where the computer industry was 10 years ago w.r.t. open source. They want to join the cool kids, but they don't quite "get" it yet. The biggest failing is that they only want to open source something when it's 1.0... after it has been used on a couple movies. ur doin it rong. sigh...

The single exception seems to be Sony Pictures / Imageworks. They have realized that the community is an integral stakeholder at every step of a successful open source project. The first slide from Rob Bredow's part of the talk said, in big letters, "Develop a community." YES!!!

In any case, there were a couple choice quotes and some cool projects. The best was Andy Henrickson from Disney Animation saying, "Disney isn't in the habbit of giving things away for free." He made another comment that I think really strikes to the core of why open source is so important across industries. He said, "Some things have no value unless you give them away."

I also liked a couple of comments from Florian Kains (of ILM). When talking about their move to Linux, he said, "All our production used to be on SGI machines at one point, but that ceased to be viable." I have to give some credit back to George Lucas. Apparently he was the one who got the "no value unless you give it away" argument that ultimately led to OpenEXR being open source. Florian siad, "Once George signed off, all the lawyers said, 'Yes sir, Mr. Lucas.'"

Here's a run down of current and future projects from the various presenters:

  • Disney Animation - current projects

    • Ptex

    • Pythoscope is test generator for Python. Next time I have to do a large Python project, I'll take a closer look at this.

    • Maya Dynamica front end for Bullet Physics

    • Partio -> Particle input / output library to abstract many, many different formats. It is intended to be "the" interchange library for the various particle systems used in production.

    • Disney's (mathematical) expression editor. This was a pretty rhobust set of widgets and a parser for mathematical expressions. It looked pretty damn cool.

  • Pixar Animation Studios

    • Rhobust, accurate, readable subdivision surface reference library. They have big plans for this, but it looks like they're going to do it wrong. They're going to develop it completely in house, in isolation, then release it when it's "done."
  • ILM

    • OpenEXR

    • Alembic

    • A couple other projects that I didn't write down. Sorry.

  • Sony

I was also impressed that both Sony and ILM give money (ILM to Python) and machines (Sony to some "small" Linux distro) to "pay" for the open source software that they use. Florian did comment that it's often really, really hard to pay people for stuff. He gave a hypothetical example of trying to donate to some random guy in Wales. What's his tax ID? How do I notify the government? Etc.

The Games & Real Time had some good presentations, but by the time it came around (the last session on the last day), I was exhausted.

User-Generated Terrain in ModNation Racers had some pretty cool ideas. They let the user draw the terrain map using brushes. Instead of storing the drawing, they store the brush strokes. This allows them to have a very small in-core foot print. Of course, all the terrain "drawing" is done on the GPU. New terrain is combined with existing terrain using the alpha blend unit. They even use min/max blending! I'll have to rent this game (sorry!) to try out the editor.

Irradiance Rigs is largely based on several algorithms (irrandiance volumes and spherical harmonics lighting) that I'm not familiar with. meh. I need to get on that.

Practical Morphological Anti-Aliasing on the GPU was a GPU implementation of an algorithm presented last year at SIGGRAPH. Basically, you scan the rendered image from certain types of sharp features and blur them. It's a major hack, but it does fix may unappealing artifacts. It's still pretty slow, and it doesn't handle some common cases (e.g., breaks in rendered telephone lines).

One of my favorite phrases in graphics: "[This algorithm is] not physically correct, but plausible." Curvature-Dependent Reflectance Function for Rendering Translucent Materials reminds me a bit of a poster that I saw at SIGGRAPH last year, but I couldn't find any information about that. I might have a flyer or something at home. It's also similar to the curvature based AO technique that I mentioned yesterday. A preprocess step determines the curvature at each point. This curvature is then used in a different sort of lighting equation boost lighting. The equation is fairly complex, and the fast implementation uses a look-up texture based on the material properties.

The biggest failing seems to be a variety of unfortunate interactions with shadows. The precomputation step also hurts, but not as much. Still, it seems pretty cool.