From 0a721898b11f06a30a38fac9c54666d6651b745e Mon Sep 17 00:00:00 2001 From: dlozeve Date: Sun, 7 Mar 2021 17:22:31 +0000 Subject: [PATCH] deploy: 17ad76f0f666af9b1a1933a51331631f7bde9fe7 --- index.html | 39 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/index.html b/index.html index 6211785..5076a7c 100644 --- a/index.html +++ b/index.html @@ -68,7 +68,44 @@ $(function() {

build docs

-

Live tool for developing OpenGL shaders interactively.

+

Live tool for developing OpenGL shaders interactively.

+

I developed this small program to experiment with shaders locally, to reproduce an experience like Shadertoy offline, with the ability to choose my own text editor. It was also a good project to learn OpenGL development. For this reason, the code is very minimal and should be fairly readable.

+

Additional features:

+
    +
  • Extensive logging (using the nice log.c library)
  • +
  • FPS tracking
  • +
  • Reload shaders automatically on save (using inotify)
  • +
  • Save screenshot to a file
  • +
  • Complete argument parsing with Argp
  • +
  • Full documentation with Doxygen
  • +
+

Build

+

This project requires the GLFW, GLEW, and FreeImage libraries. On a Debian/Ubuntu system:

sudo apt-get install libglfw3-dev libglew-dev libfreeimage-dev
+

To build (with Meson):

meson build
+
ninja -C build
+

To build the documentation with Doxygen:

doxygen Doxyfile
+

The documentation is also available online.

+

Usage

+
Usage: shadertool [OPTION...] SHADER
+
Compile and render the SHADER.
+
ShaderTool -- Live tool for developing OpenGL shaders interactively
+
+
-b, --buffer=FILE Source file of the buffer fragment shader
+
-r, --auto-reload Automatically reload on save
+
-s, -q, --silent, --quiet Don't produce any output
+
-v, --verbose Produce verbose output
+
-?, --help Give this help list
+
--usage Give a short usage message
+
-V, --version Print program version
+

For instance, to run the mandelbrot shader with live reloading on save:

shadertool -r shaders/mandelbrot.frag
+

Keyboard shortcuts:

+
    +
  • Escape to quit
  • +
  • R to reload the shaders
  • +
  • S to save a screenshot to the current directory, in a file shadername_frame_date_time.png
  • +
+

Limitations

+

For now, the "buffer" shader (i.e. the additional shader that renders in a texture in another framebuffer) does not work properly. I don't understand exactly what's broken, but maybe I'll investigate it more closely later. If you have any idea about what went wrong, don't hesitate to notify me!