Getting rid of fireflies in my render


#1

Hi all, been doing all sorts of tests to get rid of the fireflies in my render, with limited success. Here is an example of what I am talking about.

You can see it most on the inside of the letter D and on the black tiles.

The current render setting for this image have 32 passes with 2 samples. I have 2 DL samples and 2 IBL samples. All bounces are limited to 4 except volume which is 2. Max ray intensity is 0.9 and Russian roulette start bounce are at 16.

Seems the fireflies are coming from the direct lighting. I have tried the denoiser, but it seems to be very aggressive and the image quality drops.

Any thoughts on what I could do to improve the result?

Thanks.


#2

Hi,

Could you provide the scene so that we can have a look (via a private message if you prefer)?

The best would be a ready-to-render appleseed scene.


#3

Hi Franz, sure no problem. It is attached.

Title_Render_Appleseed_V03_frame75.appleseedz (22.7 MB)


#4

Hi @fxgogo,
Interesting scene with emissive material. I tried a bit and got some improvement, mainly more sampling and some tweaked settings. There are still some fireflies left, so my settings may be improved upon further. The checkerboard material of the floor didn’t get exported. You may have used a .oso file in the shader/blenderseed directory. You can also reduce reflectivity of the glossy floor material, this should help as well.
Some comparison:

Title_Render_Appleseed_V03_frame75_mod.appleseed (54.7 KB)


#5

That does look way better. Thanks for the help Mango3. Gonna look at your settings and apply to the original scene. Not sure what happened re the floor, I suspect, I have a very messy material node tree on that object.


#6

Two other ways to find the source of fireflies:

  1. Turn off lights one by one to identify the light source that is invoved in those fireflies.
  2. Unique in appleseed: use light path visualization!

Here is the procedure:

  1. Start appleseed.studio and load your scene.
  2. Optionally, if appleseed cannot find some OSL shaders:
    Edit the search paths by right-clicking on Project and selecting Edit Search Paths.
  3. Set the pixel filter to Box with radius 0.5 (so that fireflies lie in single pixels)
  4. In the rendering settings:
    a. Use 1 pass and 1 spp.
    b. Check Record Light Paths at the bottom of the Unidrectional Path Tracer panel.
  5. Render in Final mode by pressing F5.
  6. Find a firefly and click on it. A firefly will have high RGB values as indicated on the top right of the window.
  7. Click on the Light Paths tab on the top left tab.

By default all light paths that contributed to the chosen pixel are shown at once. Use the left & right arrow keys to view individual light paths (you can also use the toolbar buttons). Light paths are ordered from greatest to smallest contribution to the pixel. Note that you can also select a rectangular block of pixels instead of a single pixel.

Here are a few examples of fireflies:

When you display an individual light path, the details of that path will be printed in the console. Here are the details of the top two light paths for that last image:

As you can see, the first path carried a total radiance of 463 (watts/m²/steradian) while the second only carried a radiance of 0.000293 W/m²/sr, i.e. pretty much zero. So clearly the first light path is the cause of the firefly.

What I conclude from this visualization is that in your scene, fireflies are simply due to highly glossy reflections of a bright but very small feature (the emissive letter outlines).


#7

Wow, that is a cool feature. I definitely will try it. I came to the same conclusion, but using your first method. As soon as I removed the emissive shader from the illuminated parts of the letters, the fireflies dissappeared.

I am thinking I will rather get the nice strong reflections in compositing, but the glow from these emmissive materials, might have to go.

I have attached two renders that I did last night. Using your settings, I got a 38 minute render, and the fireflies are dramatically reduced. Was there any of the setting in particular that aided in reducing them?

The second render has increased passes, 6 or 8 I think, so the image noise and firelfies are reduced even more, however the render time was just over four hours.

This is an animation, so I will post it once it is done. Maybe with some material tweaks first.


#8

Your scene is prone to fireflies because you have highly glossy surfaces (floor), small bright emitters and high contrasts.
Generally, without resorting to clamping, two things can be done in this case to reduce fireflies:

  • Increase the size of light sources (small, highly bright emitters are difficult to sample for unidirectional pathtracer)

  • Increase the number of samples (unfortunately this prolongs render time)

Specifically, what I have changed:

  • switched from Uniform to Adaptive Sampler with Min. Samples 32 - Max Samples 128
  • increased Max Global Bounces from 4 to 12
  • increased Light Samples multiplier from 2 to 4
  • lowered slightly Max Ray Intensity from 0.99 to 0.95
  • increased Russian Roulette Start Bounce to 20

I’m aware that these settings increased render time considerably --especially for an animation-- but if the priority is to get a clean render without changes in the scene there is no way around more samples.