Welcome to Fractal Forums

Fractal Software => Releases => Topic started by: Buddhi on May 09, 2015, 06:41:28 PM




Title: Mandelbulber v2 - 2.04
Post by: Buddhi on May 09, 2015, 06:41:28 PM
Mandelbulber v2 2.04

Free download (executables for win32 and win64 and multiplatform source): http://sourceforge.net/projects/mandelbulber/
Website:       http://www.mandelbulber.com/

With big help from Sebastian Jennen I have finished new release of Mandelbulber.
This time there was focus on implementation of NetRender engine.  This allows to render the same image or animation on several computers connected with Ethernet network. The program shares and schedule work for all connected workstations and uses all available CPUs.
Other significant change is implementation of ray-traced transparency. There are used Fresnel's equations for refraction to improve realism of image. Example is here: http://www.fractalforums.com/gallery-b177/almost-apollosphere/


What is new?
- added ray-traced transparency and Fresnel's refraction
- added NetRender - rendering of the same image or animation on multiple machines over the TCP/IP network (Internet, local LAN).
- shading of DOF parallelized via OpenMP (leverages shading time roughly about 1/3 on an 8 core CPU),
- added boolean functions for fractal formulas
- added transform functions for fractal formulas (useful for boolean operations)
- added several fractal formulas
- added box and spherical folding
- more ergonomic layout for IFS formula
- added log window (information dock)
- added histogram view
- application settings are saved when application is shut down
- fixed bug: saved jpeg images where corrupted when width was not multiply of 4
- fixed bug: there was noise when "stop at maximum iteration" mode was enabled
- source code repository moved to http://github.com/buddhi1980/mandelbulber2
- fixed bug: corrected calculation of coordinates of 3D cursor when there was used 3-point perspective

As always every feedback is appreciated!

Source code repository (GIT, SVN) https://github.com/buddhi1980/mandelbulber2



Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on May 10, 2015, 04:03:14 AM
Thanks Buddhi and team.


So far running well except for an intermittent issue  where the render screen does not always update, this happened occasionally with V2.03 as well.

Simply changing between "fit to window"  to "100%" or vice versa refreshes the screen, so not a big problem. Might just be my computer configuration.


Title: Re: Mandelbulber v2 - 2.04
Post by: meander on May 13, 2015, 12:27:38 AM
I have a mixed qt4 & qt5 environment under Debian Jesse, and on attempting a compile, received the error message:

"Project MESSAGE: Warning: unknown QT: uitools"

It is simply fixed by running "export QT_SELECT=5" before starting compilation.

Thanks again for a wonderful visual extravaganza!


Title: Re: Mandelbulber v2 - 2.04
Post by: quaz0r on May 13, 2015, 05:00:49 AM
on my system qt4 is installed to /usr/lib/qt4 and qt5 is installed to /usr/lib/qt5, so if i want qt5 i run /usr/lib/qt5/bin/qmake and all is well, *shrug*

as a side note, its time for qt4 to die already.


Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on May 14, 2015, 02:40:47 AM
wishlist - for Boolean operations, being able to move and scale the individual fractals.


Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on May 18, 2015, 07:34:34 AM
Saving PNG + alpha gives me a blank image, has anyone had this problem?
Rendering progress bar does not update after a while. Works again when I close and reload programme.

Being able to use more than one water effect is fun to explore


Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on May 19, 2015, 05:02:44 AM
wish list - quarternion - formula specific parameters  - c.x, c.y, c.z & c.w. for the addition constants.

For all formulae that include  " + c " constant multiplier, being able to enter the x, y, z components individually as formula specific parameters would be good also.



Title: Re: Mandelbulber v2 - 2.04
Post by: thegoatboy on May 19, 2015, 04:06:04 PM
Should this version work on a mac?


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on May 19, 2015, 05:28:19 PM
Not yet but this weekend I can give it a try if you want.  :hurt:
Does it work for you the other one?


Title: Re: Mandelbulber v2 - 2.04
Post by: thegoatboy on May 19, 2015, 05:31:42 PM
I've tried 2.02 (I think) but have this problem:

