This is not a detailed step-by-step tutorial but more of a guide, so I can share my rendering and compositing techniques and allow you to follow the examples at each stage, which will hopefully give you ideas of how to incorporate them in your project.
I found that to achieve smooth flicker free global illumination can sometimes be a matter of trial and error, with seemingly endless hours of number tweaking and render tests.
Rendering was achieved in Maya using Mental Ray by Mental Images and finalRender by Cebas Visual Technology. All settings are relevant to Maya 8.5 and finalRender Stage-2 SP2.
Leave comments by posting a message:
on the WordPress Blog Post, on the YouTube Video, on Twitter or by e-mail
The example above illustrates the problem Mental Ray has with Global Illumination when rendering out an animation. As you can see, the Photons and Final Gather points are recalculated on each frame of the animation and create the unwanted flickering effect.

While it is possible to freeze the points at every frame in a final gather file, it is more for a static scene with a camera fly-by and no character animation.

Firing more points into the scene smoothes out the grainy effect but does not eradicate the flicker, how ever many photons or final gather points are in the scene and in turn drastically increases render time which is something we don't need, especially if there are thousands of frames to render.
Although it should be possible, I had spent too long trying to eliminate the flicker as opposed to being more creative and concluded that I could not achieve the effect I was looking for in Mental Ray. I decided to look at various other different renderers and found that finalRender had the animation render features I was looking for.
In this section, I will show you how to 'Interpolate' between frames in more detail, with the 2 pass 'save and load solution' character animation setting, to produce a flicker free animation sequence in finalRender.


The image on the left (above) illustrates how the point lights were laid out. One main light in the center of the scene, 12 fill lights in the main corridor and 4 fill lights in each of the 3 extended corridors. The image on the right shows the finalRender settings I used for the main light, giving it enough Photons to be able to reach every part of the main room. A slight cream colour was used to give it a little warmth and a low intensity is set as we don't want to over expose the room to non Photon light.


The main light didn't quite illuminate the outer corridors without over exposing the main room, so fill lights were used to even out the lighting, with a lower intensity and Photon Energy value.

As mentioned earlier, Mental Ray only allows the Rebuild Final Gather option to be Off, On or Frozen. finalRender incorporates the use of a Character Animation setting that allows you to interpolate between a defined number of frames to effectively smooth out the photons to give a flicker free animation.

Two separate passes are required for the Character Animation render setting to work. The first is a pre-pass solution which calculates the photons in the scene and saves the data in a .gis sequence.
fr_solutions\gore_roomwalk_16.9\gore_roomwalk_16.9_GI\gore_roomwalk_16.9_GI.gis

The second is a Rendering Pass which loads the saved .gis sequence and interpolates the data between a set number of frames. While the two passes obviously takes longer to produce, the final result is worth the wait as flicker is eliminated altogether.
In order to create a flexible working practice, separate render passes are required, although there are no set rules of how many passes to use. While taking longer to set up and render, the main advantages over a single render pass is the ability to tweak values on each layer at the compositing stage and that you don't have to re-render the whole scene again to change the depth of field or motion blur for example.

For the Global Illumination Pass the in finalRender GI Detail Detection is switched off as we are going to use a separate Ambient Occlusion Pass to fill in the details.

The Ambient Occlusion Pass always looks good in it's own right and is multiplied on a layer in After Effects over the top of the Global Illumination Pass. You don't have to have a high detailed setting in the Global Illumination Pass and therefore reducing render time. It basically fills in the details of a model and therefore achieving a more realistic look.

The Ambient Occlusion Pass in Mental Ray has always produced good flicker free results, so I didn't feel the need to find an alternative method. To create the Ambient Occlusion Pass, first go to Render Layers in the Channel Box/ Layer Editor. Create a new layer and assign it to the selected objects, rename the layer to 'OcclusionPass'. Right click the layer > presets > occlusion. This will add a surface shader called surfaceShader1 and assign the mib_amb_occlusion1 attribute to the objects.

