diff options
Diffstat (limited to 'src/com/mbien/opencl/demos/fractal/Mandelbrot.cl')
-rw-r--r-- | src/com/mbien/opencl/demos/fractal/Mandelbrot.cl | 51 |
1 files changed, 0 insertions, 51 deletions
diff --git a/src/com/mbien/opencl/demos/fractal/Mandelbrot.cl b/src/com/mbien/opencl/demos/fractal/Mandelbrot.cl deleted file mode 100644 index 640c775..0000000 --- a/src/com/mbien/opencl/demos/fractal/Mandelbrot.cl +++ /dev/null @@ -1,51 +0,0 @@ -#ifdef DOUBLE_FP - #pragma OPENCL EXTENSION cl_khr_fp64 : enable - typedef double varfloat; -#else - typedef float varfloat; -#endif - -/** - * For a description of this algorithm please refer to - * http://en.wikipedia.org/wiki/Mandelbrot_set - * @author Michael Bien - */ -kernel void mandelbrot( - const int width, const int height, - const varfloat x0, const varfloat y0, - const varfloat rangeX, const varfloat rangeY, - global uint *output, global uint *colorMap, - const int colorMapSize, const int maxIterations) { - - unsigned int ix = get_global_id(0); - unsigned int iy = get_global_id(1); - - varfloat r = x0 + ix * rangeX / width; - varfloat i = y0 + iy * rangeY / height; - - varfloat x = 0; - varfloat y = 0; - - varfloat magnitudeSquared = 0; - int iteration = 0; - - while (magnitudeSquared < 4 && iteration < maxIterations) { - varfloat x2 = x*x; - varfloat y2 = y*y; - y = 2 * x * y + i; - x = x2 - y2 + r; - magnitudeSquared = x2+y2; - iteration++; - } - - if (iteration == maxIterations) { - output[iy * width + ix] = 0; - }else { - varfloat alpha = (varfloat)iteration / maxIterations; - int colorIndex = (int)(alpha * colorMapSize); - output[iy * width + ix] = colorMap[colorIndex]; - // monochrom - // output[iy * width + ix] = 255*iteration/maxIterations; - } - -}
\ No newline at end of file |