http://www.fractalforums.com/general-discussion/mandelbulber-on-a-mac/msg83788/#new (http://www.fractalforums.com/general-discussion/mandelbulber-on-a-mac/msg83788/#new)




Title: Re: Mandelbulber v2 - 2.04
Post by: zebastian on May 19, 2015, 09:54:13 PM
Saving PNG + alpha gives me a blank image, has anyone had this problem?
Rendering progress bar does not update after a while. Works again when I close and reload programme.

Being able to use more than one water effect is fun to explore

To the alpha channel problem:
Yes, there is a bug in the current version, which produces "all empty alpha",
this causes the image to be fully transparent.
We will fix this in the new version.

Can you elaborate how to produce the second issue?
BTW: You can directly report issues to the development platform here:
https://github.com/buddhi1980/mandelbulber2/issues

Thanks for testing  :)


Title: Re: Mandelbulber v2 - 2.04
Post by: youhn on May 24, 2015, 11:29:37 AM
Since my main PC crashed a few weeks ago, now I only have my work laptop that I can use at home. But it's restricted, so I cannot installed anything. I do have access to a remote Linux PC, but it's over slow internet. To use Mandelbulber I see two options:

1. Compile under Linux on remote PC, but for Windows.
2. Use a portable-stand alone version of Mandelbulber

For both options I need help. Would it be possible to compile Mandelbulber v2 under Linux for Windows ... ? If not, would a portable software package be possible?


Title: Re: Mandelbulber v2 - 2.04
Post by: quaz0r on May 24, 2015, 06:29:37 PM
if the mandelbulber v2 windows installer is still like the installer i remember from v1, i think it just unarchives to an install directory, not writing to the registry or doing anything fancy, so can you just "install" it to your my documents folder or something?  thats how ive installed things like firefox on restricted work computers  :)


Title: Re: Mandelbulber v2 - 2.04
Post by: mfg on May 25, 2015, 07:16:26 AM
Very nice software, congratulations!

How can I enter a user defined formula in this v2.04 version?


Title: Re: Mandelbulber v2 - 2.04
Post by: youhn on May 25, 2015, 10:08:10 AM
For now you'll have to edit the source files and recompile the software. I could do that for you.

What formulas would you like to see added to Mandelbulber v2 ?


Title: Re: Mandelbulber v2 - 2.04
Post by: youhn on May 25, 2015, 12:01:55 PM
if the mandelbulber v2 windows installer is still like the installer i remember from v1, i think it just unarchives to an install directory, not writing to the registry or doing anything fancy, so can you just "install" it to your my documents folder or something?  thats how ive installed things like firefox on restricted work computers  :)

You are wrong. Due to writing to restricted places the installer gave me an error:

Code:
Error in action ExecuteAction: Error in action InstallProgramFolderShortcut: can't create directory "C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Mandelbulber v2 win64": permission denied
Error in action ExecuteAction: Error in action InstallProgramFolderShortcut: can't create directory "C:/ProgramData/Microsoft/Windows/Start Menu/Programs/Mandelbulber v2 win64": permission denied
    while executing
"$obj execute"
    (procedure "::InstallJammer::ExecuteActions" line 64)
    invoked from within
"::InstallJammer::ExecuteActions $id -when $when"
    (procedure "::InstallJammer::RaiseEventHandler" line 79)
    invoked from within
"::InstallJammer::RaiseEventHandler  .wizard"
    (command bound to event)

AND, it also writes to registry key "HKEY_CURRENT_USER\Software\Mandelbulber" and "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Uninstall\6DF65BA0-CE0F-48A8-BB53-AA35529602B7" and some others.


So my request for the following options still stands:

Quote
1. Compile under Linux on remote PC, but for Windows.
2. Use a portable-stand alone version of Mandelbulber

For both options I need help. Would it be possible to compile Mandelbulber v2 under Linux for Windows ... ? If not, would a portable software package be possible?


Title: Re: Mandelbulber v2 - 2.04
Post by: Brocoli on May 29, 2015, 08:41:16 PM
Hello Buddhi, very nice release.

