mathr / blog / #

mightymandel updates galore

mightymandel is an OpenGL 4 based Mandelbrot set explorer using perturbation technique with series approximation. Until recently it didn't have automatic glitch correction, but I added it, using connected component labeling with union-find to find the glitches. It goes through the glitches, finding new reference points that hopefully fix the glitches. Only the glitched pixels are re-rendered with each new reference, the others are fine and don't need more calculations. Without glitch correction the effect is ugly (here there is glitch detection highlighting them in red):

glitchy

The same location with automatic glitch correction, using 30 reference points total:

corrected

I also tidied up the zoom sequence generation code, so you can render videos with a zoom assembler. It saves a frame each 2x zoom level, to stdout (but I might change this as its really annoying if you forget to redirect it). And finallly, I added tiled rendering support, for rendering images bigger than the GPU can handle. It saves a sequence of files, which you can stitch together with xargs and pnmcat (see my previous post). Here's an image that was rendered with 9x9 tiling, which I downscaled for antialiasing (click it for the 6x6-supersampled version at 1080p):

down the rabbit hole

I had a nightmare fixing unsightly seams at the edges of each tile, and the automatic glitch correction is a bit fiddly - sometimes it takes a really long time to find a reference, and in that time the GUI is not responsive. And occasionally it fails to find good references, so there are visible glitches still. Needs more R&D! Oh, and I ported it to use glfw3 instead of gtk2 - the code is much shorter and it's a smaller dependency. Still needs glib though (for regex parsing of parameter files).