Add more complete usage documentation in README
This commit is contained in:
parent
f7712da8d2
commit
17ad76f0f6
1 changed files with 80 additions and 0 deletions
80
README.md
80
README.md
|
@ -4,3 +4,83 @@
|
||||||
[](https://dlozeve.github.io/ShaderTool/)
|
[](https://dlozeve.github.io/ShaderTool/)
|
||||||
|
|
||||||
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](https://www.shadertoy.com/)
|
||||||
|
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](https://github.com/rxi/log.c) library)
|
||||||
|
- FPS tracking
|
||||||
|
- Reload shaders automatically on save (using
|
||||||
|
[inotify](https://man.archlinux.org/man/inotify.7))
|
||||||
|
- Save screenshot to a file
|
||||||
|
- Complete argument parsing with
|
||||||
|
[Argp](https://www.gnu.org/software/libc/manual/html_node/Argp.html)
|
||||||
|
- Full documentation with [Doxygen](https://www.doxygen.nl/index.html)
|
||||||
|
|
||||||
|
## Build
|
||||||
|
|
||||||
|
This project requires the [GLFW](https://www.glfw.org/),
|
||||||
|
[GLEW](http://glew.sourceforge.net/), and
|
||||||
|
[FreeImage](https://freeimage.sourceforge.io/) libraries. On a
|
||||||
|
Debian/Ubuntu system:
|
||||||
|
```sh
|
||||||
|
sudo apt-get install libglfw3-dev libglew-dev libfreeimage-dev
|
||||||
|
```
|
||||||
|
|
||||||
|
To build (with [Meson](https://mesonbuild.com/)):
|
||||||
|
```sh
|
||||||
|
meson build
|
||||||
|
ninja -C build
|
||||||
|
```
|
||||||
|
|
||||||
|
To build the documentation with
|
||||||
|
[Doxygen](https://www.doxygen.nl/index.html):
|
||||||
|
```sh
|
||||||
|
doxygen Doxyfile
|
||||||
|
```
|
||||||
|
|
||||||
|
The documentation is also available
|
||||||
|
[online](https://dlozeve.github.io/ShaderTool/).
|
||||||
|
|
||||||
|
## 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](shaders/mandelbrot.frag) shader
|
||||||
|
with live reloading on save:
|
||||||
|
```sh
|
||||||
|
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!
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue