bib
|
 |
« Reply #420 on: November 11, 2009, 02:12:27 PM » |
|
Hi Playing with old 3D formulas is still good fun. Some videos are still calculating with intersesting 3D fractal details from pseudo-seahorse valleys... 
|
|
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
David Makin
|
 |
« Reply #421 on: November 11, 2009, 03:25:39 PM » |
|
Some Julia Set timings - all rendered within UF at the same (high) detail settings with shadowcasting and all at the same magnification. In all cases the "entire" Julia was in view (all renders 1024 wide) and the seed was (-0.05, 0.8, 0.1). Basically this just backs up the results for the Mandelbrots.
z^2+c
Delta DE (trig): 9 mins 50 secs Analytical DE (trig): 4 mins 50 secs Delta DE (no trig): 1 min 51 secs Analytical DE (trig for derivative only): 3 mins 59 secs
z^3+c
Delta DE (trig): 4 mins 17 secs Analytical DE (trig): 3 mins 0 secs Delta DE (no trig): 0 min 43 secs Analytical DE (trig for derivative only): 2 mins 23 secs
z^4+c
Delta DE (trig): 3 mins 28 secs Analytical DE (trig): 2 mins 31 secs Delta DE (no trig): 0 min 48 secs Analytical DE (trig for derivative only): 2 mins 06 secs
In the case of the Julias the trig and non-trig versions were all visually identical.
|
|
|
Logged
|
|
|
|
bugman
|
 |
« Reply #422 on: November 11, 2009, 05:49:17 PM » |
|
Wow, I did not realize that the nontrigonometric formulas were so much faster. Here are some higher order formulas that I found with Mathematica. Hopefully, these formulas will provide huge time savings, especially for the popular 8th order version. One nice thing about the odd powers is that they do not require any square roots, so they should be quite fast. These formulas are a bit lengthy, but they checked out correctly on my computer. For optimum efficiency, you will probably need to declare some intermediate variables to avoid redundant calculations.
|
|
« Last Edit: November 17, 2009, 05:49:37 PM by bugman »
|
Logged
|
|
|
|
JosLeys
|
 |
« Reply #423 on: November 11, 2009, 07:05:47 PM » |
|
Another deep zoom on the power 8 Mandelbrot. Magnification 4E15, so a million-billion times. Ultrafractal switched to "extended precision" to calculate this. (meaning it worked with numbers of 20 decimals) Any further and UF starts "arbitray precision" which takes forever to calculate, so I think this is about the limit with UF (unless Dave has other ideas.  ) Anyway, I guess we are all convinced now that this thing is fractal, and quite uniform, so at whatever magnification we see more or less the same thing.
|
|
|
Logged
|
|
|
|
Daniel_P
Guest
|
 |
« Reply #424 on: November 11, 2009, 08:35:24 PM » |
|
Hi all, Awesome work with the Mandelbulb! My first post here. I've been wondering for a little while about another possible way of generating a 3D Mandelbrot and would appreciate your thoughts. A comment in this Reddit triggered this recent line of thought: http://www.reddit.com/r/math/comments/9nnc0/hypercomplex_fractals_pics/c0djtbwGiven two complex numbers z and w, repeatedly apply the transformation z→z^2+w (while w stays fixed) you stop whenever the modulus of z becomes greater than 2. Then take the set of pairs (z,w) for which this process never terminates (of course, in reality you put an upper limit, say, 1000 iterations). As a pair of complex numbers has 4 real components, the set is 4 dimensional. This is the full Mandelbrot set. Since seeing some of Thomas Banchoff's animations years ago I've been fascinated by the 3-sphere and its stereographic projection into flat 3-space (Something I explored in my 4D rotation animations here: http://spacesymmetrystructure.wordpress.com/2008/12/11/4-dimensional-rotations/ ) and what I was wondering is: What would it look like to take the intersection of the set in 4-space described above with the unit 3-Sphere and stereographically project down to 3D ?Actually it would make more sense to work backwards - to check if a point in 3D space is part of the fractal, first reverse stereographic project like this: X = 2 * x / (1 + x ^ 2 + y ^ 2 + z ^ 2) Y = 2 * y / (1 + x ^ 2 + y ^ 2 + z ^ 2) Z = 2 * z / (1 + x ^ 2 + y ^ 2 + z ^ 2) W = (-1 + x^2 + y^2 + z^2) / (1 + x^2 + y^2 + z^2) Then do the iteration to see if it is in the set. My questions for you are: - Has this been done before ?
- Do you think the results would be interesting ?
- How would you recommend getting started?
I have a little programming experience but have never done any raytracing/raymarching before. From reading some of Inigo Quilez's writing I suspect that the Hubbard Douady potential might be useful here
|
|
|
Logged
|
|
|
|
David Makin
|
 |
