/glslViewer

Console-based GLSL Sandbox for 2D/3D shaders shaders

Primary LanguageCBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

glslViewer Build Status

Donate

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 (PLY, OBJ or GLTF) is provided.

GlslViewer gives support to:

  • fragment and vertex shaders on GLSL 120 (compatible with WebGL 1.0 and OpenGL ES 2.0)
  • resolve #include dependencies
  • adding/deleting #defines, plus a rich set of automatically generated set of defines.
  • adding/deleting uniforms (float, int, vec2, vec3 and vec4)
  • import of Textures
  • import of Cubemaps and spherical harmonics
  • import 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
  • headless rendering and image export
  • PNG sequence export

Wiki themes

Bugs to fix

[ ] Support for GL (Full KMS) or GL (Fake KMS) on RaspberryPi

[ ] 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

Author

Patricio Gonzalez Vivo: github | twitter | instagram | website

Acknowledgements

Thanks to: