Thursday, November 29, 2012

Optimizing the scene for final rendering

Everything was OK up until this point, except for the render time.
I am aiming for an animation that consists of about 900 frames and I don't have more than 3 days to render. The render time at this moment at 800x600 resolution was 14 minutes. 3 days means 4320 minutes in total, which for 900 frames allows me a MAXIMUM of 4.8 minutes/frame.
I need to lower my rendering time below 5 minutes, that's the key.

But, how to do this? This is a third of the current render time. I need to look at the rendering process and identify the most influencing factors.

Global Illumination has the biggest impact on time it takes to render. This is the process where the program looks at your lights and determines what surfaces they hit. Then, the program needs to calculate how the light bounces off that surface and illuminates other surfaces as well. The light keeps bouncing until it completely decays. The color not only bounces with its original color, but picks up the color of the surface it touched, hence making the calculation of these procedures even more complicated.

So, my idea was to somehow play around with the GI to get a decent enough result, but with less than a third of the current render time.

I have a very animator friend, Kosza Arnold, who has created several animations with a lot of environments in them. I have talked to him about my GI issue and he suggested I look into Lightmap baking.

Lightmap baking is the process of taking the Global Illumination information and putting it straight into the color textures of your objets. Up until now, the color of my objects contain the pure color information, blended together with the Ambient Occlusion map. What Lightmap baking does is that you put the illumination information straight into the color map. So, basically that is the color and you don't have to render the GI out for each frame.
This would significantly lower my render times.

I've done research on how to go about this technically and have found an amazing plugin for 3DSMax, called Flatiron. Flatiron allows you to create Lightmaps in a very fast way. Although, I did not really know how to properly use the plugin at first, as the tutorials provided on their website are not thorough enough. I took a lot of time experimenting and re-doing the lightmap baking process, but in the end it completely paid off.

The result was that I had a scene in my viewport, in FULL REALTIME looking like my 14 minutes long render. Basically, rendering out a frame with all the necessary passes took around 50 seconds. Compare that to 14 minutes and it becomes clear how innovative this procedure is.


No comments:

Post a Comment