< Fractals
Mandel Machine Mandel Machine is a highly efficient Mandelbrot set explorer developed by Botond Kósa.[1]
Description
code
- the c++ part ( mm64.cpp ) is only to declare functions that are implemented in assembly language and the rest is in java.
- FractalCanvas.java is the most important file
Algorithms
color
FractalCanvas.java line 1996 and further:
if(itTransferFunction==1) ;
else if(itTransferFunction==2) it = Math.sqrt(it+1);
else if(itTransferFunction==3) it = Math.cbrt(it+1);
else if(itTransferFunction==4) it = Math.sqrt(Math.sqrt(it+1));
else if(itTransferFunction==5) it = Math.log(it+1);
else if(itTransferFunction==6) it = Math.log(Math.log(it+1)+1);
else if(itTransferFunction==7) it = Math.atan(it);
else it = -1;
Bump mapping
"bump mapping. It allows fake-3D visualization of subtle details previously hidden by the slow gradients in the palette.
Bump mapping is controlled by 3 parameters:
- Direction of lighting (in degrees): specifies the angle of the simulated lighting. Surfaces facing the light are highlighted, the ones blocked from lighting are darkened.
- Depth: controls how much the structures emerge from the background of slow gradients. Shallow depth causes a relief/emboss-like look. Greater depth values result in deeper valleys between structures (see the examples below).
- Strength: controls the amount of color shift caused by highlights and shadows.
The parameters are continuously adjustable to give instant feedback." [2]
Data format
"The Mandel Machine MMIT compressed iteration data file format:
- every datatype needs to be written in big endian notation.
- The following streamed through a Deflater (raw zlib format)" Dinkydau[3]
<int 4 bytes> Program Version <int 4 bytes> Canvas Width <int 4 bytes> Canvas Height <byte> Supersampling <double> Magnification <double> Rotation <int 4 bytes> Number of coordinate digits represented by long ints <long long array> array 2 times as long as the above int <int 4 bytes> Iteration limit <byte> Bytes per sample <double> minimum iteration count <double> granularity (equal to iterRange / (2^(bytes_per_sample*8) - 6), where iterRange is maxIt - minIt) <int array> row by row encoded samples (one int value per pixel)
Doc
References
This article is issued from Wikibooks. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.