No description
This repository has been archived on 2025-03-02. You can view files and clone it, but cannot push or open issues or pull requests.
Find a file
2016-02-06 12:12:32 +01:00
examples examples/symmetry: more cleanup 2016-02-03 15:41:24 +01:00
.gitignore Add glslwrite tool and some examples 2016-02-01 14:03:21 +01:00
common.c Remove unneeded headers from common.h, improve error handling 2016-02-04 20:00:02 +01:00
common.h Remove unneeded headers from common.h, improve error handling 2016-02-04 20:00:02 +01:00
glslview.c Add width/height options 2016-02-06 11:52:02 +01:00
glslwrite.c Add width/height options 2016-02-06 11:52:02 +01:00
Makefile Makefile improvements 2016-02-06 11:07:16 +01:00
README.txt Add README 2016-02-06 12:12:32 +01:00

glslview
========

glslview is a simple program to run GLSL fragment shaders and interact with them.

glslview will render a simple fullscreen rectangle, the shader will determine each
pixel's color.

The glslwrite tool can be used to write the generated frames to PNG files
(with transparency support!).

You will need a graphics adapter and drivers with modern OpenGL/GLSL support.

Building
~~~~~~~~

glslview has been tested on Linux only, but it should work on other systems as well.
If it doesn't, I'm happy to take patches.

glslview has the following dependencies:

* SDL2
* libGL
* libGLEW

glslwrite additionally depends on libpng.

On Linux, glslview will use inotify to watch the loaded shader file for changes.


Running
~~~~~~~

Shader
------

glslview will supply the following uniform parameters to the shader:

vec2 res
    The current resolution of the window

float time
    Current time in milliseconds (by default since start of the program)

int param0, param1, param2
    Modifiable parameters, 0 by default

The shader must define an output vec4 called "fragColor" into which the fragment color
is to be written.

See the examples provided with the source for more information. The "symmetry"
example makes use of all parameters.


Command line
------------

    glslview <options> <shader>
    glslwrite <options> <shader> <output directory>


Common options:

-w <width>
    Initial window width (default: 800)

-h <height>
    Initial window height (default: 800)

-0, -1, -2 <param>
    Initial value for the shader parameters


glslview options:

-s <speed>
    Initial speed factor (default: 1.0, negative values make time run backwards)

-t <time>
    Initial time value (default: 0.0)


glslwrite options:

-s <step>
    Time step between frames (default: 20.0)

-f <frame>
    Number of frames to generate (default: run forever)


glslview control
----------------

+/-, scroll wheel
    Change speed

=
    Reset speed

<
    Run backwards

>
    Run forwards

r
    Reset time

R
    Reset parameters

Page up/down
    Modify param0

Left/right
    Modify param1

Up/down
    Modify param2

Escape
    Quit