Screenshot of LuxRender in Action
Screenshot of LuxRender in Action

So, remember how I was saying that the one feature Blender doesn’t have is good motion blur? Turns out that there’s an Unbiased Renderer that works with Blender (it’s free and open source too, of course) and it produces amazing results (albeit slowly). It’s called LuxRender, and it’s a fork of the PBRT (Physics-Based Rendering Technology) project, which is essentially a rendering engine put together to test new theories about physically accurate rendering (i.e. stuff that ends up in SIGGRAPH papers).

Correction: it turns out that Blender has very good vector motion blur support and one should never use Blender’s frame-averaging system unless one is a masochist. (One of the problems with Blender is that often a crappy feature remain prominently in place while a newer, superior alternative feature remains hidden. This is the case both with motion blur and the rigging.)

There’s an old joke in computer graphics called The Law Of Constant Rendering Time which holds that it always takes a day to render an image, regardless of the speed of the computer. The basic idea is that we’ve been “improving” our lighting models at exactly the rate necessary to cancel out improvements in processor speed. The latest incarnation of this is unbiased rendering, which tries to actually model the way light works (versus taking various shortcuts which produce biased renders — i.e. renders which do not converge on a “correct” render no matter how much computation you throw at them. Radiosity and raytracing are both biased under this definition).

Anyway, this research has spawned a whole new generation of rendering engines, all markedly slower than we’ve grown used to, and with the peculiar property of producing noisy images that slowly get better (and you can spend as much time as you like rendering them — you’re never “done”). LuxRender is free, but there are several commercial options including Maxwell Render, Indigo, and Fryrender. I don’t know how fast Maxwell Render is (there’s no question it’s good), but its priced in the “if you need to ask, you can’t afford it” ballpark. All in all, the whole PBRT crowd reminds me of the “charge what the market will bear, tripled” gold-rush mentality of SGI era. (Well, Indigo is fairly cheap.)

I’ve been playing around with LuxRender this evening. It’s definitely an awesome tool for creating the occasional “hero” render, although both the rendering time and the extra difficulty setting up a scene make it difficult to use casually. (It doesn’t have normal “lamps” — all light sources are physically modeled objects that glow or transmit light… so a light bulb is a glowing filament — and you need to make special materials independently of Blender.)

The other fascinating aspect of LuxRender is that by default it’s kind of like “the works” in an old school renderer — you get everything — caustics, sub-surface scattering, refraction, internal reflection, and even chromatic aberration and depth of field “for free”. And, unlike with old school renderers, these aren’t set up with tricks and fudges where you finess the parameters to get the right result. You pick the materials and lights correctly and it pretty much does what it ought to. So, in a sense, this approach reduces the work done by the artist at the cost of more CPU time — it’s just that CPUs aren’t quite fast enough yet.

A simple scene showing off the frost glass, shiny metal, and glass presets. This is the result (original at 800x600) after about five minutes on my Macbook Pro.

But it does look like the future of rendering.