« Reply #425 on: November 11, 2009, 11:32:25 PM » |
|
Hi all, my WIP formula is not yet ready to add to the UF formula database but I've tidied it up a lot - not everything works yet (such as re-ordering the axes) but I think most will find it useable (unzip, copy all the text and paste into an open UF fractal window - needs UF5): http://www.fractalgallery.co.uk/MMFwip3D.zipThe UPR has quick example z^2+c quaternion renders - one solid on Analytical DE threshold and one on point trapping - note that pickover stalks do not produce good results on quaternions, try the other fractal types for those. Edit: The above file still exists but is obsolete: I just updated the WIP3D formula, new link: http://www.fractalgallery.co.uk/MMFWip3D.zipAgain unzip, copy all the text and paste into an open UF fractal window. This time the UPR is an example render of Pickover stalks (orbit trap) - note that "auto distances" is disabled and the solid threshold is much larger than used for solid on iteration/distance estimate. Several more options in the formula plus some bugfixes in the analytical distance estimate methods. This is actually named as a different formula so as not to cause compatibility issues with any renders you've already done 
|
|
« Last Edit: November 14, 2009, 06:30:45 AM by David Makin »
|
Logged
|
|
|
|
David Makin
|
 |
« Reply #426 on: November 12, 2009, 04:16:30 AM » |
|
Apologies if you guys already have this, but I just realised a more compact form of the White/Nylander formula - though not necessarily fastest in all cases (e.g. even powers<10), though it is faster than the explicit trig version in UF:
ztemp = ((r=cabs(zri)) + flip(zj))^@mpwr zri = real(ztemp)*(zri/r)^@mpwr + cri zj = -imag(ztemp) + cj
ztemp, zri and cri all complex r, zj and cj all real. @mpwr real, though using complex is possible with this form. In case anyone isn't familiar flip(zj) simply produces i*zj i.e. makes zj imaginary.
|
|
« Last Edit: November 12, 2009, 04:18:16 AM by David Makin »
|
Logged
|
|
|
|
David Makin
|
 |
« Reply #427 on: November 12, 2009, 05:08:08 AM » |
|
Apologies if you guys already have this, but I just realised a more compact form of the White/Nylander formula - though not necessarily fastest in all cases (e.g. even powers<10), though it is faster than the explicit trig version in UF:
ztemp = ((r=cabs(zri)) + flip(zj))^@mpwr zri = real(ztemp)*(zri/r)^@mpwr + cri zj = -imag(ztemp) + cj
ztemp, zri and cri all complex r, zj and cj all real. @mpwr real, though using complex is possible with this form. In case anyone isn't familiar flip(zj) simply produces i*zj i.e. makes zj imaginary.
It'd be interesting if someone can work out how to apply a full 3D "power" 
|
|
|
Logged
|
|
|
|
iq
Guest
|
 |
« Reply #428 on: November 12, 2009, 08:00:31 AM » |
|
Hi guys, I just registered to the forum because somebody pointed me to this thread this morning. I got interested in the trigonometric version of the Mandelbrot set posted here, so I wrote a small raymarcher (in C) and tried the idea. Results are interesting. First I tried it in the CPU:  Render time was about 15 minutes (512 ambient occlusion rays, one shadow ray, two light sources, 2x2 antialias at 1280x720). The raymarcher is very rudimentary, the step size is constant, no distance estimation computations to speed the marching. Not yet. The surface normal (if such a thing exists for fractals) is computed by the central differences method, it's not analytic. Since a couple of years ago I did a demo with a quaternion 4d julia set in realtime with ambient occlusion in the GPU (Kindernoiser: http://iquilezles.org/prods/#kindernoiser), I decided to port this little raymarcher of this morning to the GPU this afternoon. Results are promising, I get almost realtime rendering (5 frames per second) without the distance estimation optimization and some non-raytrace-based ambient occlusion. My motivation to try this has been one of those green-broccoli zooms posted by Twenbie, it so much looks like real vegetation or a forest, it's amazing. I hope I can work a bit next days again and do something like that, I will continue to do so. Also, I think twenbie or somebody with a good raytracer handy should try some subsurface-scattering (translucent surfaces), that should rock quite a lot!!! About the topic, it's really a pity the thing doesn't work that nicely for exponent=2, otherwise I would say this would have been the definite 3D M-Set. In any case, the choice of multiplying both angles by the exponent in the trigonometric multiplication is rather arbitrary I think. It's a pity. I somehow feel the real thing not trigonometric, but polynomial, although I'm not the one to tell. My best attempt so far was this http://iquilezles.org/www/articles/experimental3djulia/experimental3djulia.htm whici is completely ridiculous compared to the beautiful images produced by this trigonometric variation discussed in the thread.
|
|
|
Logged
|
|
|
|
bib
|
 |
