openFrameworks addon for loading and displaying shaders from the Shadertoy page.
Shadertoy is (c) iq
This addon is distributed under the terms of the MIT License.
-
Set up your project to use the programmable shader. in the
int main(...)
function, set your window to use OpenGL 3.2 or greater:ofGLWindowSettings settings; settings.setGLVersion(3, 2); // <--- ofxShadertoy NEEDS the GL Programmable Renderer settings.width = 1024; settings.height = 768; ofCreateWindow(settings); // <-------- setup the GL context
-
Set up the ofxShadertoy to load a file with the shadertoy glsl code
ofxShadertoy shadertoy; ... shadertoy.load("shaders/raymarch.frag");
-
Set up textures if needed by the shader
shadertoy.setTexture(0, nifty_texture);
-
In your draw() routine, draw a quad (or use begin() and end() to set up the shaders for a mesh) Effects happen in screen space.
I've set up some extensions to the shader parameters, mostly relating to using a camera (for use, non-exclusively, with another one of my addons, ofxFPSControls). The new uniforms are:
uniform mat4 tCameraMatrix;
- a camera matrix that can be set up using ofCamera
or any child class (e.g. ofxFPSControls)