Alright, this was a really interesting challenge because of the specific nature of this scene. Getting flicker-free results is sometimes not too hard, and in fact I had assumptions about this scene before I started tweaking it that turned out to be wrong. I got 99% of the way there within the first day, but there are some very subtle interference patterns that I believe result from stretches in the texturing and how the scene is constructed, and those were really hard to get rid of without totally blowing up render time. Fortunately I think I've arrived at something that should work well. I attached a TGD above that works pretty well, though not 100% perfectly, and I'll explain what I did below for your benefit and others.
My first assumption was that, because this scene does not involve any objects, antialiasing should not be very necessary. Usually with terrain and displacement it is the Detail setting that most affects smoothness. However in your case, due to the high frequency patterns *in* the texturing, increasing AA to rather high levels became necessary. I finally settled on AA12. This worked better than very high main detail (1.0) because it renders faster and still eliminates the aliasing/moire. That being said the 0.5 scene detail version is less "clear" and "sharp" than some of yours, so you may wish to increase detail and possibly decrease AA.
One assumption made earlier in this discussion that was wrong (and I never expected to be right) was that atmosphere samples had something to do with the noise. There really is no indication of atmosphere undersampling here, so I'm not sure why that came up, but it definitely was not a solution. In fact my final version has *reduced* atmosphere samples to 12 and it still looks fine.
Another incorrect assumption on my part was that lack of soft shadows would be contributing to some of the aliasing, but in fact adding soft shadows had only a very minimal visual effect, and it was not particularly an improvement.
You'll note that the GI settings are not particularly high, and they don't really need to be. 1 for relative detail and 4 for sample quality. It's Sample Quality that is usually the most important for flicker reduction. I also put blur at 25 and turned on Supersample Prepass (GI) as this can help avoid GI inconsistencies.
The AA filter also had a minor but noticeable effect. I ultimately settled on Mitchell-Netravali because Cubic B-Spline was too soft given the detail level used. With a detail of 1 Cubic B-Spline would look better, but still may be too soft. I did not find C B-S to particularly help the flickering in this scene, but in some cases it is a better option.
Both the Jitter settings are on (Microvertex and Detail). However often times these can cause variations between frames, so they may not be desirable in animation.
Now here's the real critical stuff I did:
You have "popping" in shadows and GI, especially at the edges of the frame. This is usually caused by geometry that is out of frame not being calculated with enough detail. The Ray Detail Region Padding and the new GI Prepass Padding settings both allow you to increase the quality of off-camera calculations so that the in-camera scene is correctly and consistently affected by these unseen elements. For example, if a mountain that is off-screen casts a shadow onto the foreground, without some padding this shadow may not show up at all, may show intermittently in an animation, or may just render otherwise incorrectly. The padding settings allow you to adjust how much is calculated outside the camera's view. Of course this increases render time, but note that it does not have to fully render the regions outside the camera, it just performs the calculations necessary to determine off-screen element's contribution to shadow casting and global illumination.
Ultimately you needed both Ray Detail and GI Prepass padding. Both these settings control extensions to the calculation beyond the camera view *as multiples of the area of the camera view*, and on all 4 sides. So in other words if you set it to 1, it will extend the calculated region by an amount equal to the camera view area in all directions, resulting in a calculated area 3 times wider and higher than normal. For this reason usually lower values, such as 0.5, are fine. I used .25 for both, meaning the calculated area ends up being 1.5 times larger in left/right and up/down directions (0.25 extension on each side). Lower values might even have worked, but I arrived at these quickly and the render time contribution was reasonable.
Another important setting was Lock Subdiv to Frame. What this does is "lock" the geometry subdivision/generation *for ray traced geometry* (i.e. geometry generated for shadow casting and reflections) to a particular frame of an animation, which means the shadow-casting geometry isn't going to change between frames. This only works for small camera movements though since the geometry is calculated for 1 specific frame, and if your perspective to that geometry changes significantly, the detail may no longer be sufficient from what was calculated on the frame chosen. I've picked Frame 35 in this case as it's about half way through the animation, so this basically means the geometry is accurately calculated for the middle frame and accuracy decreases earlier and later in the sequence. The benefit of this vs. frame 1 is it distributes the inaccuracy more evenly throughout the animation, so that the end frame is not *really* off (which would happen if you set it to Frame 1).
Notice also that Detail Blending is *off* in this case. It should normally be used in animations, even though it increases render time, it did not seem to make much difference in this case, and increased render time fair amount so I left it off. As noted, I would recommend using it in almost all normal animation cases, though it may be worth testing a few frames with it off if render times are too high.
Finally, I used some advanced settings controlled in a special node that is not yet accessible in the UI. I've included it in the TGD for reference, it's called "Render subdiv settings 01" and it allows you to control some more specialized renderer settings. Generally these should not be messed with, but I believe it helped in this case. When we make this node more easily available we'll include documentation that fully explains what each setting does, but for now it will have to remain somewhat vague as I don't know precisely what each setting does (I arrived at these setting based on past recommendations from Matt and some experimentation of my own).
So there you go, I hope that explanation helps. We'll be working to improve renderer output stability over time, but with the right settings things are already very good. Many other renderers deal with similar issues when in motion (e.g. GI flickering) and there are many strategies (such as frame blending) to deal with them in post. Sometimes it's better just to address smaller issues after rendering, rather than crank up all settings and having each frame take forever.
- Oshyan