Anyone who's used Autodesk's 3D Studio Max for a while knows about BackBurner. BackBurner is the Queue-controlling software they ship with Max to allow you to render jobs across multiple scenes in a naive way. Rather than pooling resources to work on a single frame, it hands out individual frames of the sequence to each node in the backburner queue. (You can pool resources using the "Strip" rendering, but it's pretty much the same thing). However, the way we use BackBurner at work has proven to us that it's just a piece of crap. Thus, I wrote my own queue manager that I've dubbed "Freezerburn". Let me elaborate..
In our environment, we typically get a dataset of 1000 or so timesteps. We extract 1000 isosurfaces (one from each timestep), and then need to render these 1000 files into 1000 frames of an animation (For those interested, we typically save the isosurfaces as Stanford PLY files and use the PLY import plugin I wrote, along with a MaxScript, to convert them all into MAX files). So we create a simple setup scene with the context, lights, and camera. We then use another custom MaxScript I developed to embed a callback into the Max File's "onLoad" event that will look at the current frame number, merge in the appropriate Max file, and apply whatever material properties we need. That way we have a single MAX file that can render all 1000 frames of the animation. Unfortunately, since it's in the onLoad, it means we need to load this Scene file from disk for each image.
With Backburner, you have no control over this. With a large scene, it typically starts off assigning individual frames to nodes, which is exactly what we want. After those complete, however, it starts assigning larger & larger batches of frames to each node (to reduce overhead spent loading the file & transmitting information). This means that the onLoad callback is only triggered once but renders multiple frames, which isn't what we want.
The technical amongst you may be wondering "Why not just use preRenderFrame"? Well, there's a few reasons while the various preRender callbacks won't work like that:
Technorati Tags: autodesk, backburner, python
Comments (0)
Yeraze's Domain
http://www.yeraze.com/article.php/2008031110473221