Progressive Rendering Workflow

“Maxwell Render has a really good feature that lets you continue to render a sequence after you have stopped it once. For example, depending on the scene, let’s say that Maxwell Render needs to achieve 20 sampling levels before the image is completely free of grain. Again, as an example, this takes three hours to achieve. To render them up to the first 12 sampling levels (SL), though, only takes a few minutes, as every sampling level approximately doubles the render time. At SL 12, even though it’s a bit grainy, we can clearly check that it looks how we want without any bugs, collisions of geometry, etc. Once approved, we then take those images into comp and start doing the post work needed. At the same time, we send the SL 12 images to the render farm and continue rendering them up to the final SL level.

Before we always had to wait for the rendered frames to be finished before going into comp.

This way it feels really nice to be finished before the rendering is done.”

Michael Bengtsson, CEO/VFX supervisor at Meinbender Animation Studio

 

Maxwell Render allows a Progressive Rendering approach, an unique and revolutionary workflow that allows you to overlap the rendering and post-production processes so that they can take place simultaneously.

This concept is based on the principle that you can resume a low Sampling Level render to get a cleaner image. You can start your post-production process using the low SL image or sequence, and in the meantime leave Maxwell to carry on cleaning up your render during your post-production time. Finally you can replace the low SL image or sequence with the final SL one at the end of the process.

With Maxwell Render there is no need to use the classic inefficient workflow: rendering a lower resolution proxy version of the sequence before post-production, and re-launching that proxy at final resolution from the start again. This doubles steps in the process, and wastes a lot of rendering time. Plus you can work in post-production on the final output - even though the images will be a bit grainy at first, you get a very good idea of what the final sequence will look like, and you get the extra render channels and the MultiLight separated emitters. 

But the most important concept is that you don't have to wait until the frames are finished. Instead, you just have to wait for a low Sampling Level, i.e. SL=8 as a working reference, which usually takes a few minutes per frame, and then let Maxwell refine the frames while you are already working on them. 

This way you get a continuously refining sequence that you can start compositing while simultaneously the whole sequence gets cleaned up, saving you a lot of time and dramatically increasing the productivity of your pipeline

 

On the left, the frame rendered at SL:7 (2k resolution, rendered in 2 minutes on a i7 2.6GHz). It is noisy, but completely usable for compositing. On the right, the same frame after been progressively refined during the postproduction (to final SL:14). 

 

You can use the Progressive Render in two ways: 

  • In the Network
  • In Maxwell standalone, via a script

 

Progressive Rendering in Network rendering

You can use this progressive approach through the Network System.

The Network Wizard includes a field named SL Updates for this specific task (see Network Wizard panel below). 

Instead of setting a unique target Sampling Level, you can set several Sampling Level steps. In the example below, Maxwell will launch this animation job to SL=3, and get the whole sequence at this low SL (which will be pretty fast). As soon as Maxwell finishes this first step, you can start post-producing your sequence with this initial version (although it may be still noisy, these images are full resolution and include all the channels you selected). 

Then, Maxwell will automatically take that same sequence and resume it until SL=7 (in our example). Once finished it will resume the sequence to SL=11, and again to SL=14. 

This way, while you are post-producing your sequence in you compositing package, the render is working underneath to refine your sequence, and periodically you get newer and cleaner updates of your images, providing a continuous improvement to the whole sequence while you are already working on the post-production process. 

This SL Updates feature is available both for Animation Jobs and Single Jobs (which is very useful for stills). 

During the Network render, your job is split into partial jobs, each of them resuming its previous one, although only the current sub-step is displayed on the Monitor panel. 

As the render refinement happens simultaneously whilst you are already post-producing with the initial SL version, the render time almost disappears, being overlapped during your post-production process, and creating an ultra-efficient workflow.

 

Setting a progressive animation job in the Network Wizard 

 

 

Displaying a progressive animation render on the Network

The Progressive Rendering script

The “progressive_animation” script launches all the MXS scene files located in the specified “input” folder, starts rendering them all up to an initial Sampling Level value, and stores the resulting images in the “output” folder (you may also need to set the resolution and output image format below in the script code). After that, the script automatically starts resuming all the renders from that initial SL in certain SL steps, until the whole sequence reaches the final SL you indicated.

This way you get a continuously refining sequence that you can start compositing while simultaneously the whole sequence gets progressively cleaned up during your post-production time, saving you a lot of time.

To load the script, open Maxwell Render and from the top menu go to Scripting>Scripts>Progressive animation.

 

Screenshot of the Progressive render script