The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Mandelbulb Power Stack Composition  
Previous Image  Next Image  
Description: A couple of volumetric renderings of some of my experiments with stacking different powers of the Mandelbulb.
Stats: Total Favorities: 0 View Who Favorited Filesize: 1.83MB Height: 2048 Width: 2048 Keywords: fractal Mandelbulb stack layer power Posted by: Chris Thomasson March 15, 2015, 08:18:10 PM Rating: Has not been rated yet. Image Linking Codes


0 Members and 1 Guest are viewing this picture. 

Comments (9)  
Chris Thomasson  April 03, 2015, 09:29:32 PM Quote from: cKleinhuis this is cool, especially because the bulb structures are so clearly visible Yes; totally agreed. I was quite pleased when I noticed them showing up when I first started experimenting with this technique. :^) 
cKleinhuis  March 31, 2015, 03:15:23 PM this is cool, especially because the bulb structures are so clearly visible 
Chris Thomasson  March 17, 2015, 09:28:38 PM Quote from: DarkBeam Superb idea. Will surely try out. thanksssssss Thank you! :^D WRT the example code I posted, well, it really needs to keep the power of 2 close to the center of the zaxis. I made a mistake here because I started the zaxis at 1. Well, a power of 2 does not show up at this part of the unit sphere. A power of 2 really needs the zaxis to be close to 0 to see the traditional 2d Mandelbrot. So, you could modify a single line of the code from: double P = 2.0 + 8.0 * rz; to: double P = 10.0  8.0 * abs(sin(rz * PI)); This way, the zaxis will be closer to higher powers the further away it is from the center point, (e.g., zaxis == 0). When it gets closer to the center of the sphere, well P should be closer to the power of 2, because it should be 90 degrees at dead center of the zaxis. Where, 10  abs(sin(PI / 2)) * 8.0 is 2. Sorry about that omission. ;^o 
DarkBeam  March 17, 2015, 11:48:06 AM Superb idea. Will surely try out. thanksssssss 
Chris Thomasson  March 17, 2015, 12:45:56 AM Quote from: DarkBeam Please, share the formula in a thread. Even in pseudocode It will be included in Mandelbulb3d. We need your help? I am sorry for the brief explanation, but I am time constrained at this moment: Think of creating a 2 dimensional slice of the Mandelbulb at a fixed zaxis. Okay, lets say, a zaxis of 0 and a power of 2. This happens to create the traditional Mandelbrot set. Fine. Now, lets create another slice that sits on top of the previous. The only differences are the power of this new slice is going to be slightly increased, say 2.1, and the zaxis is going to be increased as well. Now, continue the process until you hit a power of 10 and a zaxis of 1.0. So, the level of the power is interpolated across the zaxis. Here is some highly simplistic pseudocode I just typed out with the actual Mandelbulb spherical coordinate math excluded for brevity: I hope there are not any damn typos in this! ______________________________________________ // gain C wrt interpolation of the x, y and zaxes, and power: // ix(1.0, 1.0), iy(1.0, 1.0), iz(1.0, 1.0), P(2.0, 10.0) for (unsigned int ax = 0; ax < N; ++ax) { double rx = ax / (N  1.0); double ix = 1.0 + 2.0 * rx; // xcomponent of C for (unsigned int ay = 0; ay < N; ++ay) { double ry = ay / (N  1.0); double iy = 1.0 + 2.0 * ry; // ycomponent of C for (unsigned int az = 0; az < N; ++az) { double rz = az / (N  1.0); double iz = 1.0 + 2.0 * rz; // zcomponent of C // This is the power of the current slice, // interpolating from 2.0 through 10.0 wrt zaxis. // [EDIT]  double P = 2.0 + 8.0 * rz; // INTO: double P = 10.0  8.0 * abs(sin(rz * PI)); // This is the current Cartesian point (triplex number) // C, ready for iteration... C = { ix, iy, iz }; // Perform normal Mandelbulb iteration. // Except, set the power of the iteration to P. // Z[i + 1] = Z^P + C // in spherical coordinates... if (Z does not escape) { // okay, set this pixel! setpixel(ax, ay, az, color); } } } } ______________________________________________ This ends up creating a stack of images (think RAW image format) that represent N slices of the 3d object wrt the zaxis. I take the resulting image sequence and put them into a volumetric renderer, ImageJ in this case, and bam! The object appears... ;^) I have also used Drishti to renderer some of these. It would be absolutely amazing to see this in your excellent software! Thank you for the interest. Also, if this explanation is simply not enough, I would be happy to dive into more details. Unfortunately, I do not really have the time right now to make a proper response, so I apologize if this end up sounding like a bunch of gibberish. Yikes! :^o 
DarkBeam  March 16, 2015, 11:31:12 PM Please, share the formula in a thread. Even in pseudocode It will be included in Mandelbulb3d. We need your help? 
Chris Thomasson  March 16, 2015, 11:06:38 PM Thank you all so very much for the kind comments! I really do appreciate them. FWIW, this is a stack of powers 210 interpolating from zaxes 01. The funny thing is that the stack/volume of images are only 350x350x400, and they still show some fairly "interesting", minor details... I made a little more images along the zaxis to attempt to gain some more "detail" at the expense of a slight stretching effect along zaxis with respect to the x/yaxes. ;^) 
LMarkoya  March 16, 2015, 02:12:33 PM Very cool...nice job 
DarkBeam  March 15, 2015, 10:23:57 PM Nice jobs 
Powered by SMF Gallery Pro