From 914de6d66bf73b4dddcb213a86f4294fdbbc3537 Mon Sep 17 00:00:00 2001 From: TheoCGaming <65421262+TheoCGaming@users.noreply.github.com> Date: Sun, 30 Apr 2023 17:47:12 -0700 Subject: [PATCH 1/3] fix build --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e48f83..488ae86 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -38,7 +38,7 @@ set(CUDA_NVCC_FLAGS_RELEASE -O3) cuda_add_executable(mandelgpu image.cpp gl_renderer.cpp cuda_error.cu cuda_gl.cu mandelgpu.cpp kernel.cu) -target_link_libraries (mandelgpu ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${PNG_LIBRARY} ${GLEW_LIBRARIES}) +target_link_libraries (mandelgpu ${OPENGL_LIBRARIES} ${GLUT_LIBRARY} ${PNG_LIBRARY} ${GLEW_LIBRARIES} -lglut) From f6f4a02a727d8c3d257be28d43713e184316cb04 Mon Sep 17 00:00:00 2001 From: TheoCGaming <65421262+TheoCGaming@users.noreply.github.com> Date: Sat, 6 May 2023 08:56:34 -0700 Subject: [PATCH 2/3] update readme Add basic markdown to readme file --- README.md | 80 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..c3443e5 --- /dev/null +++ b/README.md @@ -0,0 +1,80 @@ +# MandelGPU 0.11 - A free, fast, interactive fractal viewer +Copyright (c) 2016 Aksel Alpay \ + +Contributions made by TheoCGaming \ + +MandelGPU is a viewer for Mandelbrot and Julia fractals. It makes use of NVIDIA +CUDA for GPU acceleration (and hence unfortunately requires a NVIDIA GPU) and +OpenGL to display the images directly from the GPU without involving the CPU +too much. + +# 1.) Installation + +For a successful compilation, you need +- A C++11 capable compiler +- cmake -- the build system used to compile MandelGPU +- NVIDIA CUDA -- for the GPU acceleration +- OpenGL -- for an effcient, realtime endering of the images +- GLEW -- for an effcient, realtime endering of the images +- GLUT -- manages the OpenGL render window and relays mouse and keyboard input +- libpng -- provides functionality to save screenshots as PNG file +- libpng++ -- C++ interface to libpng + +If you have everything installed, create a build directory and compile MandelGPU: +``` +mkdir build +cd build +cmake +make +``` +Depending on your system, it may be necessary to change the path to the C compiler +at the start of CMakeLists.txt. This line should force cmake to use a version of gcc which +is compatible with CUDA by making it use the gcc (hopefully) provided by +your CUDA installation. CUDA is very picky about the gcc versions it works with. + +# 2.) Using MandelGPU + +The mandelgpu output consists of two parts: The console output providing useful +information (e.g. the current position) and the OpenGL render window which +displays the fractal. + +All interaction with Mandelgpu happens by keyboard and mouse events in the OpenGL +render window. + +The following keyboard or mouse events have functionality tied to them: + +Fractal selection: + 1: Select Mandelbrot fractal + ``` + The mandelbrot fractal is calculated by measuring the divergence rate of the + complex series: + z_(n+1) = z_n^2 + c + where z_0 = 0 and c = x + i*y with the pixel coordinates x and y. +``` + 2: Select Julia fractal + ``` + The Julia fractal is calculated by measuring the divergence rate of the complex + series: + z_(n+1) = z_n^2 + c + where z_0 = x + i*y (x and y are again the pixel coordinates) and c is a complex + constant that can be modified by the user (see below). +``` +Modifying fractals: + a/d: Decrease/increase the real part of + constant for Julia fractals + s/w: Decrease/increase imaginary part + of constant for Julia fractals + +Modifying view: + h: Reset zoom level + f: Toggle fullscreen + Left mouse button and drag: Move view frame + Right mouse button and drag vertically: Zoom in/out + +Other: + q: Quit program + p: Save screenshot as 'mandelgpu.png' + in current working directory + + +If you encounter problems (or even better, have patches) please let me know. From 24b75744990f3ca0b3fc5c638753634a3813bfb3 Mon Sep 17 00:00:00 2001 From: TheoCGaming <65421262+TheoCGaming@users.noreply.github.com> Date: Sat, 6 May 2023 08:57:21 -0700 Subject: [PATCH 3/3] Replace readme with readme.md --- README | 81 ---------------------------------------------------------- 1 file changed, 81 deletions(-) delete mode 100644 README diff --git a/README b/README deleted file mode 100644 index e5eed7c..0000000 --- a/README +++ /dev/null @@ -1,81 +0,0 @@ -Mandelgpu 0.1 - a free, fast, interactive fractal viewer - Copyright (c) 2016 Aksel Alpay - - -Mandelgpu is a viewer for Mandelbrot and Julia fractals. It makes use of nvidia -CUDA for GPU acceleration (and hence unfortunately requires a nvidia GPU) and -OpenGL to display the images directly from the GPU without involving the CPU -too much. - - -1.) Installation - -For a successful compilation, you need -* A C++11 capable compiler -* cmake -- the build system used to compile mandelgpu -* NVIDIA CUDA -- for the GPU acceleration -* OpenGL -- for an effcient, realtime endering of the images -* GLEW -- for an effcient, realtime endering of the images -* GLUT -- manages the OpenGL render window and relays mouse and keyboard input -* libpng -- provides functionality to save screenshots as PNG file -* libpng++ -- C++ interface to libpng - -If you have everything installed, create a build directory and compile mandelgpu: - -mkdir build -cd build -cmake -make - -Depending on your system, it may be necessary to change the path to the C compiler -at the start of CMakeLists.txt. This line should force cmake to use a version of gcc which -is compatible with CUDA by making it use the gcc (hopefully) provided by -your CUDA installation. CUDA is very picky about the gcc versions it works with. - -2.) Using Mandelgpu - -The mandelgpu output consists of two parts: The console output providing useful -information (e.g. the current position) and the OpenGL render window which -displays the fractal. - -All interaction with Mandelgpu happens by keyboard and mouse events in the OpenGL -render window. - -The following keyboard or mouse events have functionality tied to them: - -Fractal selection: - 1: Select Mandelbrot fractal - The mandelbrot fractal is calculated by measuring the divergence rate of the - complex series: - z_(n+1) = z_n^2 + c - where z_0 = 0 and c = x + i*y with the pixel coordinates x and y. - 2: Select Julia fractal - The Julia fractal is calculated by measuring the divergence rate of the complex - series: - z_(n+1) = z_n^2 + c - where z_0 = x + i*y (x and y are again the pixel coordinates) and c is a complex - constant that can be modified by the user (see below). - -Modifying fractals: - a/d: Decrease/increase the real part of - constant for Julia fractals - s/w: Decrease/increase imaginary part - of constant for Julia fractals - -Modifying view: - h: Reset zoom level - f: Toggle fullscreen - Left mouse button and drag: Move view frame - Right mouse button and drag vertically: Zoom in/out - -Other: - q: Quit program - p: Save screenshot as 'mandelgpu.png' - in current working directory - - -If you encounter problems (or even better, have patches) please let me know. - - - -