Hello,
Here is something interesting that I lately have been researching:
One of the fractal rule is that C is fixed value for the mandelbrot and julia iterations. This produces the fractals that you everyday see.
Well, I have experimented with a variable C, instead of a fixed one, and for many fractals I got interesting results.
The idea is this one (excuse my english, its not very good):
For every iteration step, you're really transforming the space into another space and subsequent iterations continue transforming the space.
For a mandelbulb, it means 3D rotation and scaling, and since the value of C is fixed for the iteration, that value doesn't follow the space transformations.
My idea was to make C to follow the transformations, but only the rotations, not the scale transformation.
This means that for every iteration, there's a different C value, at the same radius of the original one, but in a different position, but also, it correspond to the transformed value (Z).
This is my pseudo-code (its unoptimized and horrible, but was for testing purposes):
For every iteration:
I first calculate the classic mandelbulb and add the C value (cx,cy,cz)
Then transform the C value with the same function as the mandelbulb, but without changing the radius.
//Mandelbulb Iteration
const float r = sqrt(x*x + y*y + z*z);
const float theta = atan2(sqrt(x*x + z*z) , y)*8;
const float phi = atan2(z,x)*8;
const float r2=r*r*r*r;
const float r1=r2*r2;
const float sintheta=r1 * cos(theta);
x = sintheta * cos(phi)+cx;
y = sintheta * sin(phi)+cy;
z = r1 * sin(theta)+cz;
//C transformation, remove this segment for the classic mandelbulb
const float rc = sqrt(cx*cx + cy*cy + cz*cz);
const float theta1 = atan2(sqrt(cx*cx + cz*cz) , cy)*8;
const float phi1 = atan2(cz,cx)*8;
const float sintheta1=rc * cos(theta1);
cx = sintheta1 * cos(phi1);
cy = sintheta1 * sin(phi1);
cz = rc * sin(theta1);
This open some interesting questions:
1. How this looks with a different iteration functions..
2. Can this be used on other fractals..
Here are two examples, sorry for the low quality, but its because I just was making experiments:
The classic mandelbulb
And the variable C (its the same Mandelbulb with the same parameters and the same position):
If anyone makes a render of this, please let me know, since im interested on the results and also, my renders are not very good..