a program to generate buddhabrot images and some more
clone the repository somewhere on your computer.
On a terminal, cd in the repository, then build the program :
$ make
You may need to install packages depending of your distribution.
Also, you can configure witch compiler to use by opening the Makefile
and setting the CC
variable to the name of compiler (clang
by default).
To clean all the intermediate files, use make clean
; To clean all files generated by the build, use make fclean
; To rebuild entierly, use make re
.
$ ./buddhabrot [OPTION]
This will generate a file named out.pgm
on the current active directory.
-w
Width : the width of the image (default 1000)-h
Height : the height of the image (default 1000)-s
Sample size : the number of point to find (default 200000)-m
Minimum : the minimum number of steps a point need to qualify (default 10)-M
Maximum : the maximum number of steps a point need to qualify (default 20)-t
Thread : number of thread. 0 for auto (default)-a
Algorithm :scan
,random
ortree
.-r
Renderer :binary
,layered
orbuddhabrot
-x
X offset : the horizontal offset of the image in the complex plan.-y
Y offset : the vertical offset of the image in the complex plan.-z
Zoom : the interval of values coverded by the image. Lower to "zoom in". Default is 2.-g
Gamma correction : set the gamma correction to apply when writting the image. Inferior to 1 is brighter, higher than 1 is darker. Set toauto
to let the program anylase the image and come up with it own value. Default isoff
.
Example for a hight resolution image (width and height inverted to rotate the image afterward)
$ ./buddhabrot -w 4320 -h 7680 -s 2000000 -m 30 -M 100
The program launch one thread per actual thread available on the computer (on auto).
For now, the program look at random point until it find -s
points that escape the circle of radius 2 between -m
and -M
steps.
I'm working on another approch bsed on a tree exploration. This is should accelerate the render (~ 10x from my initial tests). However, this need a good algorithm to select where to explore and where not to in order to have a good visual without filling the RAM with useless data.
- more parameters
- render of a specific part (already built-in, but no exposded)
- fasters algorithms (ideas welcome)
- multi-os support
- save and load of intermediate steps (useful to make several render with the same points, or to put more work on a already computed step)
- blending renders to generate those colorufull images (aka Nebulabrot).