A powerful features to had, is a timeline like this video http://sub.blue/fractal-lab#facebook (http://sub.blue/fractal-lab#facebook)
You can see the timeline at 6.40.

And an interactive mode to make fast change like the 3d navi mode in mandelbulber 3d.


Title: Re: Mandelbulber v2 - 2.04
Post by: youhn on May 31, 2015, 02:14:55 PM
wish list - quarternion - formula specific parameters  - c.x, c.y, c.z & c.w. for the addition constants.

For all formulae that include  " + c " constant multiplier, being able to enter the x, y, z components individually as formula specific parameters would be good also.

I experience some vagueness in the Mandelbulber code about this. I was evaluating if I could add this request for you, since I'm focussed on development of new formula for MB anyway. But I could use some help understanding the code:

Code:
                //addition of constant
                switch(fractal->formula)
                {
                        case menger_sponge:
                        case kaleidoscopicIFS:
                        case aexion:
                        {
                                break;
                        }
                        default:
                        {
                                if(in.common.juliaMode)
                                {
                                        z += in.common.juliaC;
                                }
                                else
                                {
                                        z += c * in.common.constantMultiplier;
                                }
                                break;
                        }
                }
Source: https://github.com/buddhi1980/mandelbulber2/blob/master/mandelbulber2/src/compute_fractal.cpp

In normal mode, the Julia constant vector (in.common.juliaC) is greyed out in the GUI. I don't see it being used in the calculation, as there is another constant which is used as multiplication instead of addition. Would it be nice to have this constant multiplier (in.common.constantMultiplier) in both x,y,z instead as 1 value?

In Julia mode, the Julia constant vector (in.common.juliaC) is usable in the GUI. Probably we can use this same variable also in the normal (non-Julia) mode as addition constant.

Any other ideas?


Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on June 01, 2015, 01:34:03 AM
Quote
Would it be nice to have this constant multiplier (in.common.constantMultiplier) in both x,y,z instead as 1 value?

Yes, that's the easy bit.


The following modification to the common code is suggested :

