Changes from ChaosPro V3.02 to V3.1

Notes:

  • Bug fixed means that the bahaviour was not intended by the author and has been changed.
  • New means the feature is new
  • Changed means the behaviour of ChaosPro has been changed in any way, most of the time in order to make ChaosPro more intuitive.
  • Improved means the behaviour has been improved somehow.

List of Changes

  • Bug fixed: Rotating a quaternion or 3D-Object did not work correctly if viewpoint was not (0/0/0).
  • Bug fixed: If you used the AntiAlias feature and resized the original fractal then ChaosPro blocked.
  • New: OpenGL for 3D transformations added: Many new parameters including textures etc. You can now switch between two 3D calculation modes: Standard and OpenGL.
  • New: Formula method void init_once(void) added: Called once a time right before the fractal calculation starts. Can be used with:

    See Also: How it works together

  • New: Compiler now supports subfunctions
  • New: Compiler supports function libraries using an import statement.
  • New: Compiler supports local variables for each function
  • New: Function parameters can be call-by-value or call-by-reference
  • New: Compiler knows data type array (static and dynamic)
  • Improved: Compiler speed enhanced: When compiling very large formulas (e.g. Brew formulas), it could last too long.
  • Improved: Compiler optimizer enhanced: Compiler now performs several steps and rounds in order to examine the formula and all of its variables to detect constant expressions. It will even detect partial constant assignments to static arrays and speed it up.
  • Changed/Improved: Message Window now contains a listbox instead of an MLE: Clicking onto a listbox entry jumps to error location (if the error occurred in the compiler)
  • Bug fixed: If you tried to render an animation and saved your images as png files it could happen that the files were corrupt. Sometimes ChaosPro advanced to the next animation image too fast.
  • New: Parameter Zoomspeed added to configuration file: Specifies how many times ChaosPro scales the image in case of a zoom.
  • Improved: Precision of animations increased: ChaosPro already containted arbitrary precision math in order to calculate area values of deep zooms. Unfortunately there were some bugs in my routines. So I threw away the code and took the MAPM package from Mike Ring, which works fast and very reliable. If you now zoom into a fractal at the highest possible level (round about 45 to 50 times), then even animations are calculated correctly.
  • Improved: Palette editor window has been redesigned, contains new color models: You can now decide which color mode you’d like to use. Changing the color mode now correctly affects the interpolation (in contrast to UF!).
  • New: Alpha Channel Editor added.
  • Improved: Changes to palette editor, alpha channel editor now can be undone (using Undo/Redo of Fractal)
  • New: Using Ctrl-C one can copy a fractal parameter set to the clipboard (text format) and paste it for example into a mail.
  • Bug fixed: Compiler could crash if a formula contained complicated constant expressions which internally were using a “stackframe” (which you of course did not notice, you only noticed a crash!).
  • Bug fixed: Image Manipulation Settings did not work correctly with Quaternions (ChaosPro crashed)
  • Changed: Colorcycling enhanced, on (very) fast computers it now works with 24 bit images as well.
  • Bug fixed: Compiling large formulas while using the slider could crash ChaosPro due to short refresh intervals (slider produces many refreshes) and long compiling intervals (large formula needs longer).
  • New: Raytracing export added: Wavefront or POVRay.
  • Bug fixed: On fast machines ChaosPro could block while creating animations.
  • Improved: Palette selection drop down combobox has been redesigned: The combo box will show small versions of each palette.
  • Bug fixed: After having calculated an animation the current fractal was not “activated”: Thus you were not able to open some of the windows. You first had to activate another fractal.
  • Improved: Fractal selection drop down combobox now shows the fractal type by displaying a small icon left to the fractal name. In addition to that layers of a “layered fractal” are indented. Icons are shown in Fractal Tree Window as well.
  • Changed: A fractal of type “Layered Fractal” cannot be selected directly: You only can select the different layers of such a fractal: This way you can change the settings of a layer more easily: In former versions you had to manually select a layer using the Fractal Tree Window or the drop down combobox. The layer property window now is an additional window for each fractal which can be opened as soon as the fractal is a layer.
  • Changed: Drag operation in a tree view control (Fractal or compiler formula) did not work perfectly: Draw operations (drop selection and drag image) interfered and produced strange artefacts.
  • New: You now can add another layer to a Layered Fractal either by dragging a fractal from the FractalTreeView window to the Layerlist of a Layered Fractal or by clicking onto the image button Add Layer, which lets you add any standard fractal type. The “Fractals” drop down box in the Layer Parameter window has been removed.
  • Improved: Animation Timeline object redesigned: It now displays its current selection more clearly
  • New: Animations based on Layered Fractals now can be converted, i.e. you can not only create an animation (AVI), but also single fractal parameter sets.
  • Bug fixed: If you rendered an animation and you created two frames which were equal, then ChaosPro detected that they are equal and did not render the second frame again. Unfortunately the frame then did not send the signal “I’m finished” (because the frame calculation did not even start!), so ChaosPro did not advance any more…
  • Bug fixed: Deleting a fractal layer using the toolbar could crash ChaosPro.
  • Bug fixed: When you chose to save an animation as a series of single images the image file names were numbered without leading zeros, i.e. base1, base2, base3, etc. This has been changed, the filenames now have leading zeros, i.e. base001, base002, base003, etc.
  • New: Image Filters added: SizeWindow c
    ontains filters (similar to Image Manipulation settings) direct antialiasing capabilities added (no additional window any more). Image Manipulation settings have been removed.
  • Bug fixed: Choosing menu item “File/Folders/Rename” did not change the name of the project file in the Fractal Tree Window.
  • Bug fixed: Duplicating a fractal project did not work at all. Fixed: It now duplicates a whole project including all fractals…
  • New: Pressing right mouse button in fractal window while holding down the SHIFT-Key brings up a context menu for fast access to several commands.
  • Bug fixed: IFS, LSystem and DynamicSystem in 24 bit mode used the wrong colors: red and blue parts were switched.
  • Bug fixed: DynamicSystem did not initialize DrawMode parameter correctly (i.e. points or lines)
  • New: DynamicSystem: New parameter added: Coloring: Lets you choose the type of coloring
  • Changed: DynamicSystem now correctly handles depth: Pixels far away are darker than pixels near the observer.
  • New: When using the 3D mode “OpenGL” you can use the mouse in order to rotate the object: In the fractal window hold down left mouse button and move mouse left/right/up/down to rotate the object. Hold down right mouse button to adjust the distance
  • Bug fixed: If you loaded a bitmap image and resized the image window, the image was lost. Changed, so that you cannot resize the image.
  • New: randomrange parameter added.
  • New: random function added.
  • New: Parameter pixelcolor added (same as “color” in UF3.0). This allows the implementation of direct coloring algorithms
  • New: In the description function additional parameter properties are allowed: visible and enabled (true/false).
  • New: The properties default, visible and enabled may contain arbitrary boolean expressions, which may reference any other parameter. Using these properties you can show/hide and enable/disable parameters depending on the current values of other parameters. Each time the value of a parameter changes, the expressions are evaluated!
  • New: Escapetime and Quaternion parameter windows now display all formula parameters at once: Upto ChaosPro 3.02 all formula parameters were listed in a drop down combobox: You selected a parameter and then the current parameter values appeared below that drop down combobox. This has been changed: Now all parameters and functions appear directly.
  • New: Compiler formulas: Parameter Separator added: Because all parameters appear at once it is now possible to add a separator between logical groups of parameters.
  • New: Compiler formulas: Compiler directives built in: #define, #undef, #ifdef, #else and #endif implemented. The following symbols are predefined: ULTRAFRACTAL,CHAOSPRO, UF_VER20, UF_VER30, VERSION300 and VERSION310
  • New: Compiler formulas: color datatype added, various functions for working with colors added
  • New: Compiler formulas: When comparing enumerated parameters you now can use the enumeration string itself. So you don’t have to compare against the string index.
  • Improved: Compatibility to UF3.0 added: You now can import all formulas from UF3.0. During import the formulas are rewritten using the ChaosPro syntax. Compatibility includes all new features of the formula compiler of UltraFractal 3.0
  • Changed: Dataview removed: Handling was too complicated, users did not see the goal of this feature.
  • New: Function ubound implemented: returns maximum dimension.
  • New: Compiler formulas: In ChaosPro arrays can be “parameters” as long as the dimension is 2. In order to initialize this parameter, you can choose a JPG or PNG image. If the array is dynamic then the array will get the dimension of the whole image. If the array is static, it will contain only a portion of the image (or black areas if the image is smaller).
  • Bug removed: Predefined variable numiter was not initialized if it was used only in coloring algorithms.
  • Bug fixed: If you imported (or loaded) formulas then under some circumstances a new directory appeared in the compiler window, which had the same name as another one and was empty. This happened if a compiler formula path was added which was already there, but ChaosPro compared using case sensitivity and thus did not recognize that.
  • Bug fixed: Sometimes the configuration file was corrupt and contained illegal window positions. Thus for example a window was opened at a location which was out of the screen and so you were not able to see the window.
  • New: Compiler formulas: Variables and parameters now can have a storage type: If you define a real variable, its a 80 bit coprocessor variable, if you define a double, then it’s a 64 bit IEEE number, and float=32 bit IEEE number. Int/Bool variables now are really int/bool variables, ChaosPro 3.02 actually used int/bool as synonym for “real”, thus you were able to store “float” values in “int” variables. ChaosPro 3.02 knew only one storage type: 80 bit coprocessor format.
  • New: Contexthelp implemented: All windows now contain a question mark in the title bar: This allows faster access to short help strings explaining functions in ChaosPro.
  • Changed: Memory consumption was high: Right after startup ChaosPro used about 10MB of physical memory. This was due to inefficient storing of IFS and LSystem formulas. This has been changed and thus the memory consumption was reduced by about 3 MB.
  • Improved: Comments enhanced: Creditlist added, new variables added, template mechanism added.
  • New: Some new options introduced: Taskpri, Username, number of undo steps, possibility to adjust window size and positions.
  • New: Option window added.
  • Improved: Layers can be dragged by holding down the Ctrl-Key.
  • Changed: Size window now allows you to specify the work area, i.e. the size of the Layered Fractal independently from the size of a layer inside it.

List of Changes from V3.02 to V3.1