Index

zydeco / fractal

Experiment in graphics programming, C++, OpenGL, simulation techniques.

Latest Commit

{#}TimeHashSubjectAuthor#(+)(-)GPG?
1209 Dec 2023 13:511467546Update READMEJosh Stockin111G

Tree

ObjectLatest Commit SubjectTimeHash
folderincludeFractal renderer update for article08 Dec 2023 15:215a717fe
foldersrcFractal renderer update for article08 Dec 2023 15:215a717fe
file.gitignoreUse GL3W05 Aug 2023 23:143c60e1a
fileCMakeLists.txtFractal renderer update for article08 Dec 2023 15:215a717fe
fileLICENSEInitial commit03 Aug 2023 17:13a07587e
fileREADME.mdUpdate README09 Dec 2023 13:511467546
fileimgui.iniImGui bringup03 Sep 2023 23:177457fba
filezydeco.shCreate base Engine class04 Aug 2023 22:32f2ac8af

README

Zydeco (Fractal tag)

Hobby project/experiment in C++, graphics programming, and world generation.

Building

Run ./zydeco.sh to compile, build, and run. Requires CMake and a C++20-capable compiler, as well as the dependencies below. Executable is outputted at build/zydeco in the project root directory.

Zydeco depends upon the following C/C++ libraries:

Library Purpose Source
fmt String formatting for debug output messages libfmt-dev
cpptrace Producing stack traces for fault output GitHub
SDL2 Cross-platform solution for creating and managing windows, OpenGL contexts libsdl2-dev
GL OpenGL libgl-dev
gl3w OpenGL loader with extensions enabled GitHub
imgui Immediate-mode GUI, used for debug menus GitHub (docking branch)

Notes on installing dependencies:

Depending on how your package manager installed SDL2, there might be a disparity for SDL2 #includes between imgui and this application. If this is the case, you may need to manually update imgui or this source code to add or remove "SDL2/" in <SDL2/sdl_file_name.h>, depending on where your package manager installed things.

Source Code

It's not as pretty as I made it look in the article. OpenGL abstractions in src/render. Fractal application in src/game/Mandelbrot.cpp. Shaders in include/render/shaders. If you're looking to try out new z-transforms, you'll want to modify include/render/shaders/fractal.cs.glsl.