I guess everything eventually comes full circle.

Recently, I helped my longtime friend Jon Bell with an animation project he was working on — a 3D (as in stereoscopic) TV show about outer space.

Well, this was a full HD show (1920×1080 resolution) and, being stereoscopic, required two full eye-frames per finished frame in the show, so there was a LOT of rendering to do for a show with a running time of around 44 minutes.  Jon wanted to be sure we used proper motion-blur for shots where things were moving to make everything look good, so that added a fair amount of time to the rendering process — A typical shot moving through space with the camera panning around required between 10 and 30 (or more!) motion-blur passes using the standard 3ds Max scanline renderer to get a quality look.

The project involved lots of shots of outer space, as you might expect(!), with my part of the show focusing on the work of the Hubble Space Telescope.  Fun stuff, for sure.  Almost every shot required a motion-blurred starfield background; Jon built up a standard “star sphere” environment with texture-mapped stars for generating this — it had lots of stars of varying magnitude and looked great.  When motion-blurred properly, it looked awesome.

Now the trick to doing good motion blur using the camera motion-blur control is to know how much extra sampling is required to get a nice, solid streak in the image instead of a string of separate dots from the individual stars as they move across the frame.  This is dependent on how fast the camera is slewing across the scene, and can vary in one shot from almost no movement to a huge amount (in, say, a whip-pan).  The killer is rendering a scene with a wide range of camera speeds, where you know you need 30 samples on the fast parts to get a good look, and knowing that you’re wasting a lot of rendering time on those portions where there is no camera movement and no actual blur — but the renderer is doing 30 samples on everything.

Now, yeah, you can animate the number of samples on the motion blur settings on the camera to compensate for the amount of camera motion, but that takes a lot of work and some trial-and-error to get the settings right as the camera speed varies — and heaven help you if you change the camera movement and forget to alter those sample settings.  Plus, in a job like the space show I worked on, you need to make sure you duplicate the motion blur samples track so they’re the same in both the left- and right-eye camera!

So after having to mess with motion-blur sample settings after getting some bad starfield streaks and having to re-render, the programmer half of my brain realized that there had to be a way to get the computer to do the work for you on this kind of thing.  Yes, I’m basically lazy and think that computers should do the kind of work they’re good at.

I decided to tackle this problem and recreate the original starfield plugin I wrote for 3D Studio DOS way back in 1991 (and ported to Max in 1996) — and this time, do it right, with ultra-high-quality round stars and perfect motion blur, with the plugin doing all the work of looking at the camera speed and adapting automatically.  I dusted off the old Max starfield code and got to work.

The thing is about 75% complete — So far, it’s looking great.  I’m going to make it completely multi-threaded so it’ll be lightning-fast, and I’m planning to have it set up to work as an old-fashioned Video Post filter (for old times’ sake!) and as an Effect — and once I start testing with Jon and a few other people, we may work it into the Max system in other places as well to accommodate various workflows.

So what’s the full-circle part?

Well, the original inspiration to create a starfield plugin for 3D Studio DOS came from an idea I had for a short film, “Assault on the Sun” — a fantasy trip to the sun by my robot creation, Klanky the Robot, and his two 8-year-old companions, Freddy & Joey.  I wanted to have a nice, accurate starfield linked to camera movement as their spacecraft flew toward the sun, and in 3D Studio DOS 1.0 there was no real way to do that.  Inspiration struck when I realized that the Autodesk Device Interface (ADI) system mechanism, which we were using to connect tablets and such, could be used to create a plugin system for image processing, allowing my starfield concept to work — and it could also be extended to other things, much like the old “Cyber Control” system I built into my “CAD-3D/Cyber Studio” software on the Atari ST back in the 1980s.

Well, the starfield system got built, along with a lot of other things, but I was so busy with other things that “Assault on the Sun” never got made.

I think a good production test of the new starfield plugin would be to actually sit down and create “Assault on the Sun” — Stay tuned!