Fire Fly Remover

  • August 03, 2016
  • 422 Downloads
  • 1 Like
  • Blender 2.7x
  • Render: Cycles
  • Creator: jakaboxjumping
  • License: CC-BY-SA
You must be logged in to download.

Description:

The node set-up is a quick and easy to use method of reducing fireflies.

Fire flys are not always white spots, they can be any colour, and this makes it difficult to interpret what is and what is not a fire fly. The node set up is fairly smart, it will look at each pixel, it surrounding pixels and edges and use them to decide if it is a fire fly; however as a result it is fairly complex:

An simple overview on how this works in steps:

1) The initial image is taken for each pixel the value of surrounding pixels is summed.

2) If the value of the surrounding pixels is smaller than the current pixel, that pixel is marked as white, everything else is black.

3) The node will then use the z-depth of the image (is not always required, but is used for best results) to get the edges of the objects, the edges are subtracted from the black and white image from step 2.

4) The difference between the average colour (using the surrounding pixels to calculate it) and the original colour. The luminance of this is gathered, which is added to step 3's black and white image.

5) Edges in the image are detected by using a blur then a kirsch, the result (after a little math) is subtracted from the black and white image from 4.

6) Using a mix, the average colour image from step 4 and the initial image is done using the black and white image.

7) The outputs are given.

Comments:

  • mramshaw profile picture
    mramshaw

    Interesting approach, as far as I can tell the noise is "grey-scaled".

    Looks very much the same as a 'hot pixel' fix. The noise is till there, but not as ugly.

    The results look good, but I cannot speak to accuracy.

    Of course, if accuracy is important then more samples is the way to go.

    Update: I tried this with the pending 'Coffee Bowl' and the results were off.

    It looked like the problem was that the Highlights hue was incorrect.

    (In this case cyan-ish instead of orange-ish). Muting 'Normalise' seems to fix.

    Written August 05, 2016
  • jakaboxjumping profile picture
    jakaboxjumping

    Thankyou,

    The results were off because of the ‘normalise’ node, so in the update I removed it and set up the clamp instead. Also there were accuracy errors with detecting the fire-flies which I have rectified now (hopefully).

    Edited August 06, 2016
  • Wig42 profile picture
    Wig42

    Thanks mate, this is awesome.

    Edited August 07, 2016
  • jakaboxjumping profile picture
    jakaboxjumping

    No problem!

    Written August 07, 2016
  • Jonas108 profile picture
    Jonas108

    Oh this sounds great. Defintely gonna have to try it. Thanks for sharing.

    Written January 05, 2017
  • jakaboxjumping profile picture
    jakaboxjumping

    I hope it is useful to you!

    Written February 18, 2017
  • Marek99 profile picture
    Marek99

    How it is instal? Iam beginner

    Written February 18, 2017
  • jakaboxjumping profile picture
    jakaboxjumping

    This page gives you the step by step stages.: https://bwide.wordpress.com/2012/12/08/how-to-useinstall-node-groups-in-blender/

    You will need to append the node tree named 'Fire Fly Remover'

    Written February 18, 2017
  • Romer profile picture
    Romer

    Hello, I have a question about the license. This was posted on a facebook group and people claim that because of the license you have attribute credit, but only if you re-distribute the code or make alteration. What I understood is that everything you make a render and make it public, if you use this node set up you have to give credit. Can you clarify which is correct?

    Written February 19, 2017
  • jakaboxjumping profile picture
    jakaboxjumping

    It is only if you re-release the files when licence would be important. If you release a blender file with it in, the file should be released under the same licence. So the first one you mentioned would be correct here.

    Written February 19, 2017