Welcome to Fractal Forums

Fractal Software => Adobe Photoshop Plugins Gallery => Topic started by: richardrosenman on August 02, 2010, 09:14:16 PM




Title: Buddhabrot Technical Gallery
Post by: richardrosenman on August 02, 2010, 09:14:16 PM
(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_iterations.jpg)

(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_types.jpg)[/img]

(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_algorithm.jpg)

(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_4d_projection.jpg)

(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_planes.jpg)

(http://richardrosenman.com/wp-content/uploads/software_buddhabrot_coloring.jpg)

-Richard


Title: Re: Buddhabrot Technical Gallery
Post by: Lee Oliver on August 03, 2010, 01:15:57 AM
I have a question:  In your first gallery picture the preview is very clear and it says that it took only 2.08 sec. to render.  Mine are taking a lot longer to render with grainier results.  The only difference I can see is that you are using 2 processors while I am using only 1.  Is there any other way to increase my render speed?


Title: Re: Buddhabrot Technical Gallery
Post by: blob on August 03, 2010, 02:22:19 AM
The rendered image does not correspond to the parameters at all IMO, with a canvas of the same size and a number of rendered samples twice or three times superior I am very far from the quality of  the render in the pic.  

Buddhabrot rendering is very slow unfortunately I am afraid.


Title: Re: Buddhabrot Technical Gallery
Post by: richardrosenman on August 03, 2010, 04:27:47 AM
Hey guys;

Yes, please don't go by the GUI image as that is for presentation purposes only. The clear image you see in there is one that was prerendered for some time, NOT the 2 seconds it shows. Again, this is for presentation purposes only.

The rendertime of Buddhabrot v1.0 corresponds with traditional Buddhabrot renderers, with the exception of accelerated multithreaded rendering if your system supports it. For a typical image of 640x640, a rendertime of approximately 2-3 hours will give you a relatively clean image. As the resolution increases, you will need more rendering time of course.

Many of the images in the creative gallery were rendered for about 8 hours each, not because they needed to but because it was easier for me to leave them rendering overnight each time. Generally you can get sometime clean like I said in about a few hours.

Also, rendering with the Buddhabrot algorithm (as opposed to the colorful Nebulabrot algorithm) will also greatly increase speed since only one iteration is calculated for all three color channels as opposed to each color channel being iterated separately.

Finally, the more iterations you throw at it, the longer it will take to render a clean image - again, a typical aspect of Buddhabrot rendering.

Hope this helps and like I said, if you have a multi-core system, Buddhabrot will greatly speed up as each core will be used to it's fullest. ;)

I hope this helps!

-Richard


Title: Re: Buddhabrot Technical Gallery
Post by: kram1032 on August 03, 2010, 11:14:52 PM
could you reuse the iterations for every colour?
Like:

First check, which of the colour tresholds is the lowest and which is the highest.
Then add a loop that says "if iterations= first_treshold" -> get the value and save it into first colour channel. After that, go on with rendering.
Same for second one- Only if the third treshold is reached, stop the render.

That way, Nebula shouldn't be too much slower than B/W Buddha...


Title: Re: Buddhabrot Technical Gallery
Post by: cbuchner1 on August 03, 2010, 11:23:05 PM
That way, Nebula shouldn't be too much slower than B/W Buddha...

I use said strategy in my CUDA accelerated version, works very well.


Title: Re: Buddhabrot Technical Gallery
Post by: richardrosenman on August 04, 2010, 07:27:50 AM
could you reuse the iterations for every colour?
Like:

First check, which of the colour tresholds is the lowest and which is the highest.
Then add a loop that says "if iterations= first_treshold" -> get the value and save it into first colour channel. After that, go on with rendering.
Same for second one- Only if the third treshold is reached, stop the render.

That way, Nebula shouldn't be too much slower than B/W Buddha...

Hi Kram1032;

Thanks for your reply. I'm very interested in this technique but unfortunately you lost me (takes me a while sometimes...).

So I find the highest and lowest thresholds - that's no different than the current algorithm.
Then the loop - if the current iteration for all three channels or for the red one? = the first threshold? You mean the lowest threshold? See this is where I get lost. Would you be able to go into further detail with your explanation? I'm sure it's easy but I don't quite get it right now. Or in pseudo code?

Thanks,
-Richard


Title: Re: Buddhabrot Technical Gallery
Post by: kram1032 on August 05, 2010, 01:01:13 PM
What I meant is basically: Do a a single loop for all three colours. However, inside the loop, check if the iteration count is equal to one of the tresholds. If it is, use that for the corresponding colour channel.

something like...

for (i=0;i<bailout;i++)
{
 *do all the necessary stuff*

 if (i==treshold1)
  {*take information into colour channel 1*}
 if (i==treshold2)
  {*take information into colour channel 2*}

*the rest is like before for colour channel 3*

}

I hope that helps...