hobold


« Reply #45 on: January 22, 2010, 08:08:27 PM » 

what about morving the Riemannian geometry into a linear Euclidian geometry? Putting infinity not to the opposite pole, but nearer and nearer to lower angles, so it becomes linear? (I am not the mathematic genius, but should work somehow, i hope) That does not easily work, because the sphere and the flat plane are not really ... compatible (the buzzword here is "topology"). Riemann had to add "infinity" as one more point to the set, otherwise his sphere would have had a tiny tiny hole at its pole. The sphere needs that one extra point to be complete, but the flat plane does not really have room for that one point. That's why the added point does not have coordinates in the flat plane; it needs to be out of reach of the usual (x, y) number pairs. That's why it is called the "infinitely distant" point, literally beyond the flat coordinates. Or in other words, when you try to lower the pole of Riemann's sphere to lower angles, the sphere will have a hole and be incomplete. There would be points for which no coordinates can be easily defined. So you would be unable to do any fractal iterations with those points. My other point about morphing between the classical Mandelbulb and the monopolar fractal is a bit trickier than I thought. There is no obvious way to parameterize the circular grid lines consistently. I noticed this when I tried to do a sketch with a north pole and an east pole. It is possible to do that, but the sketch would be somewhat arbitrary with respect to the distances between adjacent grid lines. About your renderer: this was not an attempt to bait you into giving your code away. I was just impressed how quickly you were able to render an arbitrary formula in such high quality. I am currently tinkering with my own preprealpha version of a low quality renderer. It can already render flat outlines of 3D fractal shapes. It will be terribly slow and imprecise, but it's fun to go my own way, and see the shapes slowly materializing out of the fog, so to speak ... :)



Logged




Jesse
Download Section
Fractal Schemer
Posts: 1018


« Reply #46 on: January 22, 2010, 09:05:44 PM » 

Ok, i made a also a mistake: if infinity becomes Pi in a riemann sphaere (is this correct?), so we had to morph the way that infinity becomes infinity again. The progamming thing: i startet with slicing from background to foreground, until i found out that if i slice the different way i can ommit the pixels that are already in the set. Then i made the DE thing and this was also faster because for every pixel you can skip many pixels in flat areas to calculate. And it was not a big step from my first attempts to now, so you are on a good way. Another question: if i dont want to register to youtube, where should i upload an animation (1.8MB)?



Logged




hobold


« Reply #47 on: January 23, 2010, 10:18:45 PM » 

I talked Jessy into letting me host his animation on my webspace. The video shows monopolar bulbs with a smoothly varying exponent from 2 to 10. This is an experiment to see what my humble virtual server can handle, so the video is linked from nowhere but here. Have a look at: http://www.vectorizer.org/guesthouse/RiePow1to10.AVI.



Logged




Jesse
Download Section
Fractal Schemer
Posts: 1018


« Reply #48 on: January 24, 2010, 06:00:09 PM » 

Moving the origin (not the pole) of the monopolar coordinate system does indeed work. It doesn't really add variety, but does shake up the perfect symmetries. Here's a bit of code that introduces two new parameters AxOffset and AzOffset. For reasons of symmetry, the interesting ranges of those parameters are 0 <= AxOffset <= AzOffset <= Pi. Other values are possible, but do not lead to new results.
It should be possible to morph between, say, the "origin at pole" and "origin opposite the pole" versions by varying AxOffset and AzOffset from zero to Pi in lockstep. But any other smooth path should lead to seamless morphs, I guess.
I tried some offsets, but so far i would say that the changes are not very great or leading to very interesting morphs... but i may do more testing if i find more time for it. So no animation for this one by now. (the little ani you got took about 10 hours)



Logged




hobold


« Reply #49 on: January 24, 2010, 11:42:09 PM » 

As far as I can tell, the displaced origin causes the grid cells of the "Riemandelbulb" to shift around a bit, without changing their underlying shape. It doesn't change the nature of the fractal, but breaks the perfect symmetry. I cannot render good pictures yet ... trying to shade a fractal surface is a thankless job. :)
I guess I really need to find out more about this idea of moving the poles independently. Morphing between the original Mandelbulb and the Riemandelbulb should lead to more interesting shapes. But for now I am wrestling with rendering algorithms.
Oh and the "little anim" is quite striking. This thing really seems to differ from the Mandelbulb in substantial ways. Thanks for taking the time to render this!
Edit: another thing. I need a better name for the monopolar fractal. How does "Riemandelettuce" sound? :)


« Last Edit: January 25, 2010, 12:30:51 AM by hobold »

Logged




Jesse
Download Section
Fractal Schemer
Posts: 1018


« Reply #50 on: January 25, 2010, 10:05:30 PM » 

As far as I can tell, the displaced origin causes the grid cells of the "Riemandelbulb" to shift around a bit, without changing their underlying shape. It doesn't change the nature of the fractal, but breaks the perfect symmetry. I cannot render good pictures yet ... trying to shade a fractal surface is a thankless job. :)
Yes, thats why the normals are calculated at some distance from the "real" surface, that is the whole trick. Else you have to average the iterationcounts from many points to get a better estimate. I guess I really need to find out more about this idea of moving the poles independently. Morphing between the original Mandelbulb and the Riemandelbulb should lead to more interesting shapes. But for now I am wrestling with rendering algorithms.
So we are all inventing the wheel again, but thats live Edit: another thing. I need a better name for the monopolar fractal. How does "Riemandelettuce" sound? :)
Sounds Riemandelicious For the higher power versions i had the word Riemandianpineapple in mind, but that gag doesnt work in english : Hmm, its really striking to explore new things, there had to be a gallery from all discovered bulbs so far, this would also help not to discover things again and again...



