gitmyhub

SHADERed

C++ ★ 4.8k updated 2y ago

Lightweight, cross-platform & full-featured shader IDE

Desktop app for writing and debugging GLSL and HLSL shaders with a live preview, a pixel-level debugger that lets you step through shader code line by line, and a frame heatmap for spotting slow instructions.

C++GLSLHLSLCMakeOpenGLsetup: easycomplexity 3/5

SHADERed is a desktop application for writing and debugging shaders. A shader is a small program that runs on a graphics card rather than the main processor, and it controls how pixels, geometry, or visual effects look on screen. Game developers and graphics programmers write shaders to create things like lighting, water reflections, or particle effects. SHADERed gives them a dedicated tool for writing and testing that code, with a live preview that updates as you type.

The core feature is a shader debugger, which works similarly to how a debugger works for regular code. You pause the preview, click on a pixel you want to inspect, and then step through the shader code line by line to see what is happening. You can check the values of variables, set breakpoints that trigger only when a certain condition is met, and hover over expressions to see their current value. The frame analyzer goes a step further, letting you spot undefined behavior visually and see a heatmap of which instructions ran most often across the whole rendered frame.

Beyond standard pixel shaders, SHADERed supports compute shaders and geometry shaders. It can import 3D models, textures, audio files, and cubemaps. There is support for render textures, instancing, and a multi-camera system. Audio shaders, which generate sound on the graphics card rather than consuming it as input, are also listed as a feature. An autocompletion system in the editor is designed specifically for shader code.

The tool supports both GLSL and HLSL, the two most common shader languages, plus additional languages through a plugin system. Plugins are distributed through a dedicated store on the SHADERed website. Available plugins in the README include one for importing Shadertoy projects, one for capturing GIF animations, and one for writing shaders in the Rust language.

Precompiled binaries are available for Windows and Linux, with Windows also supported via the Scoop package manager and Linux via Flatpak. A web version is accessible through the official website. Building from source requires CMake and a few graphics libraries. macOS can be built from source but is not officially supported.

Where it fits