Code:
if(in.common.juliaMode)
                                {
                                        z += in.common.juliaC;
                                }
                                else
                                {
                                        z += c * in.common.constantMultiplier;

This code could be combined to be

Code:
z +=  (c * in.common.constantMultiplier) +   in.common.juliaC;

  And remove the Julia enabling  bit of code.

 Default values c (1, 1, 1) ,  juliaC (0, 0 , 0). ie  No Julia
 Changing values to   c (0, 0, 0) ,  juliaC (1, 1 , 1) produces a pure Julia (in this case with Julia coordinates of (1, 1, 1), or use (get Julia Constant) with mouse click".

With this formula set up you can animate/morph from  a standard fractal to a julia,  can also mix a range of positive and negative "constant multipliers", we now have six parameters of infinite possibilities. (With probably none  or little increase in overhead.)
Also it will be possible to make hybrids mixing Julia fractals  with standard  fractals.

Having constant multiplier  and  the juliaC (addition constant) on each fractal tab would  be more user friendly.  (with individual constant multipliers and Julia constants specific for each fractal)


Here is the code in openCL if you want to try it out

Initial Conditions:
Code:
float tgladDE = 1.0f;


float3 foldingLimit = consts->fractal.mandelbox.foldingLimit;

float3 foldingValue = consts->fractal.mandelbox.foldingValue;

float mr2 = consts->fractal.mandelbox.minRadius * consts->fractal.mandelbox.minRadius;

float fr2 = consts->fractal.mandelbox.fixedRadius * consts->fractal.mandelbox.fixedRadius;

float scale = consts->fractal.mandelbox.scale;


float3 c3  = (float3){consts->fractal.custom[3], consts->fractal.custom[4], consts->fractal.custom[5]};
c3 = point * c3;

float3 Jc3  = (float3){consts->fractal.custom[6], consts->fractal.custom[7], consts->fractal.custom[8]};
// can instead   be float3 Jc3  = consts->fractal.julia;

colourMin = 0.0f;



Loop Code:

Code:
// MX+c3+cj


//box fold
int3 cond1, cond2;


cond1 = isgreater(z, foldingLimit);

cond2 = isless(z, -foldingLimit);

z = select(z,  foldingValue - z, cond1);

z = select(z,  -foldingValue - z, cond2);



// spherical fold (temp modify m)
float rr = dot(z,z);

float m = scale;

if (rr < mr2) m *= native_divide(fr2, mr2);

else if (rr < fr2) m *= native_divide(fr2,rr);



//example of use of rotation matrix (Mandelbox main rotation)
z = Matrix33MulFloat3(consts->fractal.mandelbox.mainRot, z);


// scale and constants applied
z = z * m + c3 + Jc3;

tgladDE = tgladDE * fabs(m) +  1.0f;

r = distance(z, orbitTrap);


colourMin += fabs(m);



#if _orbitTrapsEnabled
if (i >= consts->fractal.fakeLightsMinIter && i <= consts->fractal.fakeLightsMaxIter) distFromOrbitTrap += (1.0f/(r*r));

#endif
if(r>1024.0f)
 

{
dist = r / fabs(tgladDE);

out.colourIndex = colourMin / i * 300.0f;

break;
}


Thanks youhn for getting involved in the project, I only wish I new more about programming so I could also help. :)


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on June 07, 2015, 01:08:21 PM
This is a preview of latest build for OSX.


Title: Re: Mandelbulber v2 - 2.04
Post by: zebastian on June 07, 2015, 05:37:29 PM
This is a preview of latest build for OSX.
GUI seems to be a little messed up and button icons are missing.
Do you get any errors under view > show info dock?


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on June 07, 2015, 05:54:56 PM
GUI seems to be a little messed up and button icons are missing.
Do you get any errors under view > show info dock?
Hi Zebastian, this is part of the info dock's output, I don't see errors
Code:
PID: 702, time: 0.041865, Mandelbulber version, value = 2.04
PID: 702, time: 0.042004, Mandelbulber compilation date, value = Jun 6 2015 23:05:37
PID: 702, time: 0.042165, CPUs detected, value = 2
PID: 702, time: 0.042287, Default data directory, value = /Users/save/.mandelbulber/
PID: 702, time: 0.044900, Decimal point, value = ,
PID: 702, time: 0.045225, Prepare QApplication
PID: 702, time: 0.148932, Prepare translator
PID: 702, time: 0.149153, locale, value = nl_NL
PID: 702, time: 0.150383, Instaling translator
PID: 702, time: 0.150952, CreateDefaultFolders()
PID: 702, time: 0.151262, Directory already exists, value = /Users/save/.mandelbulber/
PID: 702, time: 0.151594, Directory already exists, value = /Users/save/.mandelbulber/images
PID: 702, time: 0.151812, Directory already exists, value = /Users/save/.mandelbulber/keyframes
PID: 702, time: 0.152218, Directory already exists, value = /Users/save/.mandelbulber/paths
PID: 702, time: 0.152610, Directory already exists, value = /Users/save/.mandelbulber/undo
PID: 702, time: 0.152826, Directory already exists, value = /Users/save/.mandelbulber/paths
PID: 702, time: 0.153103, Directory already exists, value = /Users/save/.mandelbulber/thumbnails
PID: 702, time: 0.153346, Directory already exists, value = /Users/save/.mandelbulber/toolbar
PID: 702, time: 0.154630, Parameters initialization started: main
PID: 702, time: 0.158438, Parameters initialization finished
PID: 702, time: 0.158665, Fractal parameters initialization started: fractal0
PID: 702, time: 0.160708, Fractal parameters initialization finished
PID: 702, time: 0.160902, Fractal parameters initialization started: fractal1
PID: 702, time: 0.162802, Fractal parameters initialization finished
PID: 702, time: 0.162946, Fractal parameters initialization started: fractal2
PID: 702, time: 0.164175, Fractal parameters initialization finished
PID: 702, time: 0.164350, Fractal parameters initialization started: fractal3
PID: 702, time: 0.166268, Fractal parameters initialization finished
PID: 702, time: 0.167839, Prepare RenderWindow class
PID: 702, time: 0.524341, Restoring window geometry
PID: 702, time: 0.524523, Restoring window state
PID: 702, time: 0.532430, mainWindow->show()
PID: 702, time: 0.745779, Prepare RenderedImage class
PID: 702, time: 0.746202, Setup of main image
PID: 702, time: 0.804529, Prepare progress and status bar
PID: 702, time: 0.807986, cInterface::InitializeFractalUi(QString &uiFileName) started
PID: 702, time: 0.818257, cInterface::InitializeFractalUi(QString &uiFileName) finished
PID: 702, time: 0.819002, cInterface::PopulateToolbar(QWidget *window, QToolBar *toolBar) started
PID: 702, time: 0.819659, Generating thumbnail for preset, value = /Users/save/.mandelbulber/toolbar/dodecahedron.fract
PID: 702, time: 0.819754, Loading settings started, value = /Users/save/.mandelbulber/toolbar/dodecahedron.fract
PID: 702, time: 0.820308, Settings loaded, value = # Mandelbulber settings file
# version 2.03
# only modified parameters
[main_parameters]
camera -0.7627320891806812 -2.610387704923568 0.4851797438368343;
camera_distance_to_target 2.668061375705393;
camera_rotation -5.74738967829245 -10.47737803273338 0;
camera_top 0.01821068492452604 0.1809331634116791 0.9833267825765869;
formula_1 5;
target -0.5 0 0;
view_distance_max 3.468462503315997;
[fractal_1]
IFS_abs_x true;
IFS_abs_y true;
IFS_abs_z true;
IFS_direction_5 1 -1 0;
IFS_direction_6 1 0 -1;
IFS_direction_7 0 1 -1;
IFS_enabled_5 true;
IFS_enabled_6 true;
IFS_enabled_7 true;
[fractal_2]
[fractal_3]
[fractal_4]

PID: 546, time: 1.176150, Parameters initialization started:
PID: 546, time: 1.178064, Parameters initialization finished
PID: 546, time: 1.178118, Fractal parameters initialization started:
PID: 546, time: 1.179201, Fractal parameters initialization finished
PID: 546, time: 1.179259, Fractal parameters initialization started:
PID: 546, time: 1.180330, Fractal parameters initialization finished
PID: 546, time: 1.180381, Fractal parameters initialization started:
PID: 546, time: 1.181431, Fractal parameters initialization finished
PID: 546, time: 1.181481, Fractal parameters initialization started:
PID: 546, time: 1.182544, Fractal parameters initialization finished
PID: 546, time: 1.182595, cSettings::Decode(cParameterContainer *par, cFractalContainer *fractPar, cAnimationFrames *frames)
PID: 546, time: 1.201904, cInterface::PopulateToolbar(QWidget *window, QToolBar *toolBar) finished
PID: 546, time: 1.202055, cInterface::ConnectSignals(void)
PID: 546, time: 1.205739, cInterface::ConnectSignals(void) finished
PID: 546, time: 1.396306, Loading settings started, value = /Users/save/.mandelbulber/mandelbulber.ini
PID: 546, time: 1.397726, Settings loaded, value = # Mandelbulber settings file
PID: 546, time: 1.400693, cSettings::Decode(cParameterContainer *par, cFractalContainer *fractPar, cAnimationFrames *frames)
PID: 546, time: 1.406515, cInterface::SynchronizeInterface(cParameterContainer *par, cFractalContainer *parFractal, enumReadWrite mode)
PID: 546, time: 1.553160, cInterface::SynchronizeInterface(cParameterContainer *par, cFractalContainer *parFractal, enumReadWrite mode)
PID: 546, time: 1.559682, application->exec()
Could you please show me what button icons are missing? ok, I see now, I must investigate what is going on.
I will publish the binary in a couple of minutes The sourceforge.net website is temporarily in static offline mode  :hurt:.

To build it successfully I had to install GNU scientific library inside /usr/local/ which is not standard on mac OSX (I mean gsl library),  I have added
 -I/usr/local/include/ and -L/usr/local/lib/ to our makefile, together with png header and library.
Then I got
Code:
../src/rendered_image_widget.cpp:300:67: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...screenPoint.y, z, r * sw, (sRGB8 ) { 0, 100, 255 }, r * 0.1 * sw, 1.0,...
                               ^        ~~~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:556:78: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:560:78: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:564:78: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 100, 255 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:570:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:573:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:576:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:579:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:582:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:585:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 255, 0, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:589:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:592:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:595:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:598:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:601:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:604:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 255, 0 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:608:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 150, 255 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:611:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 150, 255 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~~~
../src/rendered_image_widget.cpp:614:77: error: non-aggregate type 'sRGB8' (aka
      'tsRGB<unsigned char>') cannot be initialized with an initializer list
  ...point2.x, point2.y, -1.0, -1.0, (sRGB8 ) { 0, 150, 255 }, 0.5, 1);
                                     ^        ~~~~~~~~~~~~~~~
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Which I have fixed using