Logged




kram1032


« Reply #51 on: January 26, 2010, 04:13:09 PM » 

Riemandelsche Ananas? Haha, nice



Logged




knighty
Fractal Bachius
Posts: 557


« Reply #52 on: January 26, 2010, 05:47:24 PM » 

Yes, thats why the normals are calculated at some distance from the "real" surface, that is the whole trick. Else you have to average the iterationcounts from many points to get a better estimate.
Ah! Thanks! I was wondering how you are doing to get those so beautiful and clean renderings



Logged




makc
Strange Attractor
Posts: 272


« Reply #53 on: January 26, 2010, 06:20:50 PM » 

Yes, thats why the normals are calculated at some distance from the "real" surface, that is the whole trick. Else you have to average the iterationcounts from many points to get a better estimate.
Ah! Thanks! I was wondering how you are doing to get those so beautiful and clean renderings Wow, for some reason I don't get it... Could you post pseudocode for normal? Thanks.



Logged




Jesse
Download Section
Fractal Schemer
Posts: 1018


« Reply #54 on: January 27, 2010, 12:28:44 AM » 

About the Normals, that is all explained in the endless Threads with Distance Estimation, i just cant get helpful links from scratch. Maybe an illustration helps, you step along the ray and if the distance estimation (DE) you get on the ray is below a threshold, you step back to the threshold (blue points) by a binary search and calculate the normals from the local gradients in form of DEs, or you can use the gradients from the smooth iterations itself for the normals. But i am still learning and doing improvements, so this is a rough explanation. Just found a bug in the phong shading, so the next images will be probably better



Logged




hobold


« Reply #55 on: January 27, 2010, 03:51:31 AM » 

A sidenote: I decided to cheat for my rendering experiments. I will separate the steps of fractal creation, distance estimation, and rendering/lighting from each other. I know this approach has downsides (for example, you cannot efficiently animate changing parameters of the formula), but overall it seems to be a good tradeoff.
The plan is 1. to fill a 3D volume with just the inside/outside information of any arbitrary fractal formula (just one bit per voxel)
2. do a general distance transform on that (only needs to be very accurate near the fractal border, so one byte per voxel should do)
3. trace rays through the volume of distances to render isosurfaces
The hard part was number 2, but I made very good progress on that. One 1000x1000 slice takes less than 0.5 seconds to transform with Saito's algorithm, and extending the method to three dimensions is straight forward. So I should be able to obtain the exact distance transform of a 1000^3 volume in less than 1000 seconds on one processor core. (That's why my renderer will only be good for flying around static objects, but that's my first goal.)
I already have a basic raytracer that uses second order spline interpolation of the voxel data for smooth isosurfaces and consistent surface normals. I hope I can speed it up significantly using the exact distance information.
My renderings won't be so beautiful, but I should be able to produce fly around animations of any weird fractal formula, no matter if an analytical distance estimate even exists. And I would be able to render inside views. Main memory is the limiting factor of the basic method as outlined here  a 1024^3 volume needs at least a gigabyte of RAM during rendering  but if this works at all, it can always be extended with more efficient data structures like an octree.



Logged




makc
Strange Attractor
Posts: 272


« Reply #56 on: January 27, 2010, 07:14:41 AM » 

...calculate the normals from the local gradients in form of DEs... This makes sense, thanks.



Logged




Jesse
Download Section
Fractal Schemer
Posts: 1018


« Reply #57 on: January 27, 2010, 11:33:10 PM » 

Hobold, in my wishlist is also a flymode, or as i would implement it: a slow walking mode Doing some basic OpenGL that is not too difficult and calculating the surface in the near surrounding via CPU. But i have to finish the current project before...



Logged




Timeroot


« Reply #58 on: January 28, 2010, 01:50:32 AM » 

I realize that everyone is basically using the monopolar coordinates, but I'd like to just add one more idea to the mix. In my first post, I mentioned an idea with 4 poles, with the two North poles being perpendicular. It just occured to me now that if we arranged these four poles on the sphere like a tetrahedron's vertices, and measure the latitudes from the lines connecting two (we'd only connect two pairs, they would be skew lines), this might preserve more symmetry. Just an idea.



Logged

Someday, man will understand primary theory; how every aspect of our universe has come about. Then we will describe all of physics, build a complete understanding of genetic engineering, catalog all planets, and find intelligent life. And then we'll just puzzle over fractals for eternity.



hobold


« Reply #59 on: January 28, 2010, 02:34:52 AM » 

@Timeroot: sorry for hijacking your thread. I hope to return to the original journey, exploring more exotic coordinate systems. I try to keep my planned renderer generic and independent of specific formulas for that very reason.
Your sketch of "quadrupolar" coordinates ... I am trying to picture them. It seems to me that what you are doing is to drag out each pole into a finite line segment. The ending points of such a line segment would then be the focal points of "concentric" elliptical grid lines. All this projected onto a sphere, so the grid lines are really polynomial curves of order four or higher. This will be complicated. But by varying lengths and orientations of the northern and the southern line segment each, you would be able to break the symmetry of the standard spherical coordinates. This could well lead to more variety of shapes.



Logged




