I’m not a mathematician, and I’m not a professional software designer, nor do I play either on the telly, but I’ve used this app for a wee bit, and I’ll tell you what I’ve learned and what I know about it.
The screen shots in this post are taken from the Mandelbulber for Mac version 1.16, but much of the information here can apply to other versions of the software.
To keep things simple, I’ll first discuss the use of the default settings, and I encourage you to experiment on your own, as that’s in my experience the most entertaining way to learn.
So, onto the setting tabs and those input boxes, sliders, buttons and menus that are fundamental to the generation of all images no matter the type, beginning with this entry and continuing with the next in this series!
At the top of Figure 1, note the two longish rectangular buttons, ‘render’ and ‘stop.’ The ‘render’ button starts the process of generating the image in the rendering window, (See Figure 2, with a default fractal type, a basic mandelbulb…) and of course, ‘stop’ interrupts the process at any point, if for example, you don’t like the results of the rendering as it happens.
Unfortunately, if you do stop rendering, you must start over from the beginning, as there is no way to interrupt rendering and then pick up again where you left off by reclicking the render button.
The top three boxes for Figure 1, ‘Viewpoint coordinates,’ X, Y, & Z determine the point of the virtual camera’s view of the fractal surface, while ‘Alpha (yaw)’ rotates the camera sideways, ‘Beta (pitch)’ rotates the camera vertically, and ‘Gamma (roll)’ rotates the camera along the axis aligned with the viewpoint of the virtual camera.
Mouse click closeup ratio: This setting sets the divisor to the ‘Close up (zoom)’ value, moving the camera closer by that amount when clicking on the image. Entering a ‘3’ for the value divides the distance from the surface by 3 when zooming inward, and multiplies the distance by 3 when zooming out. For slower or faster zooming, you may want to enter a lower or higher value than 3. I generally use values between 1.2 and 2 when I want to avoid zooming into an image too closely to the figure and missing interesting details seen further out.
Close up (zoom): This determines the size of the fractal object in the rendering window from the viewpoint of the camera. A low value for this setting moves the camera nearer to the fractal surface, increasing magnification.
Perspective (FOV): This affects the image’s degree of depth of perspective. Giving this a value of zero gives the image an axonometric projection, and the higher the value above this, the deeper the perspective. My favorite value for this is about 1.2, but 0.5 to 0.8 is a good starting value.
3D navigator: This set of buttons moves the virtual camera away from the object, and this includes the default angle of of the camera’s view, zoom and position. I seldom use this setting myself, so have little experience with either this or Coordinate measurement. Both will be covered in detail in a future installment as will ‘Select file paths.’
Perspective projection: This gives you the option of selecting between
three four settings, a three-point projection, equirectangular projection, and a fish-eye projection useful when designing images and animation for planetarium display. A good value to input for Perspective projection in the the case of a fish-eye projection would be 0.8, as it tends to minimize distortion around the images and animations displayed.
Update: There are four options to this menu, the fourth being a fish-eye 180 degree cut, and I’ll be looking more into this and the other three for the next tutorial, when I’ll explain all four options in detail. There have been tweaks in the first three as well, and those shall be covered.
Forward and Backward are used to move the viewpoint of the virtual camera in the appropriate direction to and from the surface. Reset view is used to determine the starting position of the virtual camera using both the actual view angle, and whatever value is used for the Perspective (FOV) setting
Clicking on the ‘Go close to indicated surface’ box moves the virtual camera close enough to the fractal to let it look around the figure by rotating the camera around it — you must still click the mouse to zoom closer in or further out.
Rotation step in degrees: This rotates the virtual camera by the number of angular degrees set when using the rotation arrows.
The default value in most preset files for this is 10, though higher or lower is acceptable, depending on your needs.
Near the bottom of Figure 1, there are several buttons worth pointing out. From left moving toward the right of the tab there’s the ‘load settings,’ ‘save settings,’ ‘load example,’ ‘copy to clipboard,’ ‘paste from clipboard,’ ‘undo,’ and ‘redo.’
‘Load settings’ (Figure 3) allows the user to access any stored parameter settings already in the appropriate folder using a given filepath, to await the rendering process and/or editting for customization. In this case, I’ve created my own folder for personally designed and modified setting files, many of them involving Mandelbox figures and their Julia set variants.
The ‘save settings’ button, and its window (Figure 4) when clicked on is used to store all of the needed information files to render images from start to completion using a given filepath. Again, for this one, the filepath ends at my customized parameter set folder.
‘Load examples’ accesses complete premade parameter settings that as of this writing come free with the software, fractal types like preset Mandelboxes, Iterated Function Systems, Menger sponges, Gaskets, Hypercomplexes, Quaternions, and others in addition to the default Mandelbulb figure and its variations.
‘Copy to clipboard’ enables copying parameter settings as text to the clipboard, while ‘Paste from clipboard’ allows the pasting of those copied settings as text. This is useful for sharing parameter sets online as with forums.
‘Undo’ allows the reversing of whatever rendering results were just executed by the softeware, and this is a useful thing if you think you made a mistake with your settings. The Undo button can be your friend, but is limited to the previous 100 renderings.
‘Redo’ permits you to reverse the ‘Undo’ button’s effects if you click the latter by mistake, say, if your mouse hand was misdirected by your cat trying to sleep on it. NO Fluffykins! No kittehs sleeps on mah handz!
The engine tab in Figure 6 displays the settings that determine the specifics of the rendering process, though ‘Max. iterations,’ ‘Min. iterations,’ ‘Detail level,’ ‘DE step factor,’ ‘Smoothness,’ and the ‘Minimum and Maximum render distance’ boxes are the only settings here used by many of the images I’ve made so far.
‘Maximum iterations’ determines the maximum number of times the software cycles through the fractal formula used to create the image, improving detail in the figure with a higher value, whereas ‘Minimum iterations’ determines the lowest number of calculations permitting ray-marching to stop, and is used to lower the detail in figures with fewer iterations and a greater estimated distance along a surface.
‘Detail level’ determines the sharpness of an image, and for larger images it really helps their clarity if you reduce this number as image size in pixels goes up. A large image (Figure 7, and bigger than the thumbnail size given here at 400 x 400 pixels…) looks too busy or cluttered if the detail level is too high. The ratio for reducing the detail level is based on the image’s Y axis in pixel size, so if the hieght of an image is doubled, reduce the detail level value by half.
‘DE step factor’ is used to improve detail, reduce image ‘noise’ and avoid or lessen the appearance of artifacts like unsightly black specks and other defects in the image generated.
A high value given for this allows for faster rendering, less definition of detail, and most often a lower image quality, while a lower value can slow down rendering, often considerably, but especially with hybrid fractals (those which combine the formulas of different fractal types…) is useful for improving image quality, though this varies with the exact combination of settings used. For most images, 0.5 to 1.0 are good values, but for many hybrid fractal types, 0.2 or lower is much better.
Still better is an optimised DE step factor, calculated by the software by clicking on the ‘HQ’ (High Quality) button to the left of the ‘Smoothness’ box, or you may simply experiment by testing manually input values for this. Be warned that reducing the DE step factor by too much can slow rendering speed without also improving image quality. Optimize where possible.
‘Const. DE threshold’ may be used in place of Detail level, and in this case the degree of detail doesn’t depend on image resolution. I’ve yet to use it much myself, though this shall be covered in a future post when I get some meaningful experience with it.
‘Smoothness’ affects the apparent texture on a fractal’s surface shading, and a higher value generally means less textural detail to make out in the final image, whereas lower values result in finer detail. I tend to give this a lower value in most of my images, about 0.1 to 0.5.
For figure 7, ‘Image width’ and ‘Image height’ determine the dimensions in pixels for the rendered image, these values to be entered if not the default for an image before rendering begins.
For the Image saving settings, ‘Save JPG’ enables you to save the rendered image as a JPG file, ‘Save PNG’ in that lossless format, ‘Save PNG 16-bit’ as a PNG file that uses 16-bit color channels, ‘Save PNG 16-bit + Alpha’ as the previous, including a transparent background and glow effect, and finally, ‘Save all layers’ I rarely use, but it splits the rendered image into separate layers in several separate images, each with a different effect from the ‘Shaders’ tabs. I hardly ever use it as I prefer a single complete, compact image with all effects included in it.
But that’s just me.
‘Auto-save / animation image format’ when used with the ‘Auto-save’ button, lets you save images in a particular folder using the ‘Select file paths’ window in the app’s edit field for ‘Destination image sequence,’ or for images rendered for the purpose of animations, and this serves to determine the format they are saved in.
‘Brightness’ and ‘Contrast’ are self-explanatory, though I rarely use Gamma myself, and these three may be applied even after rendering is complete without repeating the rendering process. With the Stereoscopic Rendering settings, entering the value for ‘Distance between eyes’ determines the space between the ‘virtual eyes’ viewing the image, and higher values increase the degree of perceived depth for the image generated.
It’s often a good idea to keep Width and Height about 400 x 400 for exploring a region of a fractal surface, and adjusting upward for a larger image to be rendered when an interesting region has been found, either by clicking the mouse pointer onto the proper area of the rendering window (the default magnification per mouse click is x3, as noted above, but this is adjustable, see Figure 1), or by inputting the ‘Viewpoint coordinates’ and ‘Close up (zoom)’ and then clicking ‘Render’ directly. The ‘Image proportion’ menu provides a number of options for the image’s relative width and height.
The ‘Fractal formula’ menu, in Figure 8, is used to select the basic, generic fractal type to be rendered, from several types of Mandelboxes (again, my personal favorites) to other sorts like IFS, Hypercomplex, Benesi, Quaternion formulas, Menger sponges, and (another favorite of mine to play with…) Hybrid fractals, though I’ll get to those in an upcoming entry once the basics have been more fully dealt with.
In figure 9 and 10, we have the settings that adjust and determine some lighting effects, optical properties and the color palettes for the images.
Ambient: This increases or lowers the level of ambient lighting for a figure. For darker, gloomier and more eldritch-looking images I sometimes set this between 0.5 and 0.75 along with a low value for ‘Brightness’ and ‘Direct light’ for colors and other effects to reduce glare in an image.
Shading: This setting determines the level of shadows showing on a figure, and the shadows cast are based on the angle of the image’s virtual lighting.
Direct light: This sets the desired level for the figure’s forward lighting, and also has interesting effects on how shadows are cast on the object. I tend to set this at about 1.0 or less, sometimes to 0.5.
Specularity: This is the amount of reflectivity of a fractal surface. This is useful in combination with other settings for lending a glassy, liquid-like, or metallic sheen to the figure, which can produce some cool effects. I’ve used values up to about 4.0 to 5.0 for some of the images in my earlier City of Glass project.
Ambient occlusion: This generates the level of a figure’s virtual lighting, that illumination falling on it from all directions.
Figure 10, Shaders 2, has a number of useful settings, ‘Coloured surface,’ ‘Random seed,’ ‘Saturation,’ ‘Colour speed,’ ‘Random,’ ‘Get pallette from JPG,’ I’ll deal with all but the last here, as I seldom use that setting, preferring to randomize colors with each rendering to see what I’l get. Colored Surface can be turned back on if off or off if already checked, after rendering is complete.
The first allows the fractal surface to have a variety of colors, and variations of greyscale tones as well (I’ll get to that shortly), the second is a pseudorandom number used to select data from a color palette, and this is updated using the ‘Random’ button, in this version of the software, done before rendering begins. Some tips and tricks are here.
In some earlier versions of the app, Mandelbulber allows you to update the color palette after rendering the image with effects immediately applied, but in Mandelbulber for Mac v.1.16, this does not appear to be the case.
‘Saturation’ is what it says, determining the figure’s richness of color, with higher values increasing this, resulting in much more intense, and for me, often garish-looking tones, so depending on what I’m looking to generate, and the level of business I’m trying for, I may use it or not. It’s recommended though, for more ‘psychedelic’ or ‘New Age’ -looking images if you prefer.
With v. 1.16, at least the version for the Mac that I currently use, the rendering process must be restarted to apply the new color tones. Monochrome greyscale tones may be applied by inputting a value of zero in the ‘Saturation’ box and clicking ‘Random’ before rendering, or a single flat shaded greyscale effect is achieved by unclicking the ‘Coloured surface’ button before rendering.
I’ll deal with the ‘Shaders’ tabs as well as others not shown here in more detail in the next several posts of this series and in more detail than can be covered in the space of a single post. I’ll see you then.
(Last Update: 1:o5 AM, 2014/01/24, Text Addition and Correction)