sRGB8 list_sRGB8 = sRGB8(0, 150, 255);

inside RenderedImage, thus calling  list_sRGB8 instead of (sRGB8 ) { 0, 150, 255 }.
I have deleted -lgomp and also -fopenmp, and I am using clang.
EDIT:  the info dock says 'version 2.03', is it correct?


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on June 07, 2015, 09:25:35 PM
Quote
button icons are missing.
Now it is fixed, it is worthy to pack everything together again before delivering.
EDIT: The cause is macdeployqt, dropping some icons (not all of them, only SVGs are missing) when deploying our app.
I need to add QT += svg inside our .pro file to be able to bundle correctly the app at the end.


Title: Re: Mandelbulber v2 - 2.04
Post by: zebastian on June 07, 2015, 10:21:36 PM
Now it is fixed, it is worthy to pack everything together again before delivering.
EDIT: The cause is macdeployqt, dropping some icons (not all of them, only SVGs are missing) when deploying our .app.
I need to add QT += svg inside our .pro file to be able to bundle correctly the apple at the end.
you can try to set osx flag for differing settings in pro file.
initializer lists are part of the C++ 11 standard, maybe they are available with newest clang Version?


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on June 08, 2015, 02:20:42 AM
you can try to set osx flag for differing settings in pro file.
initializer lists are part of the C++ 11 standard, maybe they are available with newest clang Version?
Yes, plus initializer lists and other C++11 features should work using  -stdlib=libc++ option with clang.
Thanks for the heads up  :) here is our newly bundled app ready to be downloaded > http://bit.ly/1QDe75X


