Tuesday, December 26, 2006

another year over, a new one on the way!

Happy Holidays!

Film Update:
I've stopped rendering the film in order to work on my demo reel. I'm looking for a job as an animator (using XSI in preference ;o). If anyone knows of an opportunity please email me : tiger at smokingmoose dot com.

Sunday, December 03, 2006

tweaking final gathering settings

My small render (250x141) is completed and composited, sent out for feedback and feedback received. Between the time I sent it out and received feedback I started the final res render (1280x720) and discovered to my horror that the final gathering pass was taking up to 23 minutes a frame to render. I went back in to the render settings to tweak them.

Here is a resume what Dave Lajoie wrote in a pdf about final gather settings (I think the pdf is from XSI 3.0 release -- some of the settings are no longer named the same -- you can get it here) :

"So to recap on FG accuracy and radius, [...] here are the different combinations and permutations:
• When Radius is small (0.01-0.2) and Accuracy is high (1000-3000), the render speed is the slowest but the render quality is the best. Usually these settings are suggested to remove FG flickering. Since each frame contains a lot of FG samples, it is suggested that you rebuild the FG map at each frame. Otherwise the FG map file will grow too rapidly and the renderer will run out of memory.
• When Radius is Large (1-100) and Accuracy is High (1000-3000), render speed is a little faster. This combination is perfect for smoothing out the FG result, giving the rendered image a more blurry effect. Again it is suggested that you rebuild the FG map at each frame since the FG accuracy is high.
• When the Radius is small (0.01-0.2) and Accuracy is low (100-500), the FG result is poor. I suggest that you use this combination only for preview purposes.
• Lastly, when the Radius is large (1-100) and Accuracy is low (100-500), the FG settings are ideal for an Image based lighting pass, as long as the image used for the lighting pass doesn’t contain too much high frequency detail. It is strongly suggested that you blur the image that you use for the image based lighting pass, since this allows you to use low Accuracy and a large Radius, which will, in turn, save precious rendering time.

Very important to remember:
If Radius is small, Accuracy needs to be high.
If Radius is large, Accuracy can be lowered."

For my smoking moose purposes I chose the 4th option - large radius and low accuracy using image based lighting. The min radius is set to 20, the max to 50, the accuracy is set to 100 and the filter is set to 1. I'm using a constant image for the image based lighting pass as well as a few constant color cards to bounce rays off. Since I'm also rendering a dirtmap pass I can get away with the larger radius and lower accuracy.

Also, Dave's pdf mentioned that high frequency textures should use lower radius and higher accuracy -- the braided rag rug is a very high frequency texture -- this could explain the high render times. So I used a trick mentioned in the pdf:

"Another trick which can save a lot of time is to use a ray_type shader, which allows you to use two different rendertrees, one for camera rays and one for Final Gathering rays. With this approach you can use a simpler rendertree to remove high frequency from the surrounding object’s surface."

The FG render pass is down to 2 to 6 minutes per frame! Of course the other passes also take time, so the total combined render time is higher than 6 minutes, but it's still a lot less than if I had continued rendering the FG pass with low radius and high accuracy!

The "rebuild" options refer to the Final Gathering Map and have changed since the pdf was written. I'm using XSI 4.2 and the options I have are:
  • Overwrite
  • Append
  • Generate
Since there my film has a lot of small camera moves and a lot of characters moving around, I've set this to append. See chapter 15 of the Shaders, Lights and Cameras user guide for the details.

Thanks to Dave wherever you are!.

Now on to fixing some of the stuff I received feedback on.