Welcome to Fractal Forums

Fractal Math, Chaos Theory & Research => IFS - Iterated Function Systems => Topic started by: claude on November 27, 2016, 09:52:35 PM




Title: continuous escape time for graph-directed IFS
Post by: claude on November 27, 2016, 09:52:35 PM
In this blog post I presented continuous escape time for regular IFS:
https://mathr.co.uk/blog/2011-12-31_the_sky_cracked_open.html

Recently I extended my implementation to graph-directed IFS, where which transforms are allowed next depends on the previously applied transform.  Essentially it boils down to having one calculation texture per graph node - in OpenGL, GL_TEXTURE_2D_ARRAY is perfect, as you can sample from any layer according to a variable (which may vary according to transform index).  You can ping-pong between two GL_TEXTURE_2D_ARRAY, looping over layers with glFramebufferTextureLayer().

Working on tidying up code, you can see current scrappy stuff here: https://code.mathr.co.uk/graphgrow/blob/HEAD:/the-sky-cracked-open/main.hs

Obligatory image:

(https://mathr.co.uk/misc/2016-11-27_graphgrow_continuous_escape_time_colouring.png)


Title: Re: continuous escape time for graph-directed IFS
Post by: claude on February 06, 2017, 10:43:21 AM
Another approach gives nice images, and allows incremental rendering for animation: a more-straightforward multiple-copy-reduction method using floating point array textures with normalization to avoid overflow.

user interface:
(https://mathr.co.uk/misc/2017-02-06_graphgrow-iface.png)

corresponding output:
(https://mathr.co.uk/misc/2017-02-06_graphgrow-video.png)

code:
https://code.mathr.co.uk/graphgrow/tree/HEAD:/graphgrow3/iface
https://code.mathr.co.uk/graphgrow/tree/HEAD:/graphgrow3/video
https://code.mathr.co.uk/graphgrow/tree/HEAD:/graphgrow3/audio


Title: Re: continuous escape time for graph-directed IFS
Post by: knighty on February 06, 2017, 12:44:32 PM
Cool!