Blender Redux

About a month ago, I posted about the release of Blender 2.4, and was kind of harsh in my comments. I’ve gotten a lot of feedback, and explained myself more thoroughly in emails, but I’ve gotten so many similar questions that I’ll just address some of the comments here. For starters, I also said the hair looked “abominable.” Which I stand by; it looks like the individual volumetric hairs that Alias Poweranimator had in the mid 90s. I’ve been asked why I say that, which is a big question, but where it really falls down is the lighting. The usual furball render tests look pretty good, but they always look good, because it’s just a koosh ball under a single light.

Blender’s hair uses 2D strand rendering, which is “correct,” in that that’s how other, more professional packages do it, but it is lacking in features. For example, none of the industry standard curl/kink/droop/clump/taper/frizz styling tools to control those strands that other packages have. And no dynamics, either. I had the opportunity to discuss the issues behind this with Pixar’s Michael Fong a few years ago, and dynamics are key.

But mainly, the lighting is bad. The tangent shading seems to be on the right track, there’s a form of self-shadowing, and longer hairs show anistropic specular highlights, but it just doesn’t jive. I’m not a huge fan of Blender’s rendering engine to begin with, but this doesn’t even match that. I’m guessing it’s been patched on top and there’s very little integration. For example, I tend to doubt this 2D static particle rendering is fully compatible with reflections, refractions, fog, depth of field, volumetric lighting, or radiosity, and according to the forums, people are having trouble attaching it to moving characters.

The best CG hair to date has been written to specifically accommodate both the rendering engine and project it’s meant for. For example, Weta’s Kong fur or Pixar’s Monster fur. Both of these examples are using a proprietary rendering engine (although in Pixar’s case that engine eventually trickles down into Renderman) created and tweaked by the same guys who are creating and tweaking the fur renderer.

Next up would be the third party hair/fur plugins like Shave and a Haircut and Sasquatch. They have the disadvantage of being additions to the rendering process, not strictly integrated, but Joe Alter and Steve Worley are amazingly knowledgeable about the ins and outs of the engines they support, and have managed to work around that, supplying a professional product that is regularly used for commercial feature film work.

Then there’s the hair that comes built-in with the animation package. Maya’s is pretty good, but most of the others leave something to be desired. It’s something that gets tacked on because “everyone else has it,” but it ends up not being that useable (hence the proliferation of plugins). Which is kind of where the Blender hair is at the moment. Only it still feels like it’s in the mid 90s.

As far as I can tell from the developer forums, this will be a difficult thing to fix because, as mentioned, most of the new features and special shaders have been written by developers that weren’t involved in the core of the project. As a result, there isn’t a lot of integration, and upgrading one thing often breaks something else. Until there’s a more unified object-based organizing structure, Blender is almost too ambitious and complex a project to be cobbled together by individual hobbyists.

Eventually, I think the project will become more organized, and I’ve been asked if we shouldn’t spend our time learning Blender now so that when it “comes into its own” we’ll have mastered it. Frankly, I think that’s a poor gamble. Firstly, Blender’s development path is slow. At the moment, 3D animation is making leaps and bounds more so than perhaps any other time except the early 90s, and the big players are making enormous progress. Blender will always be playing catch-up because its coders are generally finding their own ways to do things that other programs are already doing, not leading the field.

Secondly, even if Blender did take the high ground of functionality, it still couldn’t really be the top program unless it ditched its free status and hired full-time staff for support. At the end of the day, that’s what effects studios need, and the effects studios tend to drive the industry. For example, when ILM dropped Softimage for PowerAnimator in ’95, Softimage was at the time a far superior program in almost every respect. There were a few political reasons for this (SGI suddenly owned Alias and was in a position to offer discounts to ILM), but it mostly had to do with the relationship that the ILM guys had with the Alias programmers.

This relationship was very important since it gave ILM software that was almost custom built for their specific needs, and Alias got to write and test their software around real-world projects. Softimage’s position wasn’t helped by the fact that they got bought by Microsoft, but once they weren’t the main workhorse of ILM, not even MS’s dev budget could help (fortunately, Avid is is now in charge, and managing things much better).

Of course, times have changed. There isn’t just one big monolithic effects house anymore, but the dozens of big-deal effects houses still have the same requirements that ILM did ten years ago. And the big effects projects still have the same needs, which is why the software packages that can afford to hire full-time dev teams end up working on the projects that create the curve. I like Blender, and I like that there’s an OSS 3D package for folks to experiment with, but I just can’t in good conscience recommend that anyone devote a lot of time to learning it on the off chance that it will leapfrog a decade or two of development and become a professional and marketable program.