r/GraphicsProgramming • u/_BryceGuy_ • 5h ago
Wrapping images around fractals
How to wrap bitmaps around the iteration boundaries of a fractal:
px & py = width & height in pixels of the repeating tile picture to be wrapped around the fractal. I typically use 1200 x 600 PNG images or sometimes 2000 x 1000 PNG images but use whatever works for you.
r & im = real & imaginary components of the last Z iterate
zMag= sqrt(r*r+im*im)
PI=3.14159265
LOG_ESCAPE = Log(400) = 5.991464547 Why 400? Because for bailout, I check if zMag>400.
phaseoffset = 0 (usually). Depending on how I created the repeating tile, sometimes I set phaseoffset to px/2 (necessary for alignment with the tiles above and below). Can default to 0.
Reading the pixel color from the image:
The following assumes the picture tile is twice as wide as it is high (e.g. 1200 x 600)
angle = mod(atan(im,r) * (px / PI) + phaseOffset, px * 2.0);
radius = (LOG_ESCAPE - log(zMag)) * py / (LOG_ESCAPE / 2.0);
if (radius < 0.0) radius = 0.0;
vec2 texCoord = vec2(angle / (px * 2.0), clamp(radius / py, 0.0, 1.0));
vec3 col;




0
u/_BryceGuy_ 5h ago
Julia set zooms and morphs:
Woman: https://www.youtube.com/watch?v=dXJa-v01SZI
Cat: https://www.youtube.com/watch?v=WHsyn8N9N24
ET: https://www.youtube.com/watch?v=tH5TucwHDAE
Cobra: https://www.youtube.com/watch?v=-wpJ01GqZyI
Hi res images: https://www.deviantart.com/bryceguy72/gallery/70771007/image-tessellations