The Art of Noise

Noise sucks! Nobody wants noise in their renders.

Why do renders ever have noise in the first place?

The style of algorithm that many renderers (including FPrime) use to compute some effects, especially area light shadows and radiosity, can produce noisy pixels. The renderer is making a measurement of shadows or radiosity for every pixel, and each of those measurements has small errors. Since every pixel is independent, those errors change every pixel, so each pixel has a slightly different RGB. This looks like static in your image: noise.

Surprisingly, a little bit of noise can look good, since the image will be less sterile and "CG" like. But usually noise is something that renderers try to minimize, since you could always add noise yourself with a film grain or compositing pass. . FPrime uses a variety of internal algorithms to reduce noise, with fancy names of "Metropolis Monte Carlo in FPrime 1.0 or "Cascaded Metropolis" in FPrime 1.5.

Why don't all renderers have noise?

One radiosity approximation called photon mapping avoids noisy pixels entirely. Photon mapping is not accurate like a per-pixel Monte Carlo calculation, but can be much faster, and its errors don't change every pixel. The net results tend to give very smooth, good-looking radiosity results. Photon mapping has its own deadly artifacts, especially at edges of objects and in large scenes. It also cannot reproduce sharp features very clearly. Animation with photon mapping often has much more serious problems with flickering and popping since the computation is just an approximation, and longer rendering time or higher quality settings will not make the artifacts disappear

LightWave's own renderer gives you the versatile option of using either style of radiosity. It also has a very effective post-process blur called Shading Noise Reduction which helps hide noise even when using Monte Carlo. But FPrime's design guarantees interactivity: we don't want you to wait! Since FPrime has no preprocessing, photon mapping is difficult. Since FPrime has no postprocessing, blurring techniques like Shading Noise Reduction are also difficult.

Lighting Quality: Optimizing FPrime

High quality images need both good antialising (mostly for object edges) and also good, low noise, radiosity. Using too many render passesto improve edges is a waste since there's really no visible difference in an edge between a 20 pass render and a 2000 pass render. Even 10 passes is usually more than enough even for high quality final renders. Texture aliasing, motion blur, and depth of field are all also improved by multiple passes so sometimes you need to use more. It's scene dependent.

FPrime's "Lighting Quality" control in the FPrime Master panel lets you tune area light and radiosity quality. A high value will give you beautiful, noiseless, radiosity in just a single pass! But higher quality means that each render pass will take longer. To get the best output quality in the shortest time, you must balance the render noise with the number of passes with Lighting Quality. This is pretty much all you need to tune, but it still takes a little experimentation.

The process is simple: you need to first determine the number of passes you expect to need in order to get your edges antialiased properly, then you need to pick a Lighting Quality value that will make noiseless (or minimally acceptable noise) radiosity and shadows at that number of passes. If you ignore this balancing, you may find yourself with a render where the "noise never disappears" no matter how many passes you render, or the opposite case where even one render pass takes hours.

Lighting Quality

The Tuning Process

You probably have a rough idea of the minimum quality render you're willing to accept. Your goal is to get both edges and radiosity to an acceptable level simultaneously. If they don't reach your goal at the same time, your final render may be twice or even ten times slower than necessary.

First decide how many passes you require to get your geometry edges to the antialiasing level you want. You may know this number from experience: 6 to 9 passes is usually enough for edges. Higher print resolution renders usually need even fewer passes to be satisfactory. However, texture aliasing, motion blur or depth of field may make your scene require many more passes. You can make a test render with your scene by rendering with Lighting Quality set to 0.0 and finding the minimum number of passes you'll be satisfied with. Just ignore radiosity noise during those quick tests

Low res

Next, find the smallest Lighting Quality level which gives a barely-acceptable noise level in the render at that same number of passes you found edges need. FPrime's Lighting Quality setting defaults to 0.5, but you can increase it (even beyond 1.0). Finding this level requires test renders. You do not need to render a full resolution test! Rendering even a 160x100 image will still give you a good feel for the noise level of a render, and a lowres render will be much faster. (A 160x100 test render is 30 times faster than an 800x600 render.)

Render the lowres test frame with different Lighting Quality settings, each time rendering to the number of passes you determined you needed for edges. You're looking for the smallest Lighting Quality that gives barely acceptable noise levels at that number of passes

Once you've found this Lighting Quality level, you're done. Just use that Lighting Quality for final full resolution rendering. When you're doing the final render, you know already the minimum number of passes you'd like to go to, but it's expected you'll render beyond that quality if you have the time. The idea of tuning to reach to a "just barely OK" edges and "just barely OK" noise at the same time is to make sure FPrime is working on the two qualities in proper proportion. Your final render certainly does not need to stop at that "just barely OK" level.

Speckles

HDR backgrounds

One of the worst grainy render situations is using HDR images for radiosity lighting. Sharp, bright, high contrast pixels in the HDR image can cause especially strong noise in both LightWave and FPrime renders. There's a really easy and very effective solution which works for both FPrime and LightWave. The diffuse shading of radiosity doesn't need any sharp details in the image, and in fact cause these sharp details are what cause noise. But mirror reflections of the backdrop do need a sharp map! So all we need to do is to make radiosity see a soft (blurred) map , but reflections see the sharp version of the same map. This is easy to do by simply blurring and size=2>reducing the resolution of the HDR backdrop image. Then use the original,>sharp high-res map as a spherical reflection map (usually using Raytracing + Spherical mode in LightWave's Environment surface editor tab). In the image below we rendered a ball with such a setup. The render times were the same, the only difference was in the HDR image map used.

More Noise Tips
  • Do your quality tuning and final renders in FPrime's Render mode, never in FPrime's interactive preview. FPrime Render mode is much more efficient since it has no interactive display overhead
  • If your first render pass is noiseless then your Lighting Quality is set way too high
  • If you keep rendering pass after pass and radiosity noise never goes away, Lighting Quality is set way too low.
  • Don't change Lighting Quality in the middle of rendering! That "bakes in" noise that FPrime will take forever to remove. It's better to start over.
  • FPrime respects LightWave's per-light Area Light Quality setting, you can tweak each light's area light shadow quality independently
  • Extra radiosity bounces results in more noise. More than 2 bounces is almost never needed.
  • The incrementing number displayed in FPrime interactive render window numberdoes not relate to FPrime value nor to FPrime Render quality levels. It's a progress meter, not a quality measurement