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.