Logo by mauxuam - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. March 28, 2024, 08:32:07 PM


Login with username, password and session length


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


Pages: 1 ... 5 6 [7] 8 9 ... 37   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: True 3D mandelbrot type fractal  (Read 603738 times)
0 Members and 2 Guests are viewing this topic.
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #90 on: June 18, 2009, 01:58:00 AM »

Hi again,

I abandoned trying to get DE working for the 4D ring I was using for the "real" 3D Mandelbrot and decided to try rendering it adding it as an option in the beta Julibrot formula that I posted which uses solid based on iteration density rather than solid based on iteration - it's not as optimum as using DE but considerably more optimum than plain iteration and produces results very similar to using DE.
So I did a test render of the same minibrot I did previously but this time allowing the rest of the Mandelbrot to appear in the background.
Here's the result:



http://www.fractalforums.com/gallery/?sa=view;id=695
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #91 on: June 18, 2009, 03:14:14 AM »

Another view - this time the "top" of the Mandy:



Or:

http://makinmagic.deviantart.com/art/Attempt-at-real-3D-Mandy-126306420
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #92 on: June 18, 2009, 09:16:47 PM »

Hi all, it's not simple, but I think solving this will give the derivative in general cases (where a solution is possible):

For deriving the derivative of 4 functions of 4 reals, we have:
 
 x1 = a(x,y,z,w)
 y1 = b(x,y,z,w)
 z1 = c(x,y,z,w)
 z2 = d(x,y,z,w)
 
We want the derivative of the system where:
 
 N.p = 0
 
Which is given by the limit(v->0) of:
 
( |          i                       j                      k                      l               | ).(x1,y1,z1,w1) = 0
  | a(x+v,y,z,w)-x1  b(x+v,y,z,w)-y1  c(x+v,y,z,w)-z1  b(x+v,y,z,w)-w1  |
  | a(x,y+v,z,w)-x1  b(x,y+v,z,w)-y1  c(x,y+v,z,w)-z1  b(x,y+v,z,w)-w1  |
  | a(x,y,z+v,w)-x1  b(x,y,z+v,w)-y1  c(x,y,z+v,w)-z1  b(x,y,z+v,w)-w1  |
  | a(x,y,z,w+v)-x1  b(x,y,z,w+v)-y1  c(x,y,z,w+v)-z1  b(x,y,z,w+v)-w1  |

All values treated as reals - obviously treating all values as complex would maybe provide a solution in cases where using reals does not.

Duh - OK this is just WIP - I guess my recollection of getting a normal was a little hazy, but maybe just omitting the bottom row of the matrix.....or make it 5*5 with the last column as ident ?

Aaaargh !! I really should think things through more before posting stuff:


« Last Edit: June 18, 2009, 10:32:42 PM by David Makin » Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #93 on: June 18, 2009, 11:35:41 PM »

cool stuff, you can use the LaT\sum x feature  smiley

for what do you need this ? as surface normal vector ? ... btw. how do you get the surface ? raytracing until volume is hit ?  police alien
Logged

---

divide and conquer - iterate and rule - chaos is No random!
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #94 on: June 19, 2009, 02:12:14 AM »

cool stuff, you can use the <Quoted Image Removed> feature  smiley

for what do you need this ? as surface normal vector ? ... btw. how do you get the surface ? raytracing until volume is hit ?  police alien

I tend to rethink stuff from first principles - I don't have any high levels maths books and working it out myself is usually quicker than ordering books from the library wink
In this case I was considering the fact that for distance estimation (to be used in ray-tracing) we need the derivative of a formula and thinking about it I suddenly thought that that is very closely related to the normal to the surface - hence my calculation above.
In fact it turns out that if you calculate the 4*4 matrix above (below the i,j,k,l) to the limit of v then you get the transpose of the Jacobian so I guess I'm not completely off target smiley

Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #95 on: June 20, 2009, 04:47:56 PM »

Hi all, I just realised something - I never knew the derivation of distance estimation but I just realised that maybe using the normal to the object surface at some point (a) on the surface and a point (b) to be tested gives us a method to find the shortest distance from b to the surface.
At each iteration level we know equation of the surface and the distance from point b to the surface at that iteration will always be less than the distance of b to the surface at a higher iteration level (assuming our initial b is "outside").
Goes back to the " drawing board".......
« Last Edit: June 20, 2009, 04:58:26 PM by David Makin » Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #96 on: June 21, 2009, 05:18:10 AM »

