First important step is to set up paths for keyframes, animation path, and rendered frames. To do this press Select file paths (output images, textures) button. In this window, using Select button on the right side of Keyframe sequence edit field please specify directory, where you want to keep keyframe files. If needed create a new directory. As a filename type "keyframe".
Next do the same for destination of rendered animation frames. The path has to be specified in Destination image sequence edit field. Filename has to be without extension (e.g. "image", "frame")
You can also specify files with textures and background but it is possible later. When you finish, press OK button.
It is good to save settings now using Save settings button. With this settings file you will be able to continue preparing animation after restarting Mandelbulber program. You should always use this file to save changes after changing some global parameter of animation (e.g. background image, colour palette, fractal formula, etc.)
There are some parameters which cannot be animated. They are constant for all the animation. Some of them has to be set at the beginning, because changes in the middle of work could cause weird effects.
Parameters which have to be adjusted at the beginning:
- Fractal tab
- Fractal formula type
- Julia mode (checkbox)
- Tglad's folding mode (checkbox)
- Spherical folding mode (checkbox)
- Kaleidoscopic IFS folding mode (checkbox)
- Maxiter threshold mode (checkbox)
- Interior mode (checkbox)
- Linear DE mode (checkbox)
- IFS tab
- abs(x), abs(y), abs(z) (checkboxes)
- Symmetry vectors - enabled (checkboxes)
- Hybrid tab
- formula types
- number of iterations for each formula
- cyclic loop (checkbox)
- Mandelbox tab
- Enable rotation of each folding plane (checkbox)
- Shaders tab
- Shadows (checkbox)
Below is the list of parameters which are not animated but have influence for all the animation. It is safe to change decision about these parameters at any time but the change will be visible on all keyframes.
- Fractal tab
- Max. terations
- Min. iterations
- Dynamic DE correction (checkbox)
- Enable limits (checkbox)
- Shaders tab
- Shadows (checkbox)
- Ambient occlusion (checkbox)
- Ambient occlusion fast mode (checkbox)
- Not DE shading mode (checkbox)
- Textured background (checkbox)
- Coloured surface (checkbox)
- Random seed
- Change palette using Random palette button or Get palette from image
- Glow color
- Background color
- Lights tab
- Number of aux. lights
- Predefined lights - enable (checkboxes), colour
- Image tab
- Image width
- Image height
- Enable stereoscopic rendering (checkbox)
- Post effects tab
- Enable fog (checkbox)
- Fog colour (checkbox)
- Screen space ambient occlusion enable (checkbox)
- Depth of field enable (checkbox)
- Frames per key
- Start frame, end frame
After changes of global parameters it is also recommended to save settings, because these parameters are not loaded from key-frame files. This settings file will be necessary when you want to continue preparing or rendering animation afrer restarting Mandelbulber program.
Open the Timeline window (big Timeline button on the bottom). In this window there will be visible thumbnail for all keyframes. There are also buttons for adding and deleting keyframes.
Keyframe is the set of parameters for one of intermediate point in the time. There is no needed to specify parameters for all frames, but only one keyframe for number of frames. On Animation tab there is parameter which specify how many frames will be between each keyframe.
To create new keyframe first you have to set what you want to have on animation frame. Set required position and rotation of camera or set some specific parameter which control fractal shape or shader. It it ready then press Record button. Then you will see thumbnail for this keyframe in Timeline window.
To create next keyframe do the same. Fist change a little camera position and rotation or some other parameter. Next press Record or Insert after button. You will see second keyframe thumbnail in Timeline window
- Record button puts parameters into actual keyframe number (Key no. field on the right). It loads and render next keyframe if it is not the last keyframe.
- Insert after button inserts parameters between actual keyframe number and the next. It loads and render next keyframe if it is not the last keyframe.
- Delete button deletes selected keyframe.
- Previous and Next buttons loads and render previous or next keyframe.
- Refresh button renders all thumbnails ones again. It is necessary to use this after changing of some global parameter.
- It is possible to load keyframe by double-click on keyframe thumbnail.
To modify some keyframe first you have to load this keyframe (e.g. by double-click on keyframe thumbnail). Next change the required parameter. Finally press Record button to put parameters inot the same keyframe.
Interpolation between keyframes
Mandelbulber uses Catmull-Rom Splines for interpolating parameters between keyframes. These splines always passes through control points and gives smooth changes of position (value) and velocity.
Below there is an example of Catmull-Rom interpolation.
As it is visible the path goes exactly through intermediate points. So it is good to place these points near the obstacles to be sure that the line will no go through them. It is especially important for camera tracking. If camera has to go through some hole, create keyframe with camera located exactly in the centre of the hole.
Next important thing is not to make to high changes between control point in one step. It could cause overshooting of the interpolated values. For example camera is moving toward the wall. On first keyframe distance of the camera to the wall is about 9 units, on second 0.7 and on the third only 0.2. Between the first and the second keyframe distance is reduced about 13 times. In this example the camera will collide with wall because of nature of Catmull-Rom splines.
It is better to decrease distance in smaller steps. In first step reduce distance 5 times and in second step also about 5 times. Camera will not collide with the wall. Changing relative value maximum 7 times in one step guarantees interpolated path without overshooting.
First there should be specified the number of frames for each keyframe. This value has to be put on Animation tab in Frames per key edit field. There should be also specified the range of frames to render. For render whole animation Start frame should be 0 and End frame should equals to number of frames per keyframe multiplied by total number of keyframes. Be sure that destination folder for images is empty. Finally press Render from key-frames button and wait for final result.
The animation will be rendered as a JPEG image sequence (by default) and image files will be located in the folder defined at the beginning (see Initial Setup). Image format can be changed on Image tab by Autosave / animation image format combo box.
Hint for advanced users
In addition to the initial setup you can prepare more than one animation setup and save these within keyframe files. For example, it might be useful to create a separate setup for preview rendering. The following steps are necessary:
- Load the keyframe, where your preview setting should be placed with the load settings button - for example keyframe00000.fract
- make the changes to global settings like image size, frames per key and all the other settings you'd like to change for a quick preview of your animation.
- for preview renders it's useful to deactivate all time consuming quality settings like ambient occlusion, volumetric light or raytraced reflections. make sure, that you don't touch any setting at this stage, that changes the fractal itself or the camera!
- to make your animation preview completely independent from the final render setup it is also useful to change the path of the destination image sequence. you can create for example a subfolder named preview in your final destination folder and choose this one for the preview image sequence.
- when all the changes to global settings are made, save this setting with save settings in your keyframe file - in this example keyframe00000.fract. Important: do not use the timeline for this step or your settings will be lost!
when you start Mandelbulber the next time, it will start with the initial setup for the final animation. if you want to load the settings for the preview render, just open the keyframe file you saved in the previous step with load settings (not by doubleclicking in the timeline) and you have all the settings restored for your preview render without touching the main animation. to return to the quality settings just open the initial setup file (default.fract) manually or restart Mandelbulber.
- Reduce image resolution during preparation of animation. It will make faster image rendering during camera moving
- Before final rendering, render whole animation in very small resolution (e.g. 160x120) to check whether the camera not collides with fractal surface
- If rendering of animation was terminated (program closed), to continue rendering just load the setting file and press Render from key-frames button. The program will automatically analyse which frames were already rendered and will continue rendering missed frames.
- If after rendering some keyframe has to be corrected it is not necessary to render whole animation from the beginning. Example: keyframe no. 10 was corrected, frames per keyframe = 100. You should delete 200 frames before the keyframe (from 800) and 200 frames after the keyframe (to 1200). Next press Render from key-frames button. The program will automatically analyse which frames are exists in destination folder and will render only missed frames.
- During preparation of camera movement watch on View tab Estimated viewpoint distance to the surface and Distance form last keyframe values. Those values will help avoiding to high changes of distance or keeping constant camera speed.
- Keyframes are stored in "keyframe12345.fract" files. Those files can be loaded using Load Settings
- Animation can be rendered without using graphical UI. When animation is already prepared and settings are saved for example in "/home/user/animation.fract", please type in shell:
- mandelbulber -keyframe "/home/user/animation.fract"
- Because rendering takes a lot of time it is good to run Mandelbulber with lower priority using nice command (under Linux): nice mandelbulber -keyframe "/home/user/animation.fract"
- Program will immediately start rendering of missed framed of animation according to settings (image resolution, frames per key, paths for files, etc.) stored in indicated file.