Syntopia


« Reply #45 on: September 12, 2011, 04:35:53 PM » 

Fragmentarium uses an analytical distance estimator approach, so you need to (1) find analytical DE's for each "subformula" and (2) combine them. If the analytical DE's are of the same form (say DE=r*ln(r)/dr, with 'dr' being the length of a running (scalar) derivate), step (2) is straightforward  otherwise it is more complicated (I don't know how to do it in a generic manner).
As an alternative, I have some example Fragmentarium code showing how to work with the numerical gradient approximation (the Makin/Buddhi fourpoint "delta" DE). This is the methods used by M3D and Mandelbulber for hybrid systems. It is slower and seems to be more prone to noise, perhaps because of the singleprecision calculations used on the GPU. I'll put an example in the next Fragmentarium update.
So, all in all it is not easy :)



Logged




visual.bermarte


« Reply #46 on: October 08, 2011, 06:47:28 AM » 

test::slice your bulb (fast)! * * and see the guts! >fragmentarium 0.8


« Last Edit: October 08, 2011, 06:51:27 AM by visual, Reason: fragmentarium 0.8 »

Logged




Syntopia


« Reply #47 on: October 08, 2011, 12:03:11 PM » 

Uh, very interesting! How did you manage that, Visual? Ordinary slicing results in a Mandelbulb that is filled inside.



Logged




visual.bermarte


« Reply #48 on: October 08, 2011, 02:50:36 PM » 

this time there's the frag. attached it's just a decombination using the 'old' maxoperator



Logged




knighty
Fractal Iambus
Posts: 819


« Reply #49 on: October 08, 2011, 03:05:58 PM » 

It looks like scalar derivative based DE with (very?) small DE factor (and small iteration number?). This is a wild gess based on the "wall" visible inside the main bulbs in visual's picture. Scalar derivative based DE have the nice property that it is someway usable especially when iteration number is low but it is far from being perfect.



Logged




knighty
Fractal Iambus
Posts: 819


« Reply #50 on: October 08, 2011, 03:07:07 PM » 

visual was faster!



Logged




Syntopia


« Reply #51 on: October 08, 2011, 06:38:04 PM » 

Oh, you simply use the standard "DE=0.5*log(r)*r/dr" as a signed distance measure!
I had no idea that formula could be used as an interior estimate  I always assumed it would be pure noise  after all the analytical distance estimates are much more complex for the interior distances.
I'm still puzzled it works  if I take a look at the Mandelbrot DE using the standard formula, it has spikes (increasing with the number of iterations) where the DE goes towards infinity.



Logged




knighty
Fractal Iambus
Posts: 819


« Reply #52 on: October 09, 2011, 10:30:10 AM » 

Syntopia: you are not using a scalar derivative there. The scalar derivative for the mandelbrot set is the same as for the mandelbulb. Use dr=2*r*dr+1; where r=sqrt(x²+y²); instead of dz=2*z*dz+1 then taking its norm. If you vary the iteration number the DE will change periodically. This is related to the pariodicity of the iterate. Maybe it's possible to use a DE based on the first and second deriatives instead.


« Last Edit: October 09, 2011, 10:56:21 AM by knighty, Reason: +1 »

Logged




Syntopia


« Reply #53 on: October 09, 2011, 11:46:20 AM » 

Syntopia: you are not using a scalar derivative there. The scalar derivative for the mandelbrot set is the same as for the mandelbulb. Use dr=2*r*dr+1; where r=sqrt(x²+y²); instead of dz=2*z*dz+1 then taking its norm. If you vary the iteration number the DE will change periodically. This is related to the pariodicity of the iterate. Maybe it's possible to use a DE based on the first and second deriatives instead. Well, I did try both the scalar and the complex DE, and the scalar thing was much worse, going toward infinity nearly everywhere :( But looking at your formula, I realise it is because I used the Julia running derivative 'dr=2*r*dr' without the '+1' term. (This seems to be an old error in many of my examples). Here is some better pictures (with and without the plus one). As you say, it is very sensitive to even small changes in iteration count inside.



Logged




DarkBeam
Global Moderator
Fractal Senior
Posts: 2512
Fragments of the fractal like the tip of it


« Reply #54 on: October 09, 2011, 12:16:51 PM » 

Creamy mandel want to take a bit



Logged

No sweat, guardian of wisdom!



knighty
Fractal Iambus
Posts: 819


« Reply #55 on: October 09, 2011, 12:27:22 PM » 

Yes, they taste good. Humm! Here is a little experiment with scalar first and second derivative. It doesn't mean it is a DE though... maybe... note that it converges uniformly inside.


« Last Edit: October 09, 2011, 12:31:46 PM by knighty »

Logged




Syntopia


« Reply #56 on: October 09, 2011, 09:51:21 PM » 

Yes, they taste good. Humm! Here is a little experiment with scalar first and second derivative. It doesn't mean it is a DE though... maybe... note that it converges uniformly inside. You are using dr/ddr as distance estimate? I'm not sure I can follow why this should work? It seems to overshoot near (0.0). I believe the two largest spikes should have roughly same size. Here is a 3D picture with some isocontours:



Logged




cbuchner1


« Reply #57 on: October 09, 2011, 10:49:53 PM » 

Nice, that ISO fractal looks interesting.



Logged




knighty
Fractal Iambus
Posts: 819


« Reply #58 on: October 09, 2011, 10:53:04 PM » 

No, I'm not using dr/ddr as DE, just suggesting it looks a little like DE (beside it's poor behaviour near the cusp of the main cardioid). I've forgotten to mention that to get even coloring i used (dr/ddr)^0.3 instead (that part of the code is not visible in the picture). The exponentiation straightens it (near the borders) and makes it look more like a cone (and round at the top... I don't know just have worked it in 2D) than a witch hat . nice renders btw.


« Last Edit: October 09, 2011, 11:00:02 PM by knighty »

Logged




knighty
Fractal Iambus
Posts: 819


« Reply #59 on: October 09, 2011, 11:03:40 PM » 

Why it's (somehow) close to be DE? well... I really don't know.



Logged