Hi all, I just realised something - I never knew the derivation of distance estimation but I just realised that maybe using the normal to the object surface at some point (a) on the surface and a point (b) to be tested gives us a method to find the shortest distance from b to the surface.
At each iteration level we know equation of the surface and the distance from point b to the surface at that iteration will always be less than the distance of b to the surface at a higher iteration level (assuming our initial b is "outside").
Goes back to the " drawing board".......
hmm while i haven't completely understood the method you're proposing, i think it's not possible to infer global characteristics from local sampling: basically the normal can vary chaotically at any point inside the field of consideration, so we should not expect there to be a "straight line" to the point of nearest intersection, at any level of iteration. moreover i've found that with fractals there is never really a "surface" at all, making normals extremely troublesome to even estimate reasonably sad
Logged

David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #97 on: June 21, 2009, 01:20:36 PM »

hmm while i haven't completely understood the method you're proposing, i think it's not possible to infer global characteristics from local sampling: basically the normal can vary chaotically at any point inside the field of consideration, so we should not expect there to be a "straight line" to the point of nearest intersection, at any level of iteration. moreover i've found that with fractals there is never really a "surface" at all, making normals extremely troublesome to even estimate reasonably sad

Ah, but what you're overlooking is that when rendering 3D fractals to a given iteration depth then the fractal "surface" we're rendering is not actually chaotic in itself, in fact for iterating z^2+c it's simply a high level polynomial.
And I meant getting the normal analytically not via local sampling.
If In(z^2+c) is the iterate at iteration n i.e. such that I1(z^2+c) is z^2+c, I2(z^2+c) is (z^2+c)^2+c then the surface at iteration depth n is given by:
|In(z^2+c)| = bailout
I did think that one alternative way of finding intersection for a fixed iteration depth is:
Given our ray is p+ad where p is the viewpoint and d is the unit direction vector then for a given In we could fully expand In to a polynomial, then substitute in p+ad as z then solve for a using the Newton to get the roots and the smallest positive real root is our intersection point but I suspect that method may be less efficient than it sounds even ignoring the complexity of getting the equation for say I20(z^2+c) smiley I did wonder about using a modified Newton where on each iteration (n) of the Newton f(z) as z^2+c became In(z^2+c) instead and f'(z) became the derivative of In(z^2+c) instead of just 2z.
« Last Edit: June 21, 2009, 01:25:42 PM by David Makin » Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #98 on: June 21, 2009, 06:34:37 PM »

Ok, did a higher res. still shot of the "true 3D" minibrot:



or:

http://makinmagic.deviantart.com/art/quot-Real-3D-quot-Minibrot-126708978

The minibrot is at approx. -1.76 on the real axis and is viewed from 30 degrees above and 60 degrees around (camera target point set slightly nearer the main cardioid).
Bailout was x^2+y^2+z^2+w^2>4 and the maximum iteration count allowed was 60, though solid was based on iteration density so rarely if ever would 60 iterations actually be used.
Rendered to disk in Ultra Fractal at a resolution of 3840*2880, time 1hour 51mins on a (heat impaired) 3GHz P4HT effectively in single-threaded mode due to the render being performed to a screen buffer in the global section of a UF formula.

Hope you guys like it smiley
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #99 on: June 21, 2009, 10:00:43 PM »


I did wonder about using a modified Newton where on each iteration (n) of the Newton f(z) as z^2+c became In(z^2+c) instead and f'(z) became the derivative of In(z^2+c) instead of just 2z.


Actually make that using a modified Newton for finding a root of f(a)="|In(g(a))|-bailout" where a is alpha in p+ad where p is the camera viewpoint and d is the unit viewing direction vector... problem is our equation is:

c = p+ad
z = p + ad

|In(z^2 + c)| - bailout = 0

Note that here if In(z^2+c) is 4D then the || means x^2+y^2+z^2+w^2

So finding f(a) and f'(a) is not completely straightforward - I mean in particular what's say the derivative of |f(q)| where the function is quaternionic ? I guess you could write it as f(q)*conj(f(q)) ?? ... but then what's the derivative of conj(f(q)) ?
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #100 on: June 22, 2009, 01:23:15 AM »

Just for comparison with the "True 3D" Minibrot:

http://makinmagic.deviantart.com/art/Hypercomplex-Minibrot-126754381

http://makinmagic.deviantart.com/art/Quaternionic-Minibrot-126754860
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
cKleinhuis
Administrator
Fractal Senior
*******
Posts: 7044


