[chaoscope] Rendering Julias
- From: Chaoscope <chaoscope@xxxxxxxxxxxxxx>
- To: chaoscope@xxxxxxxxxxxxx
- Date: Sun, 13 Jun 2004 02:55:03 +0100
Hi,
Inverse Julia quaternion was a late addition to version 0.2. It wasn't
even planned to begin with. This is why it's not as easy to handle as
other equations, not enough time was spent to improve its
implementation. (I had to stop working on it to avoid delaying 0.2
release any further)
As you may have found out, the Level parameter sets the level of detail
of the attractor. When Level is low (below 6) all you get is a bunch of
blobs which sometimes look like what's inside of a Lava Lamp. When it's
high (greater than 14) you get a higher level of self-similarity. It is
equivalent to the number of iterations for the Mandelbrot set.
Set it to 15 and you start getting into trouble. Half of the attractor
in the preview is darker. At 16, the same half disappears. This is
because of the nature of the equation and how it was coded : the left
half is calculated first, the higher the level the longer it will take
to render it.
Actually, it takes 2^Level iterations to calculate all solutions for the
original orbit position. Therefore, the minimum number of iterations
necessary to render one half is 2^(Level-1). The number of iterations
for the preview is 20,000 which is less than 2^16 (65,536) so there
aren't enough for a full Julia. It's also less than 2^15, but only the
last 20,000 points of 50,000 calculated for the attractor adjustment are
shown. This has very little incidence on normal rendering so you don't
need to worry about it.
The problem we're facing is we can't adjust the attractor correctly for
a render if it's not entirely shown, something we're used to with
Pickover for instance.
The current workaround is to disable the Auto-Adjust feature (in the
View Menu), set the Level to 14 or less, press F6 so the attractor fits
perfectly within the view frame, then set the Level back to its original
value before the final rendering.
The other problem I came across while implementing Julia is I couldn't
make it work like a normal attractor, i.e. starting from a given orbit
position and let it drift on the attractor surface. Instead, the orbit
gets a new pseudo-random position every 2^Level iterations so that the
entire surface of the attractor is covered. Unfortunately, the orbit
density isn't uniform, it tends to concentrate on the XY plane, where a
2D projection of the attractor looks most like (in fact, is) the Julia
set. There's little you can do about it apart from avoiding parameters
where orbit density isn't homogeneous or raising Gamma to a higher value.
To summarise, here's the procedure to render high quality Julias :
1) modify the parameters and view angle with the level set to 14 or
lower, avoid values where the attractor appears to be brighter on the XY
plane
2) Adjust the view (F6)
3) disable Auto-Adjust
4) Set the level to desired value (25 or higher)
5) Make sure the Iterations is equal to 2^Level or higher
6) Render
Don't forget to change the default gradients to something a bit funkier
and to set the view size to 1024x768 (or higher!).
Happy rendering!
Nicolas Desprez
======================================================
The Chaoscope mailing-list
Archives : //www.freelists.org/archives/chaoscope
Admin contact : chaoscope@xxxxxxxxxxxxxx
Web site : http://www.chaoscope.org
======================================================
Other related posts:
- » [chaoscope] Rendering Julias