Logo by KRAFTWERK - 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: Check out the originating "3d Mandelbulb" thread here
 
*
Welcome, Guest. Please login or register. October 02, 2018, 06:39:12 AM


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 3237 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 115 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
buddhabrot Images Showcase (Rate My Fractal) Well En Taoed 10 1054 Last post August 12, 2010, 08:55:51 PM
by Wel lEnTaoed
Buddhabrot Images Showcase (Rate My Fractal) Well En Taoed 0 505 Last post August 10, 2010, 04:36:11 PM
by Well En Taoed
Buddhabrot Images Showcase (Rate My Fractal) Well En Taoed 0 446 Last post August 10, 2010, 04:38:45 PM
by Well En Taoed
grainy noise Help & Support coldwetnoz 3 173 Last post January 07, 2014, 05:55:01 PM
by tatasz
Apophysis grainy Help & Support ccb 3 139 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.161 seconds with 24 queries. (Pretty URLs adds 0.015s, 2q)