Title: Re: Mandelbulber v2 - 2.04
Post by: zebastian on June 08, 2015, 11:02:14 AM
Yes, plus initializer lists and other C++11 features should work using  -stdlib=libc++ option with clang.
Thanks for the heads up  :) here is our newly bundled app ready to be downloaded > http://bit.ly/1QDe75X
Maybe we can get openmp to work AS well. Could you try with. -openmp instead of -fopenmp? You can test it with DOF effect. Should speed up by ~1/2 * CPU cores.
I habe no setup for osx right now. But i think buddhi can look into this.
Thanks for your effort! ;D


Title: Re: Mandelbulber v2 - 2.04
Post by: visual.bermarte on June 08, 2015, 12:08:48 PM
Maybe we can get openmp to work AS well. Could you try with. -openmp instead of -fopenmp? You can test it with DOF effect. Should speed up by ~1/2 * CPU cores.
I habe no setup for osx right now. But i think buddhi can look into this.
Thanks for your effort! ;D
You are right, it works  :) I will upload the version with openmp today. Thank you.


Title: Re: Mandelbulber v2 - 2.04
Post by: Buddhi on June 08, 2015, 05:47:23 PM
You are right, it works  :) I will upload the version with openmp today. Thank you.

Great! OSX supports posix threads, so OpenMP will gain rendering speed of DOF effect a lot.


Title: Re: Mandelbulber v2 - 2.04
Post by: mfg on June 26, 2015, 04:35:52 AM
For now you'll have to edit the source files and recompile the software. I could do that for you.

What formulas would you like to see added to Mandelbulber v2 ?

Thank you for your kind reply. I did not see it but today.
Yes, I have actually done what you suggested in the meantime, that is, edit the source files and recompiled.

