|
|
|
|
|
by greggman
4349 days ago
|
|
Basically you draw a single quad (2 triangles) covering the entire screen using OpenGL (or DirectX). A Pixel shader is run when rendering each pixel of the quad. It's only input is often `time` and `resolution`. At least in GLSL there's a global variable, `gl_Fragcoord` and provides the integer position of the pixel currently being drawn. So for example the pixel at the bottom left is gl_Fragcoord = vec2(0,0). The one directly to the right of that is gl_Fragcoord = vec2(0,1) Given you're also passed the resolution can get a value that goes from 0 to 1 over the screen with vec2 zeroToOne = gl_Fragcoord.xy / resolution;
If you were to dump that value directly do the screen you'd get a red gradient going black to red from left to right and a green gradient from black to green going from bottom to top. See http://glsl.heroku.com/e#18516.0Now it's up to you to use more creative math that given just gl_Fragcoord, resolution, and time write a function that generates an image. You can play with that in your browser here, http://glsl.heroku.com and here http://shadertoy.com |
|