A tip for pre-rendering and final rendering
I have been studying why some of my renders have "fireflies", the tiny pixels of white that appear when you do a pre-render or a full render. It is not about caustics - even with caustics off the speckles still appear, and without caustics, the light bounces are too unrealistic if you aim for an accurate scenery and light is lost.
However, I have discovered why this happens: is a calculation problem, in other words, maths. Maths are wonderful, but they are loathsome (at least for me). Lets say you do an awesome equation and you end with like 1000 decimals because your result isn't a round number like 25 or 666. These decimals turn out into those damn fireflies. It is not a problem reserved to Blender though, it happens in all 3D softwares, but suppose the top notch have filters for that, well, Blender does not, and you can run over 9000 filters and still get fireflies and everything ends so blurred and so dark it sucks.
But I found the way to fix this and is by getting rid of those decimals, and the answer is at a small drag of the mouse. I'll summarize:
When you create a light or lights, these lights start to bounce around the surroundings as real light does. That is based on calculations of how light works on real life.
When the calculations have thousands of tiny decimals as results, fireflies appears every time a tiny pixel of light bounces but fails to calculate the real falloff of "photons" that should bounce from that surface.
In order to fix this, you must change the size of the light sources.
Not agree or can't afford to change the size of the lights until the fireflies disappears? Instead of changing the size of the lights, change the size of the FULL SCENE. Select everything (even camera if it is there) and resize it to be bigger than that. The fireflies miraculously will disappear, because the math results will have less decimals and in the end, more accuracy at the hour of bouncing the lights. Sometimes you don't need to do a great change to the size of a light to get rid of the fireflies - the changes are milimetrical, I use SHIFT to resize the lights 1 or 5 pixels of size and is enough to get rid of most of them, if not ALL. I even changed the HDRi I use for the surroundings and I saw that the backgrounds with no sun but still enough bright are enough to light up everything (and in case it is too dark, you can ramp up the Strenght of the emission of the HDRi to your needs). I also found out that by changing the size of a single light (a light lamp from the distance for example), most of the fireflies are gone.
I don't know about any programming but I know how maths sucks, and programming goes smoother and more accurate when maths are small to handle. Alright, that was the useless tip from me for this day. It works for me at least on several different renders, I can even force fireflies to appear if I add a bunch of ridiculous decimals to some of my lights, so if this tip doesn't work for you, try adding more bounces to the lights or culling some (8 bounces works for me because 8 is a magic number, duh!).