Global Illumination Mapping Tutorial

So, I finally manged to write another tutorial about two years after I wrote one on IK/FK switching, if anyone ever read that? I dont even know if it still exists anywhere.

This one is about using Global Illumination in production. Very often you would like to use GI, but because of the time it takes to render it, it's really hard to use it in production, since you know you will be changing your lights very often to find the look the clients want. Enter, this little trick.

Let me warn you, it's not true physical global illumination, since you wont be getting things like color bleeding, but it should be close enough to use, and fast enough that you can live with it.

 

 

The first thing you want to do is save out your scene. This should be the approved animation and camerea etc. Now, select all the objects in the scene and apply a completely white material, with no specular whatsoever on it.

Also, create a skylight lightsource, and an omni light. Turn off the omni light, since it's only there to get rid of the default lights.

Make sure the background is black.

In your rendering dialog, turn on Lighttacer under advanced ligting, and set your samples to 25 and maybe make your undersampling even courser. This first pass is just a speed pass, so dont worry too much about it. Also, as you will see later, we are able to blur the results etc.

 

 

 

 

Ok, time for your first cofee break. You'll need to render the sequence out like this. Render a framestack of files. Very often you will be able to get away with rendering at half resolution. Go ahead - render. Oh, remember, no motionblur! My scene renders in 20-30 secs per frame on my 2 ghz laptop, so on a workstation it should be pretty fast.  

Ok, with that done, it's time to reload your original scene, where you have all your materials assigned.

On each of the materials, assign a bitmap texture to the self illumination channel, and use the image sequence we just rendered and map it on with the environment: screen option.

This could really be done with a script, but i just copy the texture to a slot in the materail editor, and instance that into my materials by hand.

You should now be able to render your scene really fast, without advanced lighting on. Make sure to get rid of the default lights first, since the intensity will be that of the image sequence you rendered. We'll get back to that.

This image rendered in 7 seconds with some raytraced reflections etc.

Now lets start lighting it. First we need to turn down the ambient strength of our sequence, by turning down the Output amount under Output in the texture where we put the sequence in. This is why we instanced it to all the materials. I turned it down to .3, but see what fits your scene.

Now start lighting the scene like you would normally, with point and spot lights.

I am now rendering frames at 7-9 seconds. Which is pretty good!

If you dont like the quality of the GI map, you can rerender it when you have the time, and just replace it. You could also blur it in a compositing program, and if you are really hardcore (yeah, right) you could render it out with object id's and blur accordingly, so you dont loose too much details on some objects etc.

Now you can go ahead and render, with motionblur, depth of field and what not, fast. So when your client asks for a lighting change, it wont be a problem.

I hope someone can use this for something. Here's my rendered animation, the quality is not too good, but i hope you can see the point.

Peter