PDA

View Full Version : eliminating flicker in animated final gather scenes


davidfro
04-14-2006, 11:20 PM
I searched the forums up and down trying to find a solid answer on how to get rid of flickering in animated final gather scenes with mentalray. This problem has bothered me for years, I never have figured out how to fix it. Would everyone please take a few minutes and write down the different tips and tricks to get rid of flicker in a nice step by step fashion. This way, we'll have all the flicker tips in one place.

Davido Hyer

rmatt
04-15-2006, 05:03 PM
http://www.jupiter-jazz.com/wordpress/wp-content/data/tr4kv2/html/index.html

is a good place to start.

also check out the LAMRUG website.

rmatt

AlpahKaneda
04-18-2006, 06:10 AM
This is taken from that link given by rmatt Just so you dont have to go looking for it...even tho reading the whole link will incredibly boost your knowlege of Final Gather, so get around to it sometime.

I was soo happy when I solved this problem!:)

Reduce low-frequency flickering when using FG in animations


This is a two steps approach which requires mental ray standalone since Maya 6.0 does not provide support for the 'FG only' rendering mode use in step 1. 'FG only' just creates FGmaps on disk, no images are rendered when this mode is used. These maps will contain only FG precomputing points.


So, you are going to render an animation, say from frame.1 to frame.100 and the trick here is to pre-render in a first step one single FGmap or multiple FGmaps every n-th frames.

Notice that multiple FGmaps are useful in two situations:


when single FG map size is too big
when there are many hosts (more than mental ray can utilize effectively for multihosted rendering), so multiple FG maps are required to parallelize step 1 over many hosts.
If none of these apply, rendering with multiple FG maps is roughly same effective as rendering with one big finalgather map.


Either you have one or multiple FGmaps they will both act as helper(s) in the following Step 2, where we will use such FGmap(s) without evaluating any FG precomputation point (rebuild freeze), only eventual rendering points will be computed.


Step 1 - Rendering FG only


The first thing to do is decide if you want one single FG map or if you want to use n-FGmaps every n-th frames:

1.a - Rendering one single FGmap file


set finalgather 'only'

set FG rebuild to 'off'
specify one single FGmap fine name
Render each n-th frame (n depends on the camera movement speed and the scene).
You will end up with one single FGmap file which contains irradiance informations sampled every n-th frame allover our timeframe. Since rebuild is off we are sure we didn't recompute any point, but just new points and those were appended to the single FGmap.



1.b - Rendering multiple FGmaps files (say we render every 10 frames, keep in mind the gap depends on the camera movement speed and the scene)


set finalgather 'only'

set FG rebuild to 'off'
render frame 10-th on host A with a FG name ["map010"]
When this is ready, render frame 20-th on host A with ["map020", "map010"]
and *simultaneously* render frame 30-th on HOST B with ["map030", "map010"]
and so on...




With multihosted rendering, the idea is to render at least 1 frame on a single (or few with multihosting) host, and when render further frames using all maps which are already finished.

If possible, it is a good idea not to interleave subsequent frames across hosts, but make host A render maps for each 10th frame in the range 0 to 100, host B render each 10th frame in the range 101 to 200, etc. This reduces the amount of redundancy.

You will end up with n FGmap files which contains irradiance informations sampled every n-th frame, since rebuild id set to off each FGmap will contain only the new FG points compared to the previous FGmap, without recomputing any point. Obviously the first map will contain a complete set of points for its relative first frame.


IMPORTANT: In this phase no images are rendered: only FG map(s) are generated.

Step 2 - Rendering with rebuild freeze

In this phase you are not calculating any precomputation FG points, only rendering FG points, and those points won't be added to the FG maps on disk. This logic should guarantee a more coherent set of cached irradiance points trough time, where extra points are gathered only when requested at rendertime, therefore producing less flickering.


finalgather 'on' (or finalgather 'fastlookup' if you are also using GI)
set FG rebuild to 'freeze'
specify either the single FGmap name of step 1.a or all FG maps created in step 1.b (note that using as many of FG maps as possible is recommended).

SirRender
04-18-2006, 07:17 AM
Great info guys.

Are theses technique still necessary in the latest version of Mental Ray that comes with Maya 7.0.1?

If not, can someone breakdown the process for us all?

Thanks in advance!

davidfro
05-01-2006, 06:36 PM
This is a two steps approach which requires mental ray standalone since Maya 6.0 does not provide support for the 'FG only' rendering mode use in step 1. 'FG only' just creates FGmaps on disk, no images are rendered when this mode is used. These maps will contain only FG precomputing points.



I saw this when I was searching around, but it says that it requires mentalray standalone. How do I do this without mentalray standalone? Thanks for the feedback.

Davido Hyer

floze
05-01-2006, 06:52 PM
I saw this when I was searching around, but it says that it requires mentalray standalone. How do I do this without mentalray standalone? Thanks for the feedback.

Davido Hyer
It is possible from within the actual mentalrayGlobals node. Type 'mentalrayGlobals' without quotes into the quick select box and set the Render Mode to 'Render Final Gather Maps'.

With maya 7 there comes a tool in the Alias\Maya7.0\bin folder called fg_copy, which lets you copy together several finalgathering maps.

One thing that does work with the standalon only is the deepfreeze option though. With deepfreeze on there wont happen any additional fg calculation during rendering, which is not the case with maya 7 right now.

davidfro
05-01-2006, 07:17 PM
I checked out the mentalrayGlobals, and I can't find the render final gather maps option. I forgot to mention that I'm using Maya 6.5, I don't know if that makes a difference. I'm still waiting for my company to upgrade to 7. Do you know where I can find that option in my version of maya? Thanks.

Davido Hyer

Karlfucious
05-04-2006, 08:03 AM
In the outliner uncheck DAG objects only. Now the Mental ray globals should be in there. Select that and under the attribute editor there should be an option that says Render mode. Change it from Full render to Render Final Gather Maps.

Thanks for the tip about the fg_copy floze. It should come in verry handy. Does it work with multiple cameras?

Morph106
01-10-2007, 04:31 AM
karlfucious, floze, thanks for helping me to understand how to use mentalrayglobals a lil better.

I'm not articulate in describing things but would shadow blotches in an fg only animation where a cube is revolving around its own pivot, classify as fg flicker. I always thought flickering was the moving grain visible in sum renders.

If I could get an assist on this, you guys would be gods among men! At the moment, I continue to get moving blotches within the shadow of my cube as I revolve it 4 a render test. If I could learn how to set the fg correctly, this means I could move onto animating a car sequence possibly...that'd be sweet!

I've attached a link to a lil animation test, hopefully you'll be able to see what I'm trying to describe..

http://www.youtube.com/watch?v=R7NW_JKKa1k

but ryt now, im as lost as a mofo! :-)

leif3d
01-23-2007, 09:39 PM
That's the exact problem I've had for years...even now with version 8.5....I can't get rid of that freaking flicker in animations!!...trust me ...I've tried EVERYTHING there is....times 10...:banghead:
I have a hall...with objects that have car shaders...and these bleed color on to the hall walls...but it flickers like hell...sad...

CGTalk Moderation
01-23-2007, 09:39 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.