Isokron
Forums Freshman
Posts: 15
|
|
« on: January 08, 2010, 03:00:09 PM » |
|
Hello first post here although I have lurked a while. Anyway I thought the consensus on this board was that the integer power mandelbulbs where connected, so I was a bit surprised when I found the following floating island when testing the realtime mandelbulb renderer im programming.
http://www.youtube.com/v/O0C8SuQ6YDA&rel=1&fs=1&hd=1So does someone get the same thing in other programs or am I doing something wrong ?
|
|
|
Logged
|
|
|
|
bib
|
|
« Reply #1 on: January 08, 2010, 04:39:10 PM » |
|
That looks strange. What if you increase iteration count?
|
|
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
Calcyman
|
|
« Reply #2 on: January 08, 2010, 04:54:02 PM » |
|
That's not an IEEE floating-point precision error, is it? The scenery around the island looks somewhat distorted, which would be the case if there was such a precision error.
Beware of 'satellites', or objects that are attached to the main bulb by infinitesimal hairs. These are abundant in the 2D Mandelbrot set, and in my 3D cosine series fractal, so they might exist in the 3D Mandelbulb.
|
|
|
Logged
|
|
|
|
David Makin
|
|
« Reply #3 on: January 08, 2010, 04:57:09 PM » |
|
Beware of 'satellites', or objects that are attached to the main bulb by infinitesimal hairs. These are abundant in the 2D Mandelbrot set, and in my 3D cosine series fractal, so they might exist in the 3D Mandelbulb.
That's why distance estimation threshold distance should be used as the solid condition rather than plain iteration count
|
|
|
Logged
|
|
|
|
Isokron
Forums Freshman
Posts: 15
|
|
« Reply #4 on: January 08, 2010, 05:33:37 PM » |
|
The movie was at 9 iterations and I have tried to increase iterations up to 30 and it still seems to be there although the whole area turns to "dust" so its kind of hard to see. I don't think its float problems either, those usually doesn't turn up for another 100x zoom or something.
I guess it could have an infinitesimal thread connection although its strange that it would have become infinitesimal already at 9 iterations when the rest of the area is still very "bubbly".
|
|
|
Logged
|
|
|
|
bib
|
|
« Reply #5 on: January 08, 2010, 05:45:37 PM » |
|
I quickly tried to find the spot, but failed. Could you provide xyz coordinates ?
|
|
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
Isokron
Forums Freshman
Posts: 15
|
|
« Reply #6 on: January 08, 2010, 06:21:57 PM » |
|
Im not sure if I might have swapped some axises compared to what is canonical which was why I made the movie zoomout but for me it is at
-0.296 0.539 0.759
|
|
|
Logged
|
|
|
|
bib
|
|
« Reply #7 on: January 09, 2010, 12:52:24 AM » |
|
It seems the "bean" is connected, see attached picture. Very interesting find.
|
|
« Last Edit: January 09, 2010, 12:54:19 AM by bib »
|
Logged
|
Between order and disorder reigns a delicious moment. (Paul Valéry)
|
|
|
|
BradC
|
|
« Reply #9 on: January 09, 2010, 03:11:20 AM » |
|
Nice looking real-time renderer! I had an idea about this floating island: Is the renderer voxel or octree based? (I notice that at 0:18 it appears to get polygon-ized for a second.) If the rendering is based on sampling on a coarse grid and then adaptively refining by subsampling, it could miss details sometimes. I think this would probably leave holes in the surface when the subsampling increased the detail level? I think I might see a hole in the surface right at the beginning of the video. There's a pink stripe along the edge of the island, and as the camera moves, this stripe briefly changes from pink to blue just before it goes offscreen. The parts of the surface around the stripe don't change color like that. I think maybe this stripe is a hole, and we're seeing through to the surface behind it. This area looks like an island maybe because the original coarse sampling rate was too low to pick up the bridge that connects it to the main set here. It's hard to tell though.
|
|
« Last Edit: January 09, 2010, 03:13:22 AM by BradC »
|
Logged
|
|
|
|
BradC
|
|
« Reply #10 on: January 09, 2010, 03:46:33 AM » |
|
I tried to find this location with my renderer, and I think I've found it, except the "island" is missing for me. Everything else looks like it pretty much matches I think? Two attached images below: The first is a screenshot from the original video. The second is I think roughly the same location in my renderer. The view parameters I used are: Formula: "03. Cosine method" from here http://www.fractalforums.com/theory/summary-of-3d-mandelbrot-set-formulas/Camera location: (-0.461202980581153, -0.674160906970388, 0.58865440535230529) Look direction: (-0.14002515833199916, -0.29245329031986084, -0.94597253026458727) Camera up direction: (0.93745105348982816, 0.26836698226000893, -0.22173111000368761) Field of view: 37 degrees.
|
|
« Last Edit: January 09, 2010, 04:10:03 AM by BradC, Reason: added arrows to the pics »
|
Logged
|
|
|
|
David Makin
|
|
« Reply #11 on: January 09, 2010, 04:17:47 AM » |
|
Beware of 'satellites', or objects that are attached to the main bulb by infinitesimal hairs. These are abundant in the 2D Mandelbrot set, and in my 3D cosine series fractal, so they might exist in the 3D Mandelbulb.
That's why distance estimation threshold distance should be used as the solid condition rather than plain iteration count If using voxels then use distance estimator to decide whether to split a voxel or not (as well as maxiter) - for the centrepoint if the DE is < some threshold (say n*width of the voxel) or maxiter is hit then split the voxel. The larger the value of n then the less prone to leaving gaps but the slower the render
|
|
|
Logged
|
|
|
|
Isokron
Forums Freshman
Posts: 15
|
|
« Reply #12 on: January 09, 2010, 10:45:08 AM » |
|
Its based on iqs formula here http://www.fractalforums.com/3d-fractal-generation/true-3d-mandlebrot-type-fractal/msg8493/#msg8493 so the cosine method i guess. As for the renderer, its based on voxels that it runs marching cubes on. The voxels are grouped in 32x32x32 nodes that I subdivide based on distance to camera. I haven't used any DE in it since I wanted it to work equally well inside as outside but maybe I should try to add it. I suppose its possible that it misses stuff although I tried moving close to likely connection points forcing it to subdivide the voxels a lot there which didn't turn up anything. The islands disappears for me at about iteration 30 but I think that might be just because the guessing method im using for voxels isnt supposed to work for disconnected stuff.
|
|
|
Logged
|
|
|
|
|