Makin' Magic Formulas for Ultra-Fractal help.
For MMF.ufm Version 1.9
Dave Makin
http://www.crosswinds.net/~makinmagic/
http://website.lineone.net/~dave_makin/
makinmagic@themutual.net
This is the text version of my HTML helpfile which
you can download from the Lineone site above or from:
http://skyscraper.fortunecity.com/terabyte/966/download.html
3D lighting
When using the 3D lighting colouring modes either in the newer
"Solid 3D" formulas or in the older 3D formulas (Light, Mixed
and BoF shaded) you should use the MMF 3D colouring formula
with "Color Density" set to 1 and "Transfer Function" linear.
The MMF 3D colouring formula should be used "Inside" for the
newer "Solid 3D" formulas or "Outside" for the older 3D formulas.
Using the older 3D formulas, unless you have a great deal of spare
time, I don't recommend "BoF60 shaded" mode since it's extremely
tedious setting up a useable palette:
All even colour entries should be set to 0 RGB and the odd ones
as a nice colour spread - you have to do this by hand !
ie. set all 1200 values.
There is an example "par" for BoF60 shaded colouring
in the MMF parameter collection.
Although tedious to set up, the results are quite good, however if
you wish this type of colouring I recommend using the newer 3D
formulas with two layers - one lighting and one of Inside colouring.
A bit of maths
The "special" polynomials in the Transpoly formula are implimented
using versions of the relevant recurrence relations:
1. The Lucas types
F0(z) = L0
F1(z) = L1*z + L2
Fn(z) = (L4*z + L5)*Fn-1(z) + L3*Fn-2(z)
The parameters L0 to L5 can be used to make these types
produce a range of different polynomials.
Use:
"First constant" to set L0
"Base linear coeff" to set L1
"Base linear const" to set L2
"c in c*Fn-2(z)" to set L3
"a in (a*z+c)*Fn-1(z)" to set L4
"c in (a*z+c)*Fn-1(z)" to set L5
The default setting is for Chebyshev type 1,
ie. L0 = 1, L1 = 1, L2 = 0, L3 = -1, L4 = 2, L5 = 0
For the Chebyshev type 2 use:
L0 = 1, L1 = 2, L2 = 0, L3 = -1, L4 = 2, L5 = 0
For the Fermat Polynomials (Fn(1)=2^n-1) use:
L0 = 1, L1 = 3, L2 = 0, L3 = -2, L4 = 3, L5 = 0
For the Lucas-Fermat Polynomials (Fn(1)=2^n+1) use:
L0 = 2, L1 = 3, L2 = 0, L3 = -2, L4 = 3, L5 = 0
2. The Legendre types
F0(z) = 1
F1(z) = z
Fn+1(z) = ((2*n + 1)*z*Fn(z) - n*Fn-1(z))/(n+1)
3. The Laguerre types
F0(z) = 1
F1(z) = 1 - z
Fn+1(z) = ((2*n + 1 - z)*Fn(z) - n*Fn-1(z))/(n + 1)
4. The Hermite types
F0(z) = 1
F1(z) = 2*z
Fn+1(z) = 2*z*Fn(z) - 2*n*Fn-1(z)
5. The Laguerre Associated types
F0(z) = 1
F1(z) = k + 1 - z
Fn+1(z) = ((2*n + k + 1 - z)*Fn(z) - (n + k)*Fn-1(z))/(n + 1)
6. The Ultraspherical types
F0(z) = 1
F1(z) = 2*k*z
Fn(z) = (2*(n + k - 1)*z*Fn-1(z) - (n + 2*k - 2)*Fn-2(z))/n
7. The Jacobi types
F0(z) = 1
F1(z) = (2*(al + 1) + (al + be + 2)*(z - 1))/2
Fn+1(z)
=
(((2*n + al + be + 1)*(al^2 - be^2)
+ (2*n + al + be)*(2*n + al + be + 1)*(2*n + al + be + 2)*z)*Fn
- 2*(n + al)*(n + be)*(2*n + al + be + 2)*Fn-1)
/(2*(n + 1)*(n + al + be + 1)*(2*n + al + be))
The Solid 3D formulas
These formulas for rendering 3-dimensional fractal solids
are very similar except for the parameters specific to the
individual fractal types.
The parameters controlling the position, lighting etc. are
essentially the same.
In all cases you may choose to set a layer to colour the object lit
by one or two light sources, optionally with shadows from one source
OR set a layer to colour the object based on the iteration at the
surface pixel using any Inside colouring OR set a layer to colour
the object based simply on the coordinates of the surface pixel OR
colour the object simply based on the depth (distance from camera).
All the colourings are effectively "Inside" so it's best to set
the "Outside" colouring method to Standard/None and the Outside
transfer to "None" with the Outside solid colour set to your
choice of background colour.
When using lighting or coordinate or depth it's best to set the
inside colouring to the MMF 3D colouring formula, when doing this
for lighting gradient position zero should be darkest and position
399 brightest.
In lighting mode the Phong lighting model is used, this means that
there are three main controls for the lighting - the ambient, the
diffuse and the specular.
The ambient parameter sets the amount of "background" light - even
those parts of the object not lit directly by the light source/s
will be displayed at this brightness.
0 = darkest and 1 = brightest, reasonable values are from say 0.1 to 0.3.
The diffuse parameter sets the "random reflection" value for the
fractal surface. Light reflected in this manner only depends on the
angle of the light source direction to the surface and is independant
of the angle of the viewer's line of sight, it's the sort of lighting
for a primarily "matte" surface. Again use 0 for no diffuse, 1 for
maximum OR alternatively use negative values (down to -1) if you
wish light from the "wrong-side" of the object to have some effect -
this produces "softer" lighting.
There are two parameters controlling the specular lighting, an amount
and an exponent. The specular lighting is the sort of lighting produced
by a shiny-smooth surface - ie. from a primarily "gloss" surface.
The first parameter simply controls the amount, effectively setting
the maximum brightness of the "shine". The second parameter, an exponent,
controls how close to a true mirror-like finish the surface has, the
larger the value the more mirror-like the effect. A typical range of
use would be anything from around 5 to 500 (500 being pretty close to
a mirror and producing a highly targeted shine).
In these new formulas setting up the position is essentially the same
as with the older "user-friendly" 3D formulas but with some added
wrinkles/improvements - you may now choose either parallel or
perspective projection.
As previously you set a target for the camera consisting of X, Y and Z
coordinates.
Then you set the angle to the "camera" from this target.
In parallel mode you can then set the distance of the viewing plane
from the target and the distance to scan (starting from this plane),
ie. the viewing plane is effectively the "front clipping plane".
In this case the parameter "focal length" should be set to zero to
make the formula use parallel projection.
In perspective mode you also set the distance of the viewing plane
from the target - in this case the viewing plane simply controls
the perspective/magnification and you must use the separate parameter
to set the distance of the front clipping plane from the target.
Again you need to set the distance to scan - in perspective mode
this distance starts from the front clipping plane.
Note that you can set the front clipping plane either nearer to the
camera or nearer to the target than the viewing plane.
In this case you need to set a non-zero value for the focal length
and this parameter controls the perspective (along with the viewing
plane position and the standard magnification).
Ideally when you wish the lighting model to be as realistic as possible
the lighting should be done as two layers, one layer solely for the
ambient and diffuse lighting and one layer for the specular,
eg. have a base layer (or layers) using "Inside", "Coordinate" or "Depth"
colouring, then add a layer using "Lighting" with no specular
component and mergemode "multiply" and then a layer using "Lighting"
with only specular and mergemode "screen".
Solid-3D Complex
This formula produces solid 3D fractals from a choice of complex
fractal types, they are rendered using 3 of the four values making
up the standard constant and the Zstart value as the axes.
1. Fractal type
You can choose from several types:
The standard power fractal (Z^n+c)
The standard complex Newton (^n)
The cubic (as described by Stig Pettersson)
fn(z)+c
fn(z)+z^n+c
fn(z)*z^n+c
Lambda c*z(1-z)
Breeder z(1-z)+c
Manowar z^n+oldz+c
2. Power
This allows you to set the value of "n" for the fractal types that
use it.
3. Bailout type
You can choose between divergent and convergent bailout.
Convergent bailout is required for the Newton type and for some
choices of the functions.
4. Bailout value
The value used for testing for bailout. In convergent bailout
mode 1/cabs(z-zold)^2 is tested against this value.
5. Target X and Y coord
You can use the dropper to set these.
6. Target Z coord
7. View Plane distance
Sets the distance of the view plane from the target.
In parallel mode (focal length zero) this view plane is also the
front clipping plane, in perspective mode (focal length > 0) the
view plane position affects the perspective.
8. Front-clipping distance
Sets the distance of the front-clipping plane from the target,
unused in parallel mode (focal length zero).
9. Viewing range
Sets the distance to scan from the front clipping plane (the view
plane in parallel mode).
10. Focal length
Sets the focal length for perspective mode if > 0 or sets parallel
mode if the value is zero.
11. Detail level
Sets the number of steps per unit distance, smaller values produce
faster rendering but more errors.
12. Colouring
You can choose between lighting, inside, coordinate or depth.
For lighting, coordinate or depth you should use the MMF 3D colouring.
You can use any Inside colouring for "inside". All 4 colourings are
of the inside type.
13. Solid condition
Should normally be set to max. iteration but you can use direction
change to speed things up or produce something different.
14. Julibrot axes
You can set the X, Y, Z (and W) axes to be any combination of the
standard constant and the zstart value. The default Zr,Zi,Cr,Ci is
"Julia-style", use Cr,Ci,Zr,Zi for "Mandelbrot-style".
15. X rotation
Sets the rotation around the X-axis ie. "elevation" or "pitch".
16. Y rotation
Sets the rotation around the Y-axis ie. "direction".
NB. Use the Rotation angle under the Location tab to set the
rotation around the Z-axis ie. "roll"
17. 4D rotation
This angle allows you to choose a line in the plane of the
3rd and 4th dimensions (as set in the Julibrot axes option)
to be used as the visible Z axis.
18. 4th dimension offset
This allows you to offset the fractal values down the 4th
(invisible) dimension, it works in combination with the Julibrot
axes option and the 4D rotation.
19. Inside/Coordinate
This parameter allows you to choose which values are passed to the
colouring algorithm when using the Inside, Coordinate or Depth
colouring options. Only x,y really makes sense for Inside as the
other values remain constant during iteration.
20. Ambient Light
The ambient (background) light level for lighting colouring.
21. Diffuse constant
The diffuse lighting constant for lighting colouring.
Controls how "matte-reflective" the surface is.
22. Specular constant
The specular constant for lighting colouring.
Controls how "glossy-reflective" the surface is.
23. Specular exponent
The specular exponent for lighting colouring.
Controls how mirror-like the gloss reflection is.
24. Light value clamp
When enabled this ensures the lighting values remain within the
colour gradient without wrapping.
25. Lighting Method
Allows you to select how the object is illuminated:
Camera: A single light source "from the camera", in parallel mode
this is effectively a remote source in the camera direction, in
perspective mode this is a point source at the viewpoint.
Remote: A single remote light source independant of the camera.
Camera&Remote: 2 sources, one from the camera, one independant.
Remote&shadows: An independant remote source with shadows cast.
Camera&Remote&Shadows: 2 sources, this time with shadows cast from
the independant remote source.
Point: A single point light source independant of the camera.
Camera&Point: 2 sources, one from the camera, one independant.
Point&shadows: An independant point source with shadows cast.
Camera&Point&shadows: 2 sources, this time with shadows cast from
the independant point source.
26. Light 1
The elevation of the independant light source.
27. Light 2
The direction of the independant light source.
28. Light distance
The distance of the independant point source from the target.
29. Relative light
Allows you to adjust the relative brightness of the light from
the camera source versus the independant source when both are
in use - value > 1 make the independant light more significant
and values 0 0) the
view plane position affects the perspective.
7. Front-clipping distance
Sets the distance of the front-clipping plane from the target,
unused in parallel mode (focal length zero).
8. Viewing range
Sets the distance to scan from the front clipping plane (the view
plane in parallel mode).
9. Focal length
Sets the focal length for perspective mode if > 0 or sets parallel
mode if the value is zero.
10. Detail level
Sets the number of steps per unit distance, smaller values produce
faster rendering but more errors.
11. Colouring
You can choose between lighting, inside, coordinate or depth.
For lighting, coordinate or depth you should use the MMF 3D colouring.
You can use any Inside colouring for "inside". All 4 colourings are
of the inside type.
12. Solid condition
Should normally be set to max. iteration but you can use direction
change to speed things up or produce something different.
13. Julibrot axes
You can set the X, Y, Z (and W) axes to be any combination of the
standard constant and the zstart value. The default Zr,Zi,Cr,Ci is
"Julia-style", use Cr,Ci,Zr,Zi for "Mandelbrot-style".
14. X rotation
Sets the rotation around the X-axis ie. "elevation" or "pitch".
15. Y rotation
Sets the rotation around the Y-axis ie. "direction".
NB. Use the Rotation angle under the Location tab to set the
rotation around the Z-axis ie. "roll"
16. 4D rotation
This angle allows you to choose a line in the plane of the
3rd and 4th dimensions (as set in the Julibrot axes option)
to be used as the visible Z axis.
17. 4th dimension offset
This allows you to offset the fractal values down the 4th
(invisible) dimension, it works in combination with the Julibrot
axes option and the 4D rotation.
18. Inside/Coordinate
This parameter allows you to choose which values are passed to the
colouring algorithm when using the Inside, Coordinate or Depth
colouring options. Only x,y really makes sense for Inside as the
other values remain constant during iteration.
19. Ambient Light
The ambient (background) light level for lighting colouring.
20. Diffuse constant
The diffuse lighting constant for lighting colouring.
Controls how "matte-reflective" the surface is.
21. Specular constant
The specular constant for lighting colouring.
Controls how "glossy-reflective" the surface is.
22. Specular exponent
The specular exponent for lighting colouring.
Controls how mirror-like the gloss reflection is.
23. Light value clamp
When enabled this ensures the lighting values remain within the
colour gradient without wrapping.
24. Lighting Method
Allows you to select how the object is illuminated:
Camera: A single light source "from the camera", in parallel mode
this is effectively a remote source in the camera direction, in
perspective mode this is a point source at the viewpoint.
Remote: A single remote light source independant of the camera.
Camera&Remote: 2 sources, one from the camera, one independant.
Remote&shadows: An independant remote source with shadows cast.
Camera&Remote&Shadows: 2 sources, this time with shadows cast from
the independant remote source.
Point: A single point light source independant of the camera.
Camera&Point: 2 sources, one from the camera, one independant.
Point&shadows: An independant point source with shadows cast.
Camera&Point&shadows: 2 sources, this time with shadows cast from
the independant point source.
25. Light 1
The elevation of the independant light source.
26. Light 2
The direction of the independant light source.
27. Light distance
The distance of the independant point source from the target.
28. Relative light
Allows you to adjust the relative brightness of the light from
the camera source versus the independant source when both are
in use - value > 1 make the independant light more significant
and values 0 0) the
view plane position affects the perspective.
7. Front-clipping distance
Sets the distance of the front-clipping plane from the target,
unused in parallel mode (focal length zero).
8. Viewing range
Sets the distance to scan from the front clipping plane (the view
plane in parallel mode).
9. Focal length
Sets the focal length for perspective mode if > 0 or sets parallel
mode if the value is zero.
10. Detail level
Sets the number of steps per unit distance, smaller values produce
faster rendering but more errors.
11. Colouring
You can choose between lighting, inside, coordinate or depth.
For lighting, coordinate or depth you should use the MMF 3D colouring.
You can use any Inside colouring for "inside". All 4 colourings are
of the inside type.
12. Solid condition
Should normally be set to max. iteration but you can use direction
change to speed things up or produce something different.
13. X rotation
Sets the rotation around the X-axis ie. "elevation" or "pitch".
14. Y rotation
Sets the rotation around the Y-axis ie. "direction".
NB. Use the Rotation angle under the Location tab to set the
rotation around the Z-axis ie. "roll"
15. 4D rotation
This angle allows you to choose a line in the plane of the
3rd and 4th dimensions to be used as the visible Z axis.
16. 4th dimension offset
This allows you to offset the fractal values down the 4th
(invisible) dimension, it works in combination with the 4D rotation.
17. X constant
The X constant for Julias, or the start value of X for Mandelbrots.
18. Y constant
The Y constant for Julias, or the start value of Y for Mandelbrots.
19. Z constant
The Z constant for Julias, or the start value of Z for Mandelbrots.
20. W constant
The W constant for Julias, or the start value of W for Mandelbrots
21. Inside/Coordinate
This parameter allows you to choose which values are passed to the
colouring algorithm when using the Inside, Coordinate or Depth
colouring options. Only x,y really makes sense for Inside as the
other values remain constant during iteration.
22. Ambient Light
The ambient (background) light level for lighting colouring.
23. Diffuse constant
The diffuse lighting constant for lighting colouring.
Controls how "matte-reflective" the surface is.
24. Specular constant
The specular constant for lighting colouring.
Controls how "glossy-reflective" the surface is.
25. Specular exponent
The specular exponent for lighting colouring.
Controls how mirror-like the gloss reflection is.
26. Light value clamp
When enabled this ensures the lighting values remain within the
colour gradient without wrapping.
27. Lighting Method
Allows you to select how the object is illuminated:
Camera: A single light source "from the camera", in parallel mode
this is effectively a remote source in the camera direction, in
perspective mode this is a point source at the viewpoint.
Remote: A single remote light source independant of the camera.
Camera&Remote: 2 sources, one from the camera, one independant.
Remote&shadows: An independant remote source with shadows cast.
Camera&Remote&Shadows: 2 sources, this time with shadows cast from
the independant remote source.
Point: A single point light source independant of the camera.
Camera&Point: 2 sources, one from the camera, one independant.
Point&shadows: An independant point source with shadows cast.
Camera&Point&shadows: 2 sources, this time with shadows cast from
the independant point source.
28. Light 1
The elevation of the independant light source.
29. Light 2
The direction of the independant light source.
30. Light distance
The distance of the independant point source from the target.
31. Relative light
Allows you to adjust the relative brightness of the light from
the camera source versus the independant source when both are
in use - value > 1 make the independant light more significant
and values 0 0) the
view plane position affects the perspective.
8. Front-clipping distance
Sets the distance of the front-clipping plane from the target,
unused in parallel mode (focal length zero).
9. Viewing range
Sets the distance to scan from the front clipping plane (the view
plane in parallel mode).
10. Focal length
Sets the focal length for perspective mode if > 0 or sets parallel
mode if the value is zero.
11. Detail level
Sets the number of steps per unit distance, smaller values produce
faster rendering but more errors.
12. Colouring
You can choose between lighting, inside, coordinate or depth.
For lighting, coordinate or depth you should use the MMF 3D colouring.
You can use any Inside colouring for "inside". All 4 colourings are
of the inside type.
13. Solid condition
Should normally be set to max. iteration but you can use direction
change to speed things up or produce something different.
14. X rotation
Sets the rotation around the X-axis ie. "elevation" or "pitch".
15. Y rotation
Sets the rotation around the Y-axis ie. "direction".
NB. Use the Rotation angle under the Location tab to set the
rotation around the Z-axis ie. "roll"
16. 4D rotation
This angle allows you to choose a line in the plane of the
3rd and 4th dimensions to be used as the visible Z axis.
17. 4th dimension offset
This allows you to offset the fractal values down the 4th
(invisible) dimension, it works in combination with the 4D rotation.
18. X constant
The X constant for Julias, or the start value of X for Mandelbrots.
19. Y constant
The Y constant for Julias, or the start value of Y for Mandelbrots.
20. Z constant
The Z constant for Julias, or the start value of Z for Mandelbrots.
21. W constant
The W constant for Julias, or the start value of W for Mandelbrots
22. Inside/Coordinate
This parameter allows you to choose which values are passed to the
colouring algorithm when using the Inside, Coordinate or Depth
colouring options. Only x,y really makes sense for Inside as the
other values remain constant during iteration.
23. Ambient Light
The ambient (background) light level for lighting colouring.
24. Diffuse constant
The diffuse lighting constant for lighting colouring.
Controls how "matte-reflective" the surface is.
25. Specular constant
The specular constant for lighting colouring.
Controls how "glossy-reflective" the surface is.
26. Specular exponent
The specular exponent for lighting colouring.
Controls how mirror-like the gloss reflection is.
27. Light value clamp
When enabled this ensures the lighting values remain within the
colour gradient without wrapping.
28. Lighting Method
Allows you to select how the object is illuminated:
Camera: A single light source "from the camera", in parallel mode
this is effectively a remote source in the camera direction, in
perspective mode this is a point source at the viewpoint.
Remote: A single remote light source independant of the camera.
Camera&Remote: 2 sources, one from the camera, one independant.
Remote&shadows: An independant remote source with shadows cast.
Camera&Remote&Shadows: 2 sources, this time with shadows cast from
the independant remote source.
Point: A single point light source independant of the camera.
Camera&Point: 2 sources, one from the camera, one independant.
Point&shadows: An independant point source with shadows cast.
Camera&Point&shadows: 2 sources, this time with shadows cast from
the independant point source.
29. Light 1
The elevation of the independant light source.
30. Light 2
The direction of the independant light source.
31. Light distance
The distance of the independant point source from the target.
32. Relative light
Allows you to adjust the relative brightness of the light from
the camera source versus the independant source when both are
in use - value > 1 make the independant light more significant
and values 01 for narrow angle.
6. Distance to target
This specifies the distance of the "camera" from the
target point. Modifying the camera angles will rotate
the camera around the target point at this radius.
7. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
8. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
9. Colouring
You can choose from four possible colouring modes:
Lighting - lit from a light source.
Atan - coloured using atan of the final x,y value.
Mixed - mixes the above modes.
BoF60 - uses the min value of |h| at the solid boundary.
BoF60 shaded - as above but light shaded.
In all 4 cases you should use the MMF 3D colouring formula.
For the lighting mode colour 0 should be dark and 399 light.
To use the BoF shaded mode all even colours should be set to
black and the odd colours should be "spreads" of values.
10. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
11. Z Rot
The rotation of X/Y around Z.
You could consider this as "roll".
12. X Rot
The rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
13. Y Rot
The rotation of X/Z around Y.
You could consider this as "direction" or "heading".
14. 4D Rot
This angle is used to set the line in the plane
of Zstart/Wstart used as the third (Z) axis.
Using zero sets the Z-axis to values of Zstart,
a value of 90 degrees sets the Z-axis to values
of Wstart.
15. X constant
Use this to set the X part of the hypercomplex constant in
order to produce different Julia sets.
16. Y constant
Use this to set the Y part of the hypercomplex constant in
order to produce different Julia sets.
17. Z constant
Use this to set the Z part of the hypercomplex constant in
order to produce different Julia sets.
18. W constant
Use this to set the W part of the hypercomplex constant in
order to produce different Julia sets.
19. Directional lighting
You may switch directional lighting on and off using this
parameter, it doesn't apply to Atan or BoF60 colouring.
When off the light source is the camera, when on the light
direction is specified by the light angles.
20. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
21. Light 2
This sets the direction angle of the directional lighting
(when enabled).
J3D Standard Hypercomplex (old)
This formula is still available in case anyone has parameter
files that use it, or anyone wishes to try it out despite the
fact that the maths is flawed !
I made a mistake in the hypercomplex maths - I got a sign wrong -
however I did it consistently throughout the formula so it can
be used to get some interesting results, though the formula
is not using hypercomplex maths !
To use the formula, the instructions are essentially the same
as those given above for the corrected hypercomplex formula.
J3D Standard Quaternion
This is for the standard quaternion Julia sets,
ie. for q^2+c where q=(x,y,z,w)
You may set a target point for the camera and use the rotation
angles to rotate the camera around the target point,
J3D Standard Quaternion produces solid 3-dimensional images by
using a third axis representing a linear set of values
of Zstart/Wstart - this third axis can be at any selected
orientation in the plane of Zstart/Wstart.
As with a normal 2D Julia quaternion image, the X-axis is
X and the Y-axis is Y but we now have a Z-axis
representing values of Zstart/Wstart.
With the rotation angles set to zero this Z-axis is
perpendicular to the screen.
The "Center" and "Magnification" values are deliberately
ignored. All that using the UF zoom function will do is
cause the fractal to be re-rendered so modifying the center
or magnification should be avoided.
Use the Maximum Iterations value to set the iteration
value to be used as the "solid" boundary, small values
(typically <16) work best.
The parameters for this formula are as follows:
1. Bailout value
The standard "infinity" bailout test value.
2. Target X
Here you can set the target X coordinate,
ie. the X value of the point the camera is aimed at.
3. Target Y
Here you can set the target Y coordinate,
ie. the Y value of the point the camera is aimed at.
4. Target Z
Here you can set the target Z coordinate,
ie. the Z value of the point the camera is aimed at.
5. Field of view
Modifying the field of view will change the perspective,
effectively using a wide or narrow angle camera lens.
Use values <1 for wide angle, >1 for narrow angle.
6. Distance to target
This specifies the distance of the "camera" from the
target point. Modifying the camera angles will rotate
the camera around the target point at this radius.
7. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
8. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
9. Colouring
You can choose from four possible colouring modes:
Lighting - lit from a light source.
Atan - coloured using atan of the final x,y value.
Mixed - mixes the above modes.
BoF60 - uses the min value of |q| at the solid boundary.
BoF60 shaded - as BoF60 but light shaded.
In all 4 cases you should use the MMF 3D colouring formula.
For the lighting mode colour 0 should be dark and 399 light.
To use the BoF shaded mode all even colours should be set to
black and the odd colours should be "spreads" of values.
10. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
11. Z Rot
The rotation of X/Y around Z.
You could consider this as "roll".
12. X Rot
The rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
13. Y Rot
The rotation of X/Z around Y.
You could consider this as "direction" or "heading".
14. 4D Rot
This angle is used to set the line in the plane
of Zstart/Wstart used as the third (Z) axis.
Using zero sets the Z-axis to values of Zstart,
a value of 90 degrees sets the Z-axis to values
of Wstart.
15. X constant
Use this to set the X part of the quaternion constant in
order to produce different Julia sets.
16. Y constant
Use this to set the Y part of the quaternion constant in
order to produce different Julia sets.
17. Z constant
Use this to set the Z part of the quaternion constant in
order to produce different Julia sets.
18. W constant
Use this to set the W part of the quaternion constant in
order to produce different Julia sets.
19. Directional lighting
You may switch directional lighting on and off using this
parameter, it doesn't apply to Atan or BoF60 colouring.
When off the light source is the camera, when on the light
direction is specified by the light angles.
20. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
21. Light 2
This sets the direction angle of the directional lighting
(when enabled).
M-True3D Userfriendly
This is a more user-friendly version of "M-Type True 3D".
In this version you may set a target point for the camera
and use the rotation angles to rotate the camera around the
target point, this is much more intuitive than the old method.
M-True3D Userfriendly produces solid 3-dimensional images by
using a third axis representing a third variable used
in the 3-function iterations.
The X-axis represents cx the Y-axis cy and the Z-axis cz
in the 3-function iteration:
Newx=@xx*x*x+@yy*y*y+@zz*z*z+cx
Newy=@xy*x*y+@xz*x*z+@yz*y*z+cy
Newz=@xyz*x*y*z+cz
Where @xx,@yy,@zz,@xy,@xz,@yz and @xyz are user-parameters.
With the rotation angles set to zero the Z-axis is
perpendicular to the screen.
The "Center" and "Magnification" values are deliberately
ignored. All that using the UF zoom function will do is
cause the fractal to be re-rendered. So modifying the center
or magnification should be avoided.
Use the Maximum Iterations value to set the iteration
value to be used as the "solid" boundary, small values
(typically <16) work best.
The parameters for this formula are as follows:
1. Bailout value
The standard "infinity" bailout test value.
2. Target X
Here you can set the target X coordinate,
ie. the X value of the point the camera is aimed at.
3. Target Y
Here you can set the target Y coordinate,
ie. the Y value of the point the camera is aimed at.
4. Target Z
Here you can set the target Z coordinate,
ie. the Z value of the point the camera is aimed at.
5. Perturbation of Xstart
Sets the start value of x in the iterations.
6. Perturbation of Ystart
Sets the start value of y in the iterations.
7. Perturbation of Zstart
Sets the start value of z in the iterations.
8-14. Coefficients
These parameters allow you to set the coefficients to be
used in the above iterations. Changing these produces
different fractals.
15. Field of view
Modifying the field of view will change the perspective,
effectively using a wide or narrow angle camera lens.
Use values <1 for wide angle, >1 for narrow angle.
16. Distance to target
This specifies the distance of the "camera" from the
target point. Modifying the camera angles will rotate
the camera around the target point at this radius.
17. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
18. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
19. Colouring
You can choose from two possible colouring modes:
Lighting - lit from a light source.
BoF60 - uses the min value of |Z| at the solid boundary.
In both cases you should use the MMF 3D colouring formula.
For the lighting mode colour 0 should be dark and 399 light.
20. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
21. Z Rot
The rotation of X/Y around Z.
You could consider this as "roll".
22. X Rot
The rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
23. Y Rot
The rotation of X/Z around Y.
You could consider this as "direction" or "heading".
24. Directional lighting
You may switch directional lighting on and off using this
parameter, it doesn't apply to BoF60 colouring.
When off the light source is the camera, when on the light
direction is specified by the following parameters.
25. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
26. Light 2
This sets the direction angle of the directional lighting
(when enabled).
M3D Userfriendly
This is a more user-friendly version of "Mandelbrot 3D".
In this version you may set a target point for the camera
and use the rotation angles to rotate the camera around the
target point, this is much more intuitive than the old method.
M3D Userfriendly produces solid 3-dimensional images by
using a third axis representing a linear set of values
of Zstart - this third axis can be at any selected
orientation in the complex plane of Zstart.
As with a normal 2D Mandelbrot image, the X-axis is
Creal and the Y-axis is Cimag but we now have a Z-axis
representing values of Zstart.
With the rotation angles set to zero this Z-axis is
perpendicular to the screen.
The "Center" and "Magnification" values are deliberately
ignored. All that using the UF zoom function will do is
cause the fractal to be re-rendered so modifying the center
or magnification should be avoided.
Use the Maximum Iterations value to set the iteration
value to be used as the "solid" boundary, small values
(typically <16) work best.
The parameters for this formula are as follows:
1. Bailout value
The standard "infinity" bailout test value.
2. Target X
Here you can set the target X coordinate,
ie. the X value of the point the camera is aimed at.
3. Target Y
Here you can set the target Y coordinate,
ie. the Y value of the point the camera is aimed at.
4. Target Z
Here you can set the target Z coordinate,
ie. the Z value of the point the camera is aimed at.
5. Field of view
Modifying the field of view will change the perspective,
effectively using a wide or narrow angle camera lens.
Use values <1 for wide angle, >1 for narrow angle.
6. Distance to target
This specifies the distance of the "camera" from the
target point. Modifying the camera angles will rotate
the camera around the target point at this radius.
7. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
8. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
9. Colouring
You can choose from four possible colouring modes:
Lighting - lit from a light source.
Atan - coloured using atan of the final complex value.
Mixed - mixes the above modes.
BoF60 - uses the min value of |Z| at the solid boundary.
BoF60 shaded - as BoF60 but light shaded.
In all 4 cases you should use the MMF 3D colouring formula.
For the lighting mode colour 0 should be dark and 399 light.
To use the BoF shaded mode all even colours should be set to
black and the odd colours should be "spreads" of values.
10. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
11. Z Rot
The rotation of Creal/Cimag around the Zstart axis
or, if you prefer, the rotation of X/Y around Z.
You could consider this as "roll".
12. X Rot
The rotation of Cimag/Zstart around the Creal axis
or, if you prefer, the rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
13. Y Rot
The rotation of Creal/Zstart around the Cimag axis
or, if you prefer, the rotation of X/Z around Y.
You could consider this as "direction" or "heading".
14. Zstart Rot
This angle is used to set the line in the complex plane
of Zstart used as the third (Z) axis.
Using zero sets the Z-axis to real values of Zstart,
a value of 90 degrees sets the Z-axis to imaginary values
of Zstart.
15. Directional lighting
You may switch directional lighting on and off using this
parameter, it doesn't apply to Atan or BoF60 colouring.
When off the light source is the camera, when on the light
direction is specified by the light angles.
16. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
17. Light 2
This sets the direction angle of the directional lighting
(when enabled).
M-Type True 3D
Please note that this formula has only been kept in
the compilation in case anyone has parameter files
set up to use it - for anyone wanting to produce new 3D
fractal images I recommend using the "Userfriendly"
3D formulas instead.
M-type True 3D produces solid 3-dimensional images by
using a third axis representing a third variable used
in the 3-function iterations.
The X-axis represents cx the Y-axis cy and the Z-axis cz
in the 3-function iteration:
Newx=@xx*x*x+@yy*y*y+@zz*z*z+cx
Newy=@xy*x*y+@xz*x*z+@yz*y*z+cy
Newz=@xyz*x*y*z+cz
Where @xx,@yy,@zz,@xy,@xz,@yz and @xyz are user-parameters.
With the rotation angles set to zero the Z-axis is
perpendicular to the screen.
The "Center" value has no effect on the image and
I highly recommend leaving the magnification alone -
ie. don't use the UF zooming facility.
Use the Maximum Iterations value to set the iteration
value to be used as the "solid" boundary, small values
(typically <16) work best.
The parameters for this formula are as follows:
1. Camera X
This sets the "camera" X location.
2. Camera Y
This sets the "camera" Y location.
3. Camera Z
This sets the "camera" Z location.
4. Perturbation of Xstart
Sets the start value of x in the iterations.
5. Perturbation of Ystart
Sets the start value of y in the iterations.
6. Perturbation of Zstart
Sets the start value of z in the iterations.
7-13. Coefficients
These parameters allow you to set the coefficients to be
used in the above iterations. Changing these produces
different fractals.
14. Field of view
Modifying the field of view will change the perspective,
effectively using a wide or narrow angle camera lens.
Use values <4 for wide angle, >4 for narrow angle.
15. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
16. Bailout value
The standard "infinity" bailout test value.
17. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
18. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
19. Rot 1
The rotation of X/Y around Z.
You could consider this as "roll".
20. Rot 2
The rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
21. Rot 3
The rotation of X/Z around Y.
You could consider this as "direction" or "heading".
22. Directional lighting
You may switch directional lighting on and off using this parameter.
For the lighting colour 0 should be dark and 399 light.
When off the light source is the camera, when on the light
direction is specified by the following parameters.
23. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
24. Light 2
This sets the direction angle of the directional lighting
(when enabled).
Two Cube Family
Two Cube Family is a generic formula for
producing a standard Mandelbrot/Julia type
fractal from the "Two Cube" family:
NewX = +/- X*X*X +/- 3*X*X*Y +/- 3*X*Y*Y +/- Y*Y + C
NewY = +/- X*X*X +/- 3*X*X*Y +/- 3*X*Y*Y +/- Y*Y + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
As well as the parameters for any standard M/J type
fractal, there are the parameters to select a member
of the "Two Cube" family.
These parameters are straightforward, they simply set
the sign of the components in the above iteration,
ie. + or - in each case.
There are a total of 256 possible combinations, but
not all of these produce interesting results.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 3 (real).
Mandelbrot 3D
Please note that this formula has only been kept in
the compilation in case anyone has parameter files
set up to use it - for anyone wanting to produce new 3D
fractal images I recommend using the "Userfriendly"
3D formulas instead.
Mandelbrot 3D produces solid 3-dimensional images by
using a third axis representing a linear set of values
of Zstart - this third axis can be at any selected
orientation in the complex plane of Zstart.
As with a normal 2D Mandelbrot image, the X-axis is
Creal and the Y-axis is Cimag but we now have a Z-axis
representing values of Zstart.
With the rotation angles set to zero this Z-axis is
perpendicular to the screen.
Use the "Center" location values to set the "camera"
position along the X-axis (Creal) and Y-axis (Cimag).
I highly recommend leaving the magnification alone -
ie. don't use the UF zooming facility.
To set the "camera" location along the Z-axis you must
modify the "Starting point" parameter.
Use the Maximum Iterations value to set the iteration
value to be used as the "solid" boundary, small values
(typically <16) work best.
The parameters for this formula are as follows:
1. Starting point
This allows you to set the value of Zstart at the
"camera" location.
2. Field of view
Modifying the field of view will change the perspective,
effectively using a wide or narrow angle camera lens.
Use values <4 for wide angle, >4 for narrow angle.
3. Viewing range
This allows you to set the maximum distance to scan
away from the camera. For optimum results you should set
it at the smallest value that does't cause parts of the
image to disappear - typically 5-10. Using larger values
will help ensure the image is complete but take longer to
produce it.
4. Bailout value
The standard "infinity" bailout test value.
5. Detail level
The detail level can be used to balance image quality
versus speed of rendering.
Use larger values for a better quality image (eg. up to 500)
or use smaller values (<100) for faster rendering.
6. Colouring
You can choose from three possible colouring modes:
Lighting - lit from a light source.
Atan - coloured using atan of the final complex value.
Mixed - mixes the above modes.
In all 3 cases you should use the MMF 3D colouring formula.
For the lighting mode colour 0 should be dark and 399 light.
7. Solid condition
You may choose to only show a "solid" "correctly" when
the iteration value chosen is reached, or you can "incorrectly"
choose "solidity" if the density change is reversed travelling
along the rays away from the camera.
Basically "Max iteration" is the "correct" method but you may use
"Direction change" instead. "Direction change" is much faster and
can produce some interesting images.
8. Rot 1
The rotation of Creal/Cimag around the Zstart axis
or, if you prefer, the rotation of X/Y around Z.
You could consider this as "roll".
9. Rot 2
The rotation of Cimag/Zstart around the Creal axis
or, if you prefer, the rotation of Y/Z around X.
You could consider this as "elevation" or "pitch".
10. Rot 3
The rotation of Creal/Zstart around the Cimag axis
or, if you prefer, the rotation of X/Z around Y.
You could consider this as "direction" or "heading".
11. Rot 4
This angle is used to set the line in the complex plane
of Zstart used as the third (Z) axis.
Using zero sets the Z-axis to real values of Zstart,
a value of 90 degrees sets the Z-axis to imaginary values
of Zstart.
12. Directional lighting
You may switch directional lighting on and off using this
parameter, it doesn't apply to Atan colouring.
When off the light source is the camera, when on the light
direction is specified by the following parameters.
13. Light 1
This sets the elevation angle of the directional lighting
(when enabled).
14. Light 2
This sets the direction angle of the directional lighting
(when enabled).
4D Transform
4D Transform is a formula that allows you to rotate
a fractal to any orientation within the 4 dimensions
made up of the Zstartreal, Zstartimag, Creal and Cimag axes.
Rotation in this way can produce many interesting
new patterns and can also be used to produce animations.
There are a considerable number of parameters:
1. Fractal type
This allows you to select the fractal type,
you can choose from:
Standard:
z = z*z + c
Magnet 1:
z = ((z^2+c-1)/(2*z+c-2))^2
Magnet 2:
z = ((z^3+3*(c-1)*z+(c-1)*(c-2))/(3*z^2+3*(c-2)*z+(c-1)*(c-2)+1))^2
Fastdraw:
Newx = creal - y*y, Newy = x*y + cimag
X Squared:
Newx = x*x - y*y + creal, Newy = 2*x*x*y + cimag
Two Square 3:
Newx = x*x + 2*x*y - y*y + creal, Newy = x*x - 2*x*y - y*y + cimag
When selecting either of the Magnet types you should
enable the small bailout (see below).
2. Mandelbrot Switch
This allows you to switch the default orientation of
the axes to Mandelbrot or Julia format ie. producing a
Mandelbrot or Julia image if all the angles are zero.
When the angles are other than zero the image will normally
be a Mandelbrot/Julia hybrid.
3. Seed/Perturb
This allows you to modify the seed (constant) value
when in Julia mode, or modify the Zstart value when
in Mandelbrot mode.
4. Zstart centre
This defines the coordinates of the centre of rotation
along the Zstartreal and Zstartimag axes.
5. Cstart centre
This defines the coordinates of the centre of rotation
along the Creal and Cimag axes.
6. Bailout value
The standard "infinity" bailout value.
7. Small Bail flag
This allows you to set the method used for detecting
"small bailout" ie. convergence.
"No small bailout" will disable convergence detection.
"Magnet bailout" detects convergence to (1,0) as occurs
in the Magnet type fractals.
"General bailout" detects convergence generally.
"Magnet-Verified" is the same as Magnet but with an extra
check to avoid possible errors.
8. Small Bail value
Here you can set the value used for testing for
convergence.
9. The angles of rotation
Use these to apply different rotations to the image.
I don't recommend trying to visualise exactly what's
going on (mathematically) when you adjust these values,
I just suggest playing around with them to see what happens.
It's probably best to play around with the angles one at once.
Two Square Family
Two Square Family is a generic formula for
producing a standard Mandelbrot/Julia type
fractal from the "Two Square" family:
NewX = +/- X*X +/- 2*X*Y +/- Y*Y + C
NewY = +/- X*X +/- 2*X*Y +/- Y*Y + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
As well as the parameters for any standard M/J type
fractal, there are the parameters to select a member
of the "Two Square" family.
These parameters are straightforward, they simply set
the sign of the components in the above iteration,
ie. + or - in each case.
There are a total of 64 possible combinations, but
not all of these produce interesting results.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 2.06 (real).
Two Square 3
Two Square 3 is a standard Mandelbrot/Julia type
fractal, iterated as follows:
NewX = X*X + 2*X*Y - Y*Y + C
NewY = X*X - 2*X*Y - Y*Y + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
The only parameters are the same as for any
standard M/J type fractal.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 2.06 (real).
Two Square 2
Two Square 2 is a standard Mandelbrot/Julia type
fractal, iterated as follows:
NewX = (X+Y)^2 + C
NewY = (X-Y)^2 + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
The only parameters are the same as for any
standard M/J type fractal.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 2.06 (real).
Two Square 1
Two Square 1 is a standard Mandelbrot/Julia type
fractal, iterated as follows:
NewX = X*X + 2*X*Y + Y*Y + C
NewY = X*X - 2*X*Y - Y*Y + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
The only parameters are the same as for any
standard M/J type fractal.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 2.06 (real).
X Squared
X Squared is a standard Mandelbrot/Julia type
fractal, iterated as follows:
NewX = X^4 - Y*Y + C
NewY = 2*X*X*Y + D
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
The only parameters are the same as for any
standard M/J type fractal.
You should note that for colouring modes using
iteration smoothing, the exponent should be set
to 4 (real).
Fastdraw
Fastdraw is a standard Mandelbrot/Julia type
fractal, iterated as follows:
NewX = C - Y*Y
NewY = D + X*Y
Where C/D are the real and imaginary components
of the constant and X/Y are the real and imaginary
components of Z.
The only parameters are the same as for any
standard M/J type fractal.