This is the repository of an introductory talk about raymarching held at our local C++-user-group meeting in Aachen, Germany during May 2018. Screencasts for some of the supplied examples: * metaballs - https://www.youtube.com/embed/FW-8AaYzP_w * gyroid - https://www.youtube.com/embed/QqFFAoQWzTY * distortion - https://www.youtube.com/embed/uQ0vd2YQ9CM * truchet - https://www.youtube.com/embed/6Ljz1-MLXbY Build-dependencies are: * clang++ 4.x or g++ 6.x * SDL 2.0.5 * SDL_image 2.0.1 * OpenGL 4.x * GLEW 1.13.0 * cmake 3.5.x Currently Linux is the most frequently tested platform. macOS should work too. Windows (using MSYS/MinGW) is also supported. Visual-Studio support under Windows is being worked on. To build the binaries you do the usual... 1> cd build 1> cmake .. 1> make -j4 1> cd .. The usage of raymarcher-gl looks like this: raymarcher-gl <shader-file> [<width> <height> <fps-rate> <texture-file> <texture-file> <texture-file> <texture-file>] Example use of the built executables: 1> build/raymarcher-nongl 1> build/raymarcher-gl shaders/basic-3d-raymarching.glsl 1> build/raymarcher-gl shaders/texture-terrain.glsl 720 360 60 data/noise-256x256.png Interaction - if available (depending on the shader) - allows some viewpoint or object/plane manipulation with the mouse. The <SPACE>-key pauses the rendering-loop of a program, <F11> toggles between fullscreen and windowed and the <ESC>-key quits a program. You can live edit any loaded (fragment) shader-file. The raymarcher-gl binary will recognize any changes and try to reload/recompile the updated shader. In case of an error, it will dump the error-messages from the OpenGL-driver to stdout. Fix or undo the error to get a valid graphics-output again. In the directory experimental-shaders are a bunch of shaders not featured or mentioned in the talk itself. They are more of a playground to try out some ideas.
MacSlow/raymarching-vortrag
Slides, source-code and screencasts of introductory talk about raymarching held at C++user-group meeting in Aachen, Germany in May of 2018
GLSLGPL-3.0