I have been trying to implement the perturbation algorithm for rendering fractals, as per this article: http://www.superfractalthing.co.nf/sft_maths.pdf

Let's say we simply focus on the first of the method, part up to equation 1, neglecting the series approximation part at the end to speed up calculations.

My question is regarding the reference orbit. Since you record the orbit of a reference point, and calculate the other points based on that reference, doesn't that imply that the reference need to have an iteration count (before its norm reaches 2) larger than all the other calculated points/pixels in the image? For example, how would you go about calculating the points in the image needing 10000 iterations before diverging when your reference diverges after 1000? If you indeed need the reference to diverge last, how would you choose such a point?



Not only do you need a reference whose iteration count is larger than all the other pixels, sometimes there are "glitches" when pixel dynamics differ significantly from the dynamics of the reference. These glitches can be detected in various ways: the most common heuristic is one developed by Pauldelbrot, though there is another using interval arithmetic developed by knighty.

Choosing good references is still a topic of active research by the community at fractalforums.org. Some strategies include trying periodic points (the nuclei of the minibrot islands deep in the set) and preperiodic points (the Misiurewicz points at the centers of spirals), both of which can be found by Newton's method (finding their (pre)periods is a bit harder, but not impossible). Higher-period "structural" minibrot nuclei seem to be the most favoured as they are relatively easy to find while also emitting fewer glitched pixels than lower period nuclei.

A simple approach can still yield accurate results, albeit in less than optimal time - simply take the first reference to be the center of the image, and correct any glitches that result (including those resulting from the reference escaping too early) by adding more references within the glitches, recalculating only those pixels that need it.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.