GlslViewer is a flexible console-base OpenGL Sandbox to display 2D/3D GLSL shaders without the need of an UI. You can definitely make your own UI or wrapper using the Python Module (include) or any other tool that communicates back/forth with glslViewer thought the standard POSIX console In/Out or OSC.
GlslViewer support both 2D shaders and/or 3D shaders when a geometry (LST, PLY, OBJ or GLTF) is provided.
GlslViewer gives support to:
- fragment and vertex shaders on GLSL 120
- resolve #include dependencies
- adding/deleting #define keys through console IN commands and OSC
- automatically generated set of defines based on the platform, buffer, render pass, geometry attributes and materials properties.
- passing custom uniforms (float, int, vec2, vec3 and vec4) through console IN or OSC
- import of Textures (png, bmp, jpg, tga, hdr and gif)
- import of Cubemaps and spherical harmonics (png, jpg, tga, hdr)
- import LST, PLY, OBJ or GLTF files (and their dependencies)
- default vert/frag shaders with PBR lighting model
- hot reload of files on changes
- One default light and one default camera
- Interactive commands thought POSIX console IN/OUT or OSC
- different debug modes (histogram, textures, buffers, bounding box, etc)
- shadow maps
- headless rendering
- fullscreen and screensaver mode
- image export
- PNG sequence export
* [Platform](https://github.com/patriciogonzalezvivo/glslViewer/wiki/GlslViewer-DEFINES#platform-defines) * [Buffers & Render Passes](https://github.com/patriciogonzalezvivo/glslViewer/wiki/GlslViewer-DEFINES#buffers-and-render-passes) * [Geometry Attributes](https://github.com/patriciogonzalezvivo/glslViewer/wiki/GlslViewer-DEFINES#geometry-defines) * [Materials](https://github.com/patriciogonzalezvivo/glslViewer/wiki/GlslViewer-DEFINES#material-defines)
- Python wrapper
Bugs to fix
[ ] Depth frag shader for scene depthmap (
u_sceneDepth ) instead of rendering to multiple targets ( only on RPI )
[ ] Depth frag shader for light's shadowMap, to work on RPI
Mihai Sebea for making the Windows compile happen
Wray implement the OSC listener feature, opening GlslViewer to an entire new ways of communicating and interacting with other apps, devices and ecosystems.
Yvan Sraka for putting the code in shape and setting it up for TravisCI.
- Mihai Sebea for porting it to windows(TM)