Victory! (Of a sort)

So I’ve been working for a few days on understanding LuxRender, which if you’ve never seen it is a quite impressive global illumination renderer. I’ve been trying to piece together a Mathematica interface which will allow me to take quick snaps of tubes, knots, random polygons and the like and been completely befuddled.

Aside from the usual confusion about coordinate systems and the like, the real thing that threw me about physically realistic rendering was the idea of tone mapping. The problem is that images that you actually see in the real world have very high dynamic range: there are regions in the image where lots and lots of light is coming into your eye, and others where very little is. That causes a real problem for a renderer, which comes up with brightness values which are way larger in range than anything which you can display in a reasonable file format (also EXR seems to be a graphics format designed for exactly this sort of thing). I’ve figured out the settings enough to produce the image below right from the data below left:pink_popcorn_mathematicapopcorn_explosion

which I call “pink popcorn explosion”. That seems like a pretty good day’s work to me! Of course, the image right suffers from the usual problems of bad photorealistic rendering: too few lights, shadows, are too harsh, color choices are kind of random, and there’s no sense of scale anywhere in the image. Plus the camera angle or the data seems to have changed between renders. Still, as a first attempt: seems like a good day’s work to me!