The software is really, really nice. Congrats.

I have several questions:
i) where do I set the bailout condition for 'Mandelbulb classic power 2'
    It seems to me that it is near the end of compute_fractal.cpp but I got lost in the various possibilites here.
ii) colouring - what colouring scheme is used for 'Mandelbulb classic power 2'
    another question with colour: when 'limits' enabled and slice plane is obtained. Which parameters define colours within the slice drawn?
iii) If I use 'Mandelbulb' formula with power 2, I do not obtain the same figure as  'Mandelbulb classic power 2' Why?

Thank you,


Title: Re: Mandelbulber v2 - 2.04
Post by: mclarekin on June 28, 2015, 03:39:40 AM
Code:
I have several questions:
i) where do I set the bailout condition for 'Mandelbulb classic power 2'
    It seems to me that it is near the end of compute_fractal.cpp but I got lost in the various possibilites here.
Yes confusing depends on "mode ==  something", I don't fully understand it all yet but for a Mandelbulb I would think calcModeNormal.

Code:

ii) colouring - what colouring scheme is used for 'Mandelbulb classic power 2'
    another question with colour: when 'limits' enabled and slice plane is obtained. Which parameters define colours within the slice drawn?

Colour scheme 'Mandelbulb classic power 2' will be :
            default:
               out->colorIndex = minimumR * 5000.0;
               break;

For a slice thru  "Mandelbulb Classic power 2"  I think it should be the same

Code:
iii) If I use 'Mandelbulb' formula with power 2, I do not obtain the same figure as  'Mandelbulb classic power 2' Why?
Different formulas. (I have no idea how 'Mandelbulb classic power 2' got it's name, to me the "mandelbulb" formula is the "classic", hmmmm)



Title: Re: Mandelbulber v2 - 2.04
Post by: mfg on June 29, 2015, 06:12:28 PM
Code:
I have several questions:

[code]iii) If I use 'Mandelbulb' formula with power 2, I do not obtain the same figure as  'Mandelbulb classic power 2' Why?
Different formulas. (I have no idea how 'Mandelbulb classic power 2' got it's name, to me the "mandelbulb" formula is the "classic", hmmmm)


If I understand correctly, the 'Mandelbulb classic power 2' is a rectangular representation of the hypercomplex number. The 'Mandelbulb' formula is the polar representation of the same hypercomplex number. Thus, the 'Mandelbulb' formula with power 2 (which doubles the arguments) should reproduce the  'Mandelbulb classic power 2'.[/code]


Title: Re: Mandelbulber v2 - 2.04
Post by: Buddhi on June 29, 2015, 06:54:00 PM
Code:
[quote author=mfg link=topic=21444.msg85369#msg85369 date=1435594348]
If I understand correctly, the 'Mandelbulb classic power 2' is a rectangular representation of the hypercomplex number. The 'Mandelbulb' formula is the polar representation of the same hypercomplex number. Thus, the 'Mandelbulb' formula with power 2 (which doubles the arguments) should reproduce the  'Mandelbulb classic power 2'.
[/quote]

The difference between 'Mandelbulb classic power 2' and Mandelbulb with power set to 2 is in swapping between sin and cos functions. 'Mandelbulb classic power 2' uses different representation of trigonometric functions, but it's still almost the same formula.
To prove this try to use Mandelbulb formula, set power = 2, alpha angle offset = 90, beta angle offset = 90. Then you will get Classic Mandelbulb Power 2.
90 degrees shift makes swapping between sinus and cosinus.

Why this formula has classic in name? Because this the first Mandelbulb shape which was discovered by Daniel White. Look here: http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg4105/#msg4105

About bailout condition, it's here (compute_fractal.cpp, line 285):

Code:
		//escape conditions
if (Mode == calcModeNormal)
{
if (r > 1e2)
{
out->maxiter = false;
break;
}
}

About coloring, the program uses some kind of orbit trap calculation (at point (0,0,0)).
 
Code:
		else if (Mode == calcModeColouring)
{
if (fractal->formula != mandelbox)
{
if (r < minimumR) minimumR = r;
}
if (r > 1e15)
break;
}

Color index is finally calculated as minimum distance to orbit trap point.

Code:
				default:
out->colorIndex = minimumR * 5000.0;
break;

Coloring algorithm is the same for fractal surface and intersections.


Title: Re: Mandelbulber v2 - 2.04
Post by: David Makin on July 12, 2015, 06:46:43 PM
Where can I find the latest stable native OSX runtime ?


Title: Re: Mandelbulber v2 - 2.04
Post by: zebastian on July 12, 2015, 07:24:42 PM
Where can I find the latest stable native OSX runtime ?
You can find all mandelbulber release executables under sourceforge.
Current Version is 2.04 ( otherwise I wouldn't write in this thread :) )

http://sourceforge.net/projects/mandelbulber/files/Mandelbulber%20v2/
--} osx


Title: Re: Mandelbulber v2 - 2.04
Post by: AbstractBarista on September 09, 2015, 11:56:56 PM
Hello all, I've been playing with Mandelbulber (v2.04) for a few days now, and have ran into a problem:

I am attempting to set up Mandelbulber on a handful of local servers I have, such that I can distribute rendering workloads from my desktop machine (Win7 64bit) via NetRender.
All of these servers are running Ubuntu 14.04 64-bit headless, fully updated, with a rather stock install.  I downloaded mandelbulber2-2.04.tar.gz from the main download page (http://sourceforge.net/projects/mandelbulber/files/Mandelbulber%20v2/source%20-%20multiplatform/), untarred, and followed README instructions for compilation.  Everything went fine.

Upon execution via command line the executable is aborting with the error:
Code:
~$ mandelbulber2 -nogui -ip 192.168.1.4
Log file name: /home/-----/.mandelbulber_log.txt
Detected 4 CPUs
Default data directory: /home/-----/.mandelbulber/
Fatal: QXcbConnection: Could not connect to display
(qxcbconnection.cpp:290, QXcbConnection::QXcbConnection(QXcbNativeInterface*, bool, const char*))
Aborted (core dumped)

Given the documentation, I would have assumed that the -nogui option (along with -ip a.b.c.d) would simply make the program connect to server (desktop) and wait for render jobs without the need for any server-side interaction whatsoever.

Interestingly, if I run this, which after Googling seemed to show promise:
Code:
~$ mandelbulber2 -platform offscreen -nogui -ip 192.168.1.4
Log file name: /home/-----/.mandelbulber_log.txt
Detected 4 CPUs
Default data directory: /home/-----/.mandelbulber/
Fatal: QFontDatabase: Cannot find font directory /usr/lib/x86_64-linux-gnu/fonts - is Qt installed correctly?
(fontdatabases/basic/qbasicfontdatabase.cpp:99, virtual void QBasicFontDatabase::populateFontDatabase())
Aborted (core dumped)

I seem to trade one error for another.  I'm sure the problem has to do with dependency on desktop libraries or displays, but how would I go about rectifying this?  These are headless machines with nothing but default terminals.

Would love to get my Mandelbulber-Cluster up and running.  ;D
Thanks for the amazing software and community.


Title: Re: Mandelbulber v2 - 2.04
Post by: Buddhi on September 10, 2015, 09:06:32 AM
I am attempting to set up Mandelbulber on a handful of local servers I have, such that I can distribute rendering workloads from my desktop machine (Win7 64bit) via NetRender.
All of these servers are running Ubuntu 14.04 64-bit headless, fully updated, with a rather stock install.  I downloaded mandelbulber2-2.04.tar.gz from the main download page (http://sourceforge.net/projects/mandelbulber/files/Mandelbulber%20v2/source%20-%20multiplatform/), untarred, and followed README instructions for compilation.  Everything went fine.

Mandelbulber v2 doesn't work in headless mode yet. Implementation of this feature is started, but not finished yet. Headless mode is top priority on my TODO list, so you will get this feature soon.


Title: Re: Mandelbulber v2 - 2.04
Post by: AbstractBarista on September 10, 2015, 03:53:14 PM
Ahh I see - I'll be on the lookout for that version!  Thank you!!