Bring up the surface shader in the attribute editor by clicking on the blue sphere in the Channel Box/ Layer Editor and click the Out Colour. Set the number of samples to 128, a higher value can be used but will result in higher render times. Take the Bright setting down to around 0.8 or 0.9 so the image isn't too bright when composited. If the scene is inside a room the max distance will have to be raised, in this case to a value of 20. While the shaded view looks black the render will look similar to the first image above.

More colour from the glass was required so an additional ColourSpill Pass was created.


The image on the left Text-Here. The image on the right Text-Here.

Glow Pass was created

This allows you to render out a Depth Pass from a shader in Maya.
As the title suggests, Distributed Rendering is a way to render an image, or sequence of images across several computers. The animation was rendered on 2 Shuttle XPC's each running Intel QX6800 Quad Core CPU's for a total of 8 cores. To be able to take advantage of the full processing power, a way to link the two computers had to be found. One solution would be to use a Network Render Queue program such as Muster or RenderPal. These programs allow you to queue up the scenes and send them to your favourite renderer, in some cases over hundereds of machine nodes.
As I only needed to render across two machines, I decided to go with Maya's MentalRay Satellite and finalRender's Distributed Rendering.
How To Set Up Distributed Rendering With MentalRay Satellite.
MentalRay is included with Maya and allows 8 CPU's to be used out of the box.
Firstly, install MentalRaySatellite on the slave machine. This is included on the Maya disc.
Create a text file and save it as maya.rayhosts (notice the extension is now .rayhosts and not .txt)
in C:\Documents and Settings\user\My Documents\maya. In this file, type
the name of the slave machine and the port number MentalRay uses for the Satellite Renderer in my case renderbox01:7106Make sure firewall port 7106 is open. Start > Administrative Tools > Services
How To Set Up finalRender's Distributed Rendering.
finalRender allows up to 10 CPU's before additional licences have to be purchased.
Install finalRender on the slave machine. In Start > All Programs > cebas software > finalRender Stage-2 > fRstation, click Install fRstation as Service.
Click Start > Administrative Tools > Services and make sure the finalRender stage-2 service has started.
Add a Host (in this case renderbox01) under the finalRender tab in Maya's Render Settings DRender.
Turn on Distributed Rendering and Distribute Maps to allow textures to be sent to the slave machine.
When you render the current frame, the master and slave machines should now show 100% processor usage. To render out a sequence in Maya's Batch Render, set the Threads Number to 4, turn on DRender, enter the slave host names and hit Batch Render.
Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here

Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here Text-Here

Text-Here.
01. Global Illumination - Normal
02. Occlusion Pass - Multiply
03. ColourSpill Pass - Screen
04. Glow Pass -
05. Depth Of Field Pass - Lenscare DOF After Effects plugin by Frischluft (See Below)
06. Motion Blur - Furnace Kronos After Effects plugin (See Below)

In order to produce a flexible Depth of Field method, an image with scene depth information is required. We will then connect this to a plugin later on in After Effects. The image is rendered with a depth shader in the Maya software renderer. Use anti-alias or aliased 'jagged' edges depending on the results, in my case the image turned out best with anti-aliased edges. If the scene has several camera cuts the depth settings will have to be keyframed to the correct distance in the Extra Attributes section of the shader. Download the depth shader here.

The Depth of Field was achieved with the Lenscare DOF After Effects plugin by Frischluft. This allows you to add depth in post so it is entirely tweakable, using the previous image produced with the depth shader, without the need to re-render the entire scene. The plug-in allows you to interactively select the depth with the target button.


The images above illustrate the power of the Lenscare DOF plugin. Pull focus shots are also achievable by simply keyframing the changes in focal points, again selected with the interactive target.

Motion Blur was achieved with the Kronos After Effects plugin by Furnace. Again, this plugin allows the effect to be added in post so a full re-render is not required. ReelSmart Motion Blur is also a good alternative.







