NAME
glslViewer — Console-based GLSL Sandbox for 2D/3D shaders
SYNOPSIS
INFO
DESCRIPTION
Console-based GLSL Sandbox for 2D/3D shaders
README

glslViewer


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 through the standard POSIX console In/Out or OSC.
Joing #GlslViewer channel on shader.zone discord to learn how to use it, share work and get help.

GlslViewer gives support to:
- fragment and vertex shaders on GLSL
- 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
- Different kinds of Textures (png, bmp, jpg, tga, hdr, gif, mp4, mov, rtc, rtsp, local camera devices and audio textures)
- import of Cubemaps and spherical harmonics (png, jpg, tga, hdr)
- import LST, PLY, OBJ or GLTF files (and their dependencies)
- default vert/frag shaders for 2D shader and 3D material 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
- HoloPlay rendering on LookingGlass Display
- image export
- PNG sequence export
- WASM crosscompiling


Wiki themes
Convention:
Author
Patricio Gonzalez Vivo: github | twitter | instagram | website
Acknowledgements
Thanks to:
Mihai Sebea and Bertrand Carré for making the Windows compile happen
Karim Naaki lot of concept and code was inspired by this two projects: fragTool and hdreffects
Doug Moen he help to add the compatibility to ShaderToy shaders and some RayMarching features were added for his integration with his project: curv.
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.
Andsz for Spherical Harmonics code from Spherical Harmonics Playground
Syoyo Fujita for the work on tinyobjloader v1.0.x
Morgan McGuire's for the OBJ models on Computer Graphics Archive
Philip Rideout and Romain Guy general generosity to share their code and experience
Sergei B for adding support for Audio textures