Daily Archives: 8/10/2007

Phew, back from SIGGRAPH

Well, I’m back. Hope you all didn’t miss me too much. I‘ll try to provide links to some of the papers that I liked, and also some feedback on the conference itself later in the day. Stay tuned.

No SIGGRAPH would be complete without a story or two of how I committed horrible social blunders, so I’ll get this out of the way first thing. But first, some background. Back in the mid 1980s, I was a hapless graduate student at the University of Oregon. I had no particular interest in computer graphics. I’d taken an undergraduate course on the subject, and we had spent pointless weeks deriving and rederiving Bresenham’s algorithm for line drawing, and then showing how we could use it to draw circles. Snooze.Picure from Whitted's classic paper

But then I got a copy of Turner Whitted’s 1980 paper An Improved Illumination Model for Shaded Display. The abstract:

To accurately render a two-dimensional image of a three-dimensional scene, global illumination information that affects the intensity of each pixel of the image must be known at the time the intensity is calculated. In a simplified form, this information is stored in a tree of “rays” extending from the viewer to the first surface encountered and from there to other surfaces and to the light sources. A visible surface algorithm creates this tree for each pixel of the display and passes it to the shader. The shader then traverses the tree to determine the intensity of the light received by the viewer. Consideration of all of these factors allows the shader to accurately simulate true reflection, shadows, and refraction, as well as the effects simulated by conventional shaders. Anti-aliasing is included as an integral part of the visibility calculations. Surfaces displayed include curved as well as polygonal surfaces.

In short, Turner had invented the rendering technique that we know today as ray tracing. And quite frankly, it changed the course of my interests in computer graphics as well as ultimately my career. It’s an amazing thing to realize that just reading a six page paper from someone that you never met can affect the course of one’s life so dramatically.

Luckily, I did ultimately meet Turner.

I’m not sure what year this was, but it was perhaps fifteen years ago that I was attending a SIGGRAPH Birds of a Feather meeting that we used to hold which was called “The Raytracing Roundtable”. Organized by Eric Haines, people interested in raytracing would show up, we’d go around and introduce ourselves, and then pointlessly argue about which acceleration structure was the “one true, fastest” technique. They were fun back then. On this particular year, I introduced myself, saying that I wrote the “MTV raytracer” (which was still rather popular back then) and that I worked at Pixar on rendering technology.

Then, the person to my left introduced himself: Turner Whitted. He mentioned that he now worked primarily on digital design. And the intros moved on.

The odd thing was that I suspect only about one in three people there knew who he was. I was delighted for the chance to talk to him, and we exchanged pleasantries, and he flattered me by saying that he had swiped a chunk of the ray intersection code from my raytracer (quadric ray intersection, if memory serves). I was in heaven.

Fast forward maybe ten years. I’m at SIGGRAPH again, and hadn’t spoken to Turner in all that time. I’m on a bus heading back to my hotel from the Staples Center, and I see Turner board the bus. He calls me by name, somebody he hadn’t talked to in a decade. I’m totally floored. We talk about FPGA design a little bit, something that I keep being interested (but as yet have not found the time to adequately explore) but I’m left again knowing that I’ve been in the presence of a truly great pioneer and a really nice guy.

Fast forward to this SIGGRAPH: I’m at the Disney R&D mixer, and I see Turner again. He comes right up, shakes my hand, what a nice guy. I introduce him to Julian, and we chat again about digital design. Somehow the topic of tools comes up, and Julian talks about Altera’s tools and their support of Linux (the operating system that we both prefer). Without really thinking about it, I blurted out that I had sworn to send Microsoft no more of my money.

Of course the thing you may not know (and which I only remembered hours later) is that Turner heads the graphics division of Microsoft R&D. Doh!

My self-imposed moratorium of sending Microsoft money had begun with this annoying day when I finally deciding to nuke my increasingly lethargic laptop and but Ubuntu on it. It’s still running Ubuntu, and works just fine. I’ve since moved on to using a little cheap Macbook, which I basically love to death. All the nice GUI with the underpinnings of Unix which I love. I don’t really believe that Apple is a more benevolent commercial enterprise than Microsoft, but I think they are more focused on improving customer experience, and it shows. Even when I ultimately bought my son his new Windows Vista box, I couldn’t help but be reminded about how great the out of box experience was with my Macbook, and how by comparison the Vista experience was slow and clunky. So in a sense, I don’t really regret saying what I did: it expresses a very real frustration with their products.

It’s also no secret that I am an enthusiastic supporter of open source. I’ve used FreeBSD since the release of 1.1.5.1 back in 1994, and various distributions of Linux almost as long, now pretty much using Fedora at work and Ubuntu at home. These systems are both capable and represent a philosophy that I support: that society is well served by having a free, user-created computing environment. I suppose it’s a form of idealism that I like to entertain and promote.

But I shouldn’t have acted like an ass. The simple truth is that Microsoft R&D employs some of the greatest minds in computer graphics and I should be intellectually strong enough to separate my frustration with their products from the admiration both the fine work that people like Turner have done and continue to do. I should also work harder to keep my idealism from becoming dogma. I’ll try to keep this tension in mind more clearly when I comment about this stuff in the future.

An aside: as it is, my resolve in my pledge is already weakening: it appears that DirectX 10 allows you to do quite a bit more than the OpenGL support that is accessible from Linux. Support for the latest, fastest stuff always appears for Microsoft before Linux, and much as I might like that to be different, it’s the reality of the situation. I’m in a position where I’m forced to admit that the Windows platform may actually grant more power and capability than Linux.

Okay, enough of that, on with the technical highlights.

As a reminder, you can get most of the papers as links from http://trowley.org/sig2007.html.

The sole exception that I found interesting is Brian Guenter’s paper Efficient Symbolic Differentiation for Graphics Applications. I’ve studied automatic differentiation techniques quite a bit, and while I haven’t dissected the paper yet (I had to leave before it was presented) I’m pretty intrigued by the results. Several computer graphics applications that I am interested in require the differentiation of complex sets of equations, and this promises to evaluate these in a much, much faster way.

Real-time Edge-Aware Image Processing with the Bilateral Grid was pretty cool. Bilateral filtering has many applications, and this technique allowed many previously non-realtime processes to be done interactively. Neat!

Plushie is a system that allows anyone (even kids) to sketch out designs for stuffed animals, and then creates a 2D pattern so that you can cut them out and sew them together.

Photo Clip Art and Scene Completion Using Millions of Photographs harness the power of Flickr and the millions of photos that can be downloaded from there, and harnesses in interesting ways. The first searches for elements (such as cars and peoples) that can be seamlessly incoporated into the picture you are editing, even trying to match the lighting and sizing people accordingly, and the second allows you to replace parts of your image (such as telephone poles) with bits of other, similar pictures. Both very nice papers, and very thought provoking.

Many-Worlds Browsing for Control of Multibody Dynamics is a simulation system that allows you to select very unlikely but physically correct simulations to achieve a goal. If you check out the video, you’ll see that they managed to find an initial position which causes letters falling through a pachinko style maze of pins to form the word “SIGGRAPH’. This system harnesses fast multi-body simulation enable you to direct the action.

Some other good things: panels about the cooperation between Lucasarts and ILM, panels on Happy Feet, Spiderman and Transformers (as well as Ratatouille) and the cool weather and good food of San Diego. Oh, and the girl with the solar panel bikini to charge her iphone.

Technorati Tags: , , ,