Ryan GattisGraphics & Systems Engineer
← Projects

Shader Viewer 4

OpenGL fragment shader viewer with a physics-based camera and hot reload.

  • C++
  • OpenGL
  • GLSL
  • SDL2
  • GLEW
  • GLM
  • Dear ImGui
Raymarched scene rendered in the OpenGL shader viewer
Raymarched scene rendered in the OpenGL shader viewer
Camera modes
Orbit + free-look
Reload
Hot, from disk

An interactive GLSL fragment shader viewer, written entirely by hand, and the direct predecessor to the Vulkan port — where the same problem was solved again with the implementation AI-generated.

Any fragment shader renders onto a full-screen quad at interactive frame rates, with hot reload from disk so iteration doesn’t require a restart. Orbit and free-look camera modes are active simultaneously, with velocity and friction giving movement a physical feel and speed scaling with zoom level so the controls stay proportional at any scale.

Shader compile and link errors are logged and fall back to a blank screen rather than taking the application down — a small decision that makes the tool usable while actively writing broken shaders, which is most of the time.

A Dear ImGui overlay exposes camera position, rotation, pivot distance, and the full view matrix. High-DPI rendering is on by default.