« Reply #429 on: November 12, 2009, 10:42:29 AM » |
|
Hi all, my WIP formula is not yet ready to add to the UF formula database but I've tidied it up a lot - not everything works yet (such as re-ordering the axes) but I think most will find it useable (unzip, copy all the text and paste into an open UF fractal window - needs UF5): http://www.fractalgallery.co.uk/MMFwip3D.zipThe UPR has quick example z^2+c quaternion renders - one solid on Analytical DE threshold and one on point trapping - note that pickover stalks do not produce good results on quaternions, try the other fractal types for those. Thanks so much David. Many hours of fun exploration to come  
|
|
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
bib
|
 |
« Reply #430 on: November 12, 2009, 10:48:31 AM » |
|
|
|
« Last Edit: November 14, 2009, 09:03:41 PM by bib, Reason: added the 2nd video »
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
lycium
|
 |
« Reply #431 on: November 12, 2009, 12:13:02 PM » |
|
hi (again!) iñigo, good to see you see you here  the render you posted is great! i was also hoping to try rendering this thing on everyone's favourite little supercomputer, the gpu 
|
|
|
Logged
|
|
|
|
Aexion
|
 |
« Reply #432 on: November 12, 2009, 02:28:15 PM » |
|
Hello,  This very simple iteration can produce some interesting results (in a very unoptimized C code): bool JuliaSimple(double x, double y, double z){ double radius,ny,nx,nz; unsigned char Counter; for(Counter=0;Counter<50;Counter++){ nx = x*x-z*z-0.27; nz = 2*x*z; ny=y; x=nz; y=-nx; z=-ny; radius=x*x+y*y+z*z; if (radius>1000) break; } if(radius>1000) return false; //its outside of the set else return true; //its on the set } These are two other C values: /*nx = x*x-z*z-0.285; nz = 2*x*z-0.1;*/ /*nx = x*x-z*z-0.27; nz = 3*x*z;*/ here are two renders of this system: http://www.rfractals.net/gallery/main.php/v/JuliaSets/3DJulia1.htmlhttp://www.rfractals.net/gallery/main.php/v/JuliaSets/3DJulia2.htmlThe Mandelbrot of this series doesn't looks good but I have tested it on many other julia equations (such as the phoenix and the newton fractal) and it looks interesting.
|
|
|
Logged
|
 | Fractals all the way.. Incendia for 3D Fractals Aural for Musical Fractals |
|
|
|
Buddhi
|
 |
« Reply #433 on: November 12, 2009, 05:40:27 PM » |
|
Hello Aexion It is very nice to see new person in FractalForums. I saw your renderings and they looks very interesting. You have very strange iteration formula. It looks like z^2+c formula but with additional rotation by 90 degrees after each iteration. The results are awesome because there are visible lots of beautiful spirals.
|
|
|
Logged
|
|
|
|
iq
Guest
|
 |
« Reply #434 on: November 12, 2009, 08:39:37 PM » |
|
I have some feedback to share. I implemented the polynomial version of the 8x rotation (it's slightly different than the Mathematica-one posted above - I did my own derivation based on the spherical coordinate system I'm using). The speed improvement in the CPU version was great (4 to 5 times faster). However, the GPU version runs equally fast, no speed gain at all between trigonometric or polynomial version. Still, it's very fast (interactive to realtime, depending on the resolution/quality settings) This is disappointing, and might be related to the fact that probably the trig functions are partially implemented by little texture lookups which are fast, while the polynomial version consumes lots of instructions (MADs). Of course I took into account that most terms in the polynomials where even, so only one square root is needed per iteration in the end. So conclusion is: big speed gains in CPU, but no speed gain in the GPU 
|
|
|
Logged
|
|
|
|
|