Skip to content

cyprus327/FractalRenderer

Repository files navigation

Fractal Renderer

A fractal explorer.

Features:

  • Realtime rendering.
  • All fractal's states are saved (i.e. your zoom and position is persistent when switching back and forth between fractals).
  • 64 bit precision for very long zooms (except for the Mandelbulb).
  • GPU instead of the CPU for extremely fast and responsive rendering.

Current supported fractals:

  • The Mandelbrot Set
  • The Julia Set
  • Burning Ship
  • The Multibrot
  • The Mandelbulb

Screenshots:

  • Mandelbrot

Mandelbrot Base Mandelbrot Zoom 1 Mandelbrot Zoom 2

  • Julia Set

Coords: (-0.7800, 0.1360i) Julia Base Coords: (0.1066, 0.6483i) Julia Changed

  • Burning Ship

Burning Ship

  • Multibrot

Power: 0.5 Multibrot 0.5 Power: ~3.0 Multibrot 3.0 Power: ~7.0 Multibrot 7.0

  • Mandelbulb (see Raymarching for a much better render)

Mandelbulb Base Mandelbulb Surface

  • What happens when you reach maximum supported precision

Precision Limit

Installation:

  1. Clone this repository or download the .zip file.
  2. Open the .sln file in Visual Studio 2022.
  3. In release mode, build or run the solution.
  4. If building the solution instead of running, find the .exe file generated and run it.

Usage:

Information Format

name of fractal | iteration count, coordinates, zoom level | fps

Info Example

For all other than Mandelbulb:

  • Left click and move the mouse to pan
  • Q to zoom out
  • E to zoom in
  • R to reset the zoom
  • Z to decrease max iterations
  • X to increase max iterations

For Mandelbulb:

  • WASD or the mouse to rotate
  • Q to zoom out
  • E to zoom in

Additional keybinds for Julia

  • C to decrease the real constant
  • V to increase the real constant
  • B to decrease the imaginary constant
  • N to increase the imaginary constant

Additional keybinds for Multibrot

  • C to decrease the power
  • V to increase the power

License

This project is licensed under the MIT License.

Releases

No releases published

Packages

No packages published