Logo by Fractal Ken - 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: Visit us on facebook
 
*
Welcome, Guest. Please login or register. November 30, 2025, 11:06:58 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 [2]   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: Buddhabrot is grainy  (Read 5973 times)
0 Members and 1 Guest are viewing this topic.
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #15 on: April 01, 2011, 10:50:40 AM »

i understand your problem.

what you seem to do is :
Code:
foreach (pixel) :
  translate pixel coordinate into complex coordinate
  if( not in mandelbrot set) then
    draw orbit
  end if
end for

you are limited to width*height potential orbits.

what you want is :
Code:
while(true)
  get a random complex point
  if( not in mandelbrot set) then
    translate orbit(in complex cordinate) into orbit(in pixel coordinate)
    draw orbit
  endif
end loop

now you have an insane amount of different to draw.
Because many many orbit may start on the same pixel but have totally different orbits.

This is one of the possible solution (we're doing that : http://en.wikipedia.org/wiki/Monte_Carlo_method ) but there is many other possibilities (some are yet to be invented  grin )
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
PurpleBlu3s
Alien
***
Posts: 28



« Reply #16 on: April 01, 2011, 11:14:08 AM »

i understand your problem.

what you seem to do is :
Code:
foreach (pixel) :
  translate pixel coordinate into complex coordinate
  if( not in mandelbrot set) then
    draw orbit
  end if
end for

you are limited to width*height potential orbits.

what you want is :
Code:
while(true)
  get a random complex point
  if( not in mandelbrot set) then
    translate orbit(in complex cordinate) into orbit(in pixel coordinate)
    draw orbit
  endif
end loop

now you have an insane amount of different to draw.
Because many many orbit may start on the same pixel but have totally different orbits.

This is one of the possible solution (we're doing that : http://en.wikipedia.org/wiki/Monte_Carlo_method ) but there is many other possibilities (some are yet to be invented  grin )


What should my boundaries be for the complex number? Are they the same, but with greater precision/resolution, or do I also need to increase the range?
Thanks.
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #17 on: April 01, 2011, 11:52:43 AM »

you can safely choose random complex in thoses boundaries :

realMin = -2.0f;
realMax = 0.75f;
imaginaryMin = -1.5f;
imaginaryMax = 1.5f;

Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #18 on: April 01, 2011, 11:54:35 AM »

feel free to take a look at : https://github.com/ker2x/Fortran_buddhabrot/blob/master/buddhabrot.f90
and : https://github.com/ker2x/Fortran_buddhabrot/blob/BlackAndWhite/buddhabrot.f90

certainly not the best algorithm but easy to read (even if you don't know fortran)
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
PurpleBlu3s
Alien
***
Posts: 28



« Reply #19 on: April 03, 2011, 01:12:08 AM »

It was my lack of orbits that was letting me down, you were definitely right.

I've created two images, one with 20 iterations, the other with 256 so far. I used 100 million orbits.
http://dl.dropbox.com/u/16319566/20it.png - took about 40 seconds.
http://dl.dropbox.com/u/16319566/256it.png - took about 4 minutes.
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #20 on: April 03, 2011, 01:35:53 AM »

It was my lack of orbits that was letting me down, you were definitely right.

I've created two images, one with 20 iterations, the other with 256 so far. I used 100 million orbits.
http://dl.dropbox.com/u/16319566/20it.png - took about 40 seconds.
http://dl.dropbox.com/u/16319566/256it.png - took about 4 minutes.

Yay \o/
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
PurpleBlu3s
Alien
***
Posts: 28



« Reply #21 on: April 03, 2011, 04:15:42 AM »

65 minutes, 1 billion orbits, 512 iterations:


Is this about as good as would be expected given the number of orbits and iterations?
Logged
PurpleBlu3s
Alien
***
Posts: 28



« Reply #22 on: April 04, 2011, 12:40:51 AM »

Also, I just tried the Nebulabrot; 4 hours, 2048 iterations, 1 billion orbits:

http://dl.dropbox.com/u/16319566/2048it-1borbits.png
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #23 on: April 04, 2011, 08:53:18 AM »

Is this about as good as would be expected given the number of orbits and iterations?

Absolutely smiley

Can you try to skip the rendering of the firsts 10 iterations ?
from 10 to 512.
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #24 on: April 04, 2011, 08:54:01 AM »

Also, I just tried the Nebulabrot; 4 hours, 2048 iterations, 1 billion orbits:

http://dl.dropbox.com/u/16319566/2048it-1borbits.png


nice smiley
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
PurpleBlu3s
Alien
***
Posts: 28



« Reply #25 on: April 05, 2011, 12:47:52 AM »

When I tried the minimum iterations 'trick', I got this sort of thing:

How should I decide the safest minimum iterations to avoid a 'damaged' Buddhabrot?
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #26 on: April 05, 2011, 04:28:44 AM »

When I tried the minimum iterations 'trick', I got this sort of thing:
<Quoted Image Removed>
How should I decide the safest minimum iterations to avoid a 'damaged' Buddhabrot?

Hummm... How many iterations ?
And, btw, it doesn't look damaged to me, it looks enhanced smiley
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
PurpleBlu3s
Alien
***
Posts: 28



« Reply #27 on: April 05, 2011, 05:04:31 AM »

I think I made the minimum 1/100 of the maximum but I can't remember exactly. Probably max = 1000, min = 10.
Logged
ker2x
Fractal Molossus
**
Posts: 795


WWW
« Reply #28 on: April 05, 2011, 09:29:58 AM »

I think I made the minimum 1/100 of the maximum but I can't remember exactly. Probably max = 1000, min = 10.

Then it make sense.
A mandelbrot at 10 iteration :



* mandel10.jpg (27.07 KB, 640x480 - viewed 170 times.)
Logged

often times... there are other approaches which are kinda crappy until you put them in the context of parallel machines
(en) http://www.blog-gpgpu.com/ , (fr) http://www.keru.org/ ,
Sysadmin & DBA @ http://www.over-blog.com/
Pages: 1 [2]   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
3D Buddhabrot 3D Fractal Generation David Makin 1 4628 Last post January 12, 2008, 02:36:31 PM
by twinbee
BuddhaBrot! Images Showcase (Rate My Fractal) « 1 2 » emmmile 17 8923 Last post June 22, 2010, 11:53:15 PM
by Nahee_Enterprises
Buddhabrot on GPU Programming « 1 2 ... 6 7 » ker2x 97 40329 Last post April 03, 2011, 11:58:16 PM
by ant123
grainy noise Help & Support coldwetnoz 3 354 Last post January 07, 2014, 05:55:01 PM
by tatasz
Apophysis grainy Help & Support ccb 3 513 Last post July 04, 2016, 01:39:59 PM
by lycium

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 27 queries. (Pretty URLs adds 0.015s, 2q)