formerly known as 'Trifox'


WWW
« Reply #101 on: June 22, 2009, 08:09:43 PM »

cool, but the non-quaternionic method one looks very quadratic ... is it because of low iteration depth ?
or sampling errors ?

or ist it the used math ? ... anyway .... i would now be interested in a X/Z cut plane 2d version of the pseudo method,
or is it just the mandelbrot again ? ( as proposed ... )

greets
ck
Logged

---

divide and conquer - iterate and rule - chaos is No random!
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #102 on: June 22, 2009, 09:02:24 PM »

cool, but the non-quaternionic method one looks very quadratic ... is it because of low iteration depth ?
or sampling errors ?

or ist it the used math ? ... anyway .... i would now be interested in a X/Z cut plane 2d version of the pseudo method,
or is it just the mandelbrot again ? ( as proposed ... )

greets
ck


Hi, well if you look at the math for the "real 3D" "roundy version:

* | r   i   j   k
-------------
r | r   i    j   k
i | i  -r   k   j
j | j   k  -r  i
k | k  j   i  -r

Which gives z^2+c:

              xi = mx
              yyy = my
              zzz = mz
              mx = mx*mx - my*my - mz*mz - mw*mw + x
              my = 2.0*(my*xi + mz*mw) + y
              mz = 2.0*(mz*xi + yyy*mw) + zz
              mw = 2.0*(mw*xi + yyy*zzz) + w

Assuming the start value is always (0,0,0,0) then:

if we start with a 3D cut such that w=0 and from that a 2D cut such that zz is 0 then the iterate is reduced to:

              xi = mx
              mx = mx*mx - my*my + x
              my = 2.0*my*xi + y

if w=0 and y is 0 then it's reduced to:

              xi = mx
              mx = mx*mx - mz*mz + x
              mz = 2.0*mz*xi + zz

And if we take a 3D cut where y=0 (or zz=0) and a 2D cut where zz=0 (or y=0):

              xi = mx
              mx = mx*mx - mw*mw + x
              mw = 2.0*mw*xi + w

However, for example in the first two cases (i.e. a 3D cut where w=0) then although the 2D X-Y slice and 2D X-Z slice both are the 2D Mandelbrot Set any other rotation of a plane including the X axis around the X axis will result in other images.

For the "squarry" version the iteration depth was only 10 smiley The above holds for the 2D slices in that case also (as the only difference is that in the full iteration it uses "mw = 2.0*(mw*xi - yyy*zzz) + w" instead of "mw = 2.0*(mw*xi + yyy*zzz) + w").

I hope that makes things clearer smiley


Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #103 on: June 22, 2009, 11:16:18 PM »

Hi, in case you miss them:

http://www.fractalforums.com/gallery/?sa=view;id=700

http://www.fractalforums.com/gallery/?sa=view;id=701
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
David Makin
Global Moderator
Fractal Senior
******
Posts: 2286



Makin' Magic Fractals
WWW
« Reply #104 on: June 23, 2009, 01:57:49 AM »

Here's the minibrot for the "squarry" version:

http://makinmagic.deviantart.com/art/quot-Real-3D-quot-Minibrot-Squarry-126885372
Logged

The meaning and purpose of life is to give life purpose and meaning.

http://www.fractalgallery.co.uk/
"Makin' Magic Music" on Jango
Pages: 1 ... 5 6 [7] 8 9 ... 37   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Implementation: 3D mandelbrot type fractal 3D Fractal Generation « 1 2 » steamraven 27 64878 Last post August 21, 2016, 12:13:13 AM
by ironfractal
Re: True 3D mandelbrot type fractal Other / General Discussion shanest 2 26786 Last post November 20, 2009, 03:24:26 AM
by fractalrebel
True 3D mandelbrot fractal (search for the holy grail continues) The 3D Mandelbulb « 1 2 ... 17 18 » illi 260 57501 Last post November 25, 2010, 12:57:55 AM
by cKleinhuis
New fractal type... latest 3d type.. a z^2 for Benoit Images Showcase (Rate My Fractal) M Benesi 0 7655 Last post October 21, 2010, 07:14:00 AM
by M Benesi
My First Mandelbrot...Okay not true. Images Showcase (Rate My Fractal) Zephitmaal 3 8317 Last post January 07, 2012, 04:30:36 PM
by Pauldelbrot

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.215 seconds with 24 queries. (Pretty URLs adds 0.016s, 2q)