JosLeys
Iterator
Posts: 196


« Reply #255 on: October 09, 2009, 06:32:40 PM » 

Well, I guess so. I've seen so many things called a Julibrot that I'm not sure anymore. The z direction (perpendicular to the screen) is c=variable+i.constant), and then the formula is z^2+c (Julia), so in actual fact I'm stacking up all the possible Julia's with seed=variable+i.constant. For the image it is c= var*i.0.1, and var starts at 0.76.



Logged




bugman


« Reply #256 on: October 09, 2009, 06:57:07 PM » 

Well, I guess so. I've seen so many things called a Julibrot that I'm not sure anymore. The z direction (perpendicular to the screen) is c=variable+i.constant), and then the formula is z^2+c (Julia), so in actual fact I'm stacking up all the possible Julia's with seed=variable+i.constant. For the image it is c= var*i.0.1, and var starts at 0.76.
That's very nice. I like the embossed detail in the slice. I'm defining the "Julibrot" as the set of all Julia sets (which happens to include the Mandelbrot set). I made a Julibrot animation here: http://bugman123.com/Hypercomplex/Julibrot.m1vIt is a 3D "slice" of the 4D Julibrot starting from y0=0, and then rotating to x0=0, then rotating to xc=0, then rotating to yc=0, and finally rotating back to y0=0 again.


« Last Edit: October 09, 2009, 07:00:06 PM by bugman »

Logged




David Makin


« Reply #257 on: October 10, 2009, 01:11:07 AM » 

Stigomaster's right... I meant the gaps below the bridges in David's latest pic.
I just checked to see that the render was indeed accurate  in the original the default DE divisor parameter to get the step distances was 5 and the initial maximum distances to step was set to 0.1  to check that it was accurate I first tried changing the maximum step distance allowed to 0.01 and this basically produced the same image (but around 4*slower), I then reset the maximum step distance allowed to 0.1 and changed the DE divisor to 10 (i.e. making all the step distances half the original values) and again this produced the same image (this time about 1.8* slower). So I guess there are gaps under the bridges in places



Logged




David Makin


« Reply #258 on: October 10, 2009, 02:01:06 AM » 

I just joined. Hello all. A few weeks ago, Dave Makin helped me get going on 3D fractals. I'm using his Distance Estimate method based on smooth iteration count. I must say it works quite well, although I'm not really sure why! I'm trying to get my hands around the underlying math, as I think it would make a good subject for an article in the appropriate place.
Well, thanks to Dave's pseudocode, here is something that I thought turned out quite well, although it has nothing to do with the quest for the elusive 3D Mandelbrot.. <Quoted Image Removed>
Very nice image  I also like your embossing !



Logged




xenodreambuie


« Reply #259 on: October 10, 2009, 03:53:28 AM » 

There are lots of impressive renders in this thread.
Since I've been experimenting with MIIM (modified inverse iteration method) lately, I tried Paul's formulas for the roots of the quadratic triplex, to get the benefit of the extra detail. It didn't add much worthwhile. On the whole, I was disappointed with the various forms of the quadratic, and the higher powers look far more interesting.



Logged




xenodreambuie


« Reply #260 on: October 10, 2009, 05:41:16 AM » 

Thanks Lycium! It does have the benefit of soft shadows.
Something I noticed with the quadratic version was that making the third constant nonzero tended to introduce a planar discontinuity in the middle. It could have been due to steps I was taking to avoid invalid roots. Otherwise I guess it's just a result of using spherical coordinates and the z axis being polar. Has anyone found the third constant to give useful variation? (One advantage of inverse iteration is interactive previewing.)
I already deleted my code for the inverse triplex, and I'm not planning to revisit it unless I can do something with the trigonometric version instead. I just looked at the formula Dave provided, and noticed that phi=atan((z/sqrt(x²+y²)). It should be cheaper to use phi=asin(z/r).


« Last Edit: October 10, 2009, 06:14:17 AM by xenodreambuie, Reason: asin, not acos; I use one or other depending on my purpose »

Logged




bugman


« Reply #261 on: October 10, 2009, 06:28:00 AM » 

There are lots of impressive renders in this thread.
Since I've been experimenting with MIIM (modified inverse iteration method) lately, I tried Paul's formulas for the roots of the quadratic triplex, to get the benefit of the extra detail. It didn't add much worthwhile. On the whole, I was disappointed with the various forms of the quadratic, and the higher powers look far more interesting.
Wow, Garth! I think your inverse Julia set is very impressive. Did you use Bounding Volume Hierarchies (BVH) to ray trace the image? How long did it take to render and what was the highest depth reached? It inspires me to investigate further. I think your MIIM greatly enhanced the image with some nice spirals. Do you have any recommendations where I can learn more about MIIM? I also created some experiments with higher order inverse methods, but they were very sparse and boring because I wasn't using MIIM (see image below). I think adding MIIM to these images will be utterly stunning.


« Last Edit: October 10, 2009, 06:59:00 AM by bugman »

Logged




David Makin


« Reply #262 on: October 10, 2009, 12:56:04 PM » 

I already deleted my code for the inverse triplex, and I'm not planning to revisit it unless I can do something with the trigonometric version instead. I just looked at the formula Dave provided, and noticed that phi=atan((z/sqrt(x²+y²)). It should be cheaper to use phi=asin(z/r).
Very nice image Garth. With respect to the calculation, here's my actual UF code  I make use of UF's inbuilt atan2(value) where value is complex because I'm pretty sure this is faster than using atan(a/b)  note that mm and magn are initialised before entry into the iteration loop also that magno is used because I allow the option of using log(magn)/log(magno) for the divergence as an alternative to specifying a fixed value. magno = magn r = sqrt(magn)^@mpwr th = @mpwr*atan2(zri) ph = @mpwr*atan2(sqrt(mm)+flip(zj)) zri = r*(cos(th)*cos(ph) + flip(sin(th)*cos(ph))) + cri zj = r*sin(ph) + cj magn = (mm=zri) + sqr(zj)


« Last Edit: October 10, 2009, 11:14:52 PM by David Makin »

Logged




xenodreambuie


« Reply #263 on: October 10, 2009, 01:28:36 PM » 

Thanks, Paul! No, I coded it into a transform in XenoDream, to use the existing rendering (using a zbuffer as a surface for lighting.) It was mostly done in an hour at twice that size, but I left it overnight for only marginal improvement. If you check the recent thread about the Glynn Set, Dave posted some code from Peter Liepa for doing MIIM. (His website http://www.brainjam.ca/fractals.html has plenty of pics.) It uses contractivity to vary tree depth, which works incredibly well, although still not perfectly even distribution. However, I believe there is some mistake in the formula we used for the quadratic. I decided to try the trigonometric version instead, in order to use arbitrary powers. At first attempt only the theta was right (reducing to standard Julia set in XY). When I changed the formula to phi=acos(z/r), with x= rsin(theta)sin(phi), y=rcos(theta)sin(phi), z= rcos(phi), the correct roots appear for phi and the whole shape works as it should. That pic I did and the similar one of yours appear to be glitches and not reproducible with the correct formula. On the bright side, the quadratic produces a much nicer range of shapes and renders faster, and any power >1 or <1 should work.



Logged




David Makin


« Reply #264 on: October 10, 2009, 10:56:32 PM » 

Hi all, 6 images of the degree 2. Three of the White/Nylander (trig version) and three of the Rudy Rucker version: http://www.fractalforums.com/gallery/?su=user;cat=95;u=141Note that I had to fudge the code to render the inside Mandlebrots in the Rucker version correctly as the z (for the XY slice) and y (for the XZ slice) values kept gradually increasing due to error accumulation in the trig. Edit: Actually the black speckling around the edges of the inside in the White/Nylander slices is probably the same problem.


« Last Edit: October 10, 2009, 11:40:36 PM by David Makin »

Logged




David Makin


« Reply #265 on: October 11, 2009, 02:00:20 AM » 

Finally got a render of the degree 4 White/Nylander Mandelbrot underway at 8000*8000, rendered using a wide field of view. Here's what the 800*800 version looks like rendered with the parameters set for the large render (i.e. the detail level is really too high for the 800*800 version): http://www.fractalforums.com/gallery/?sa=view;id=967The 800*800 version took just under 6 minutes on my core2duo laptop. In case anyone's interested the colouring is psedo3D pseudoperlin noise (or fBm if you prefer) using the sum of 3 2D fBm results i.e. fBm(x+flip(y))+fBm(y+flip(z))+fBm(z+flip(x)). Edit: larger version now here http://makinmagic.deviantart.com/art/AsteroidNationalPark139905412Edit: Click image twice for fullsize !


« Last Edit: October 01, 2011, 06:33:16 AM by David Makin »

Logged




xenodreambuie


« Reply #266 on: October 11, 2009, 04:09:40 AM » 

Dave, that looks promising. Of course with inverse methods I can only do Julias.
On the formulas, the main reason for preferring atan2 over atan in general is to get a result in the right quadrant, so by default I use atan2 in actual code. If you use phi=asin(z/r) instead of atan, you should be able to save a sqrt, which must be cheaper, and should give identical results.
However, I'm curious as to what happens if you change to the standard spherical coords of phi=acos(z/r), z=rcos(phi), and sin(phi) in the x and y terms. This definition works for the inverse method, whereas the other doesn't (at least without some clever manipulation.)



Logged




David Makin


« Reply #267 on: October 11, 2009, 02:13:31 PM » 




Logged




David Makin


« Reply #268 on: October 12, 2009, 12:18:23 AM » 

Dave, that looks promising. Of course with inverse methods I can only do Julias.
On the formulas, the main reason for preferring atan2 over atan in general is to get a result in the right quadrant, so by default I use atan2 in actual code. If you use phi=asin(z/r) instead of atan, you should be able to save a sqrt, which must be cheaper, and should give identical results.
However, I'm curious as to what happens if you change to the standard spherical coords of phi=acos(z/r), z=rcos(phi), and sin(phi) in the x and y terms. This definition works for the inverse method, whereas the other doesn't (at least without some clever manipulation.)
Hi Garth, you are absolutely correct about the use of asin(z/r) instead of atan2(sqrt(x^2+y^2)+flip(z))  it is identical and shaves just over 10% off the time on this P4HT by removing a square root from the iteration loop. As to your other idea, it's certainly produces an interesting Mandelbrot:



Logged





