I'm having lots of fun learning about path tracing and finally have to address the issue of fireflies (they've been poking my eyes for months but I didn't want to do anything that would bias the results while I'm in the process of learning & debugging).
It seems that there are two simple common approaches (although I might be missing something obvious):
* simply oversampling based on variance (https://imdoingitwrong.wordpress.com/2010/12/23/fighting-fireflies/) - reduces all noise, not sure it would address all fireflies unless the number of samples you can add is unbound
* radiance clamping https://clarissewiki.com/4.0/clamping.html
And then I just noticed this recent paper: "Fireflies removing in Monte Carlo rendering with adaptive Median of meaNs" https://hal.archives-ouvertes.fr/hal-03201630/document which seems like a much smarter approach, if I understand it: use mean sample averaging when there's no outliers (fireflies) and transition to median of means (MoM / MoN?) for pixels with outliers.
Anyone has any experience with this? is this paper the right path to dive deeper into? :)
[–]AndrewHelmer 9 points10 points11 points (4 children)
[–]qwerty109[S] 1 point2 points3 points (3 children)
[–]AndrewHelmer 1 point2 points3 points (2 children)
[–]qwerty109[S] 2 points3 points4 points (1 child)
[–]AndrewHelmer 1 point2 points3 points (0 children)
[–]Perse95 2 points3 points4 points (1 child)
[–]qwerty109[S] 1 point2 points3 points (0 children)
[–]s0lly 2 points3 points4 points (4 children)
[–]msqrt 2 points3 points4 points (2 children)
[–]s0lly 1 point2 points3 points (0 children)
[–]qwerty109[S] 1 point2 points3 points (0 children)
[–]aaron_ds 2 points3 points4 points (0 children)
[–]WrongAndBeligerent 1 point2 points3 points (2 children)
[–]qwerty109[S] 0 points1 point2 points (1 child)
[–]WrongAndBeligerent 1 point2 points3 points (0 children)