Title: Mandelbulber v2 - 2.06 Post by: Buddhi on November 30, 2015, 06:12:34 PM Mandelbulber v2 2.06
Free download (executables for win32 and win64, OSX and multiplatform source): http://sourceforge.net/projects/mandelbulber/ https://github.com/buddhi1980/mandelbulber2 Together with zebastian, mclarekin and bermarte we have finished new version of Mandelbulber. This time main focus was on implementation of command line interface (for headless systems) and queue tool What is new? - Added Command Line Interface, which allows application to run on headless systems. From simple terminal (e.g. ssh session) it is possible to render still images and animations and also launch NetRender client or server. Full list of available options can be listed using --help option. - Added Queue feature to manage collection of settings which can be rendered automatically in background. - Added Italian language (thanks to bermarte) - Added use of SHIFT button to select between orthogonal or 45 degree strafe in flight animation recording. - Added + and - buttons to add or remove fractals from toolbar - Added "Add to toolbar" button in preview dialog - Added option for SSAO effect to use random directions of simulated rays - Added background image brightness control (necessary for HDR option) - Double clicking on preview in animation tables starts rendering of chosen frame/keyframe - Added function to uniform distance between camera target and camera through entire animation. It makes camera animation smooth. - GroupBoxes hide their content when they are not enabled - Added Platonic Solid formula - Added extended formulas: Menger, Mandelbulb6Beta and Benesi_Transforms. - Changed extended formula parameter names to begin with ”transform” and added additional transforms. (Note: V2.05 extended formula parameter files will require editing to be compatible with V2.06,) - Changed labels for keyframe numbers to start from zero - Collision detection now can be canceled - Added option in preferences dialog to disable quit confirmation dialog - Fixed bug: Program hanged when clicked too frequent on image or on navigation buttons - Fixed bug: 'last frame to render' was zero after loading settings - Fixed bug: NetRender often hanged at the end of rendering image - Fixed bug: Now NetRender client stops rendering when it looses connection - Fixed bug: Corrected number of frames to render in keyframe animation mode. It rendered one additional keyframe at the end. - Fixed bug: Some of animation thumbnail weren't displayed properly (random noise) - Fixed bug: memory leak in cTexture class - Fixed bug: eliminated SEGFAULTs at application quit About queue tool: Queue tool allows to render a collection of settings files in the background. While the list of settings files is being rendered, you can continue to work in the main window and also add more settings to the queue. Methods to manage queue: - by adding items using Add current settings button - by editing queue.fractlist file - by puting files into queue folder and use button Add orphaned - by adding single settings or lists using command line interface Temporary settings files are stored in $HOME/.mandelbulber/queue folder and the list is in $HOME/.mandelbulber/queue.fractlist The queue can be rendered in another instance of Mandelbulber program, as the queue is shared between applications. You can also launch another Mandelbulber from command line interface with -q option. Then this application will watch queue and render automatically all new items. Result images are saved into $HOME/.mandelbulber/images directory (or another if it's specified in application preferences.) About Command Line Interface: Code: Usage: ./mandelbulber2 [options] settings_file As always every feedback is appreciated! Source code repository (GIT, SVN) https://github.com/buddhi1980/mandelbulber2 Title: Re: Mandelbulber v2 - 2.06 Post by: quaz0r on November 30, 2015, 06:56:20 PM :chilli: :banana:
Title: Re: Mandelbulber v2 - 2.06 Post by: Buddhi on December 02, 2015, 07:29:38 PM Mandebulber 2.06 is finished, so now is the time to start creating version 2.07. As I wrote some time ago this release will focus on adding new formulas and transforms to mandelbulber.
I would like to invite you to development of formulas in Mandelbulber. Every help is appreciated. If some of you have some basic programing skills, below there are instructions how to write add own formulas into Mandelbulber code. Because I use Linux for development, the guide is prepared for Debian or Ubuntu. It looks a little complicated, but believe me, even person who never wrote any program can learn how to do this (on the Forum there is one guy who started based on this guide and it was his first contact with Linux and programming). If somebody wants, a can grant write access to Mandelbulber code repository. Writing own formulas in Mandelbulber To prepare your system to work with Mandelbulber you need to do following steps: - open Terminal application - paste following command to install all needed software: Code: sudo apt-get install libqt5gui5 qt5-default libpng12-0 libpng12-dev qttools5-dev qttools5-dev-tools libgsl0-dev libgsl0ldbl libgomp1 git qtcreator it will ask you for admin (root) password - download this file: https://github.com/buddhi1980/mandelbulber2/releases/download/2.06/mandelbulber2-2.06.tar.gz - unpack it somewhere (e.g. by using file manager) - open unpacked mandelbulber2-2.06 folder with File Manager - right click in File Manager and click Open In terminal - run install script by typing command: ./install (don't forget dot and slash) after compilation it will ask about your admin password to install all the files Now Mandelbulber is installed in your system and you have all needed files on place Retrieving fresh source from git repository: - create 'git' folder in your home directory - open some new Terminal - type: cd git git clone https://github.com/buddhi1980/mandelbulber2.git Now you have the newest version of Mandelbulber code in your system Compilation in QtCreator - open git/mandelbulber2/mandelbulber2/Release folder in File Manager - open mandelbulber.pro in Qt Creator - when it's open, click Configure Project - unfold Compiler Messages window (on the bottom of window) - click hammer icon (build - left/bottom corner) the program will be compiled. If you did all steps correctly, shouldn't be error here - try to run the program using green arrow Adding new formulas: - fractal_list.hpp:30 - enum enumFractalFormula - here is the list of formulas. Add new formula at the end with unique number. - fractal_list.cpp:28 - void DefineFractalList(QList<sFractalDescription> *fractalList) - here is detailed list of formulas example: fractalList->append(sFractalDescription("Kaleidoscopic IFS", "ifs", kaleidoscopicIFS, analitycDE)); 1st parameter: Displayed name of the fractal 2nd parameter: internal name of the fractal. The same name is used for UI files 3rd parameter: the same name as in enumFractalFormula 4th parameter: type of distance estimation. Most of formulas use deltaDE estimation which needs more computation but doesn't need any special code from you. - fractal_formulas.cpp - here are definitions of function which calculate single fractal iteration. There is no adding of C constant and bailout condition here. example: Code: void MandelbulbIteration(CVector3 &z, const cFractal *fractal, sMandelbulbAux &aux) arguments: z - input / output variable containing iteration vector const cFractal *fractal - read only container with all fractal parameters sMandelbulbAux &aux - input / output auxiliary structure containing values needed for instant to calculate estimated distance All parameters and data structures are defined in fractal.h - fractal_formulas.hpp - here are declaration of functions - compute_fractal.cpp:42 - void Compute(const cFourFractals &four, const sFractalIn &in, sFractalOut *out) - here is the main iteration loop. You need to add in line about 290 calling of your new function. In line 305 you can do some exceptions for adding C constant Code: //addition of constant In line 344 there are bailout conditions. Now all formulas use the same condition. You you need to create any special escape condition then just tell me. Code: //escape conditions
- fractal.cpp, fractal.hpp - here are data structures for fractal parameters. There is also copying of values from internal parameter representation to data structures which you use in fractal functions To create UI files you can use Qt Designer application. The best would be if you make them based on existing files. All ui files are located in git/mandelbulber2/qt_data folder. Names start with fractal_ and the rest of name is the same as internal fractal name. Even if formula doesn't use any parameters, you need to create UI file which is the same like fractal_quaternion.ui (some kind of dummy). To have UI available from the program you have to copy ui file to /usr/share/mandelbulber2/qt_data folder. In UI files there are very important names of edit fields. The program connects automatically edit fields with adequate parameters and connects edit fields with sliders/knobs. But to make it working first part of the name must describe type of edit widget. Use following prefixes: - spinbox_ - scalar value - slider_ - slider for scalar value - checkBox_ - boolean value - spinboxd3_ - edit field for knob for angle. This is for 3 dimensions, where angles are stored in CVector3 data type. Last letter of name must indicate axis name (_x, _y, _z) - dial3 - knob for spinboxd3 - spinboxInt - spinbox for integer value - sliderInt - slider for spinboxInt - logedit - edit field for high variation value (only positive) - logslider - slider for logedit which changes value in logarithmic scale - vect3 - 3d vector (related to CVector3 data type). Name must ends with axis name[/li][/list] Rest of the name of edit field must be the same as defined in initparameters.cpp Title: Re: Mandelbulber v2 - 2.06 Post by: M Benesi on December 02, 2015, 11:34:35 PM yeah! :D I need to start exploring the environment you created.
Have a couple of things I want to do that look like they will be hard to do in Fragmentarium (or costly GPU wise according to 3dickulus- don't really get why... I'll ask him), and quite impossible to do in M3D since I don't have access to Delphi- but I can use qt-GCC to work on Mandelbulber 2.06 source. I'll run my code attempts by you, and let you know what I'm trying to add (main idea now is a "spray gun" to spray fractals onto other fractals like icynene foam (if you've never seen spray foam... :https://www.youtube.com/watch?v=gnuhEQLV6_I)). Thanks Buddhi! Title: Re: Mandelbulber v2 - 2.06 Post by: mfg on December 21, 2015, 03:45:55 AM Excellent program Buddhi! congratulations!
Your comments on version 2.06 have been most useful, particularly for implementing new formulae. (I had been working my way out since v.2.04) I certainly have somo doubts but I will post them in due time. cheers, pd. when I save the image file with a long name in png, the file name is cut down to the first few characters. (The long name works nicely in the settings .fract file) Title: Re: Mandelbulber v2 - 2.06 Post by: zebastian on December 22, 2015, 05:29:46 PM hi mfg,
could it be, that the name is cut on some special character? I just tried german Umlaute for the first time (ÄÖÜäöü) and these produce strange behaviour. I just opened a ticket on github: https://github.com/buddhi1980/mandelbulber2/issues/66 is this it, or do you think this is some other problem Title: Re: Mandelbulber v2 - 2.06 Post by: AbstractBarista on January 21, 2016, 05:32:14 PM Just wanted to give thanks for the headless release. I am now rendering many times faster across my servers! ;D
Compilation and install script were very smooth. Title: Re: Mandelbulber v2 - 2.06 Post by: visual.bermarte on March 11, 2016, 06:42:36 PM Exr support is now available also for OS X platform ;D :beer: > http://bit.ly/1LgVt7q |