> "Adaptive filtering for progressive Monte Carlo image rendering" (2000) by Frank Suykens , Yves D. Willems
> https://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.142.2366 (links to 2.4MB PDF)
> "The Fractal Flame Algorithm" (2003-2008) by Scott Draves, Erik Reckase
> https://flam3.com/flame_draves.pdf (22MB(!) PDF)
Seems to work well!
I haven't yet optimized the first pass with fixed radius, if I use a separated blur kernel (just blur horizontally then blur the result vertically) it should be a lot faster for most images (for sparse dots it might be slower, but they're boring).
looks better with density estimation kernel width factor increased (maximum width is actually a bit lower, but this scaling means the first bunch of samples are blurred smoothly before the later samples with narrow kernels tighten things up)
Switched from float to uint32_t for the accumulation buffer, but at level 14 i got some white artifacts which I think are due to overflow wrapping back to 0. Trying again with uint64_t.
uint64_t fixes the artifacts. Didn't think to measure the speed before/after.
Welcome to post.lurk.org, an instance for discussions around cultural freedom, experimental, new media art, net and computational culture, and things like that.