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! |