Last active
July 30, 2022 20:28
-
-
Save CharStiles/c49fd09c26d6c0c22cc79dd440c7df3d to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
void main() { | |
vec2 pos = ((gl_FragCoord.xy/resolution) - 0.5)*2.0; // origin is in center | |
// who remembers SOH CAH TOA ? | |
// tan, given an angle will return the ratio | |
// so if we only have the ratio of position | |
// we use atan to get the angle | |
float angle = atan(pos.y,pos.x); | |
float r = sin(angle + time); | |
// sin returns a number from -1 to 1, and colors are from 0 to 1, so thats | |
// why you only see red on the screen half the time. the angle goes around | |
// the screen, adding time moves it clockwise | |
float g = cos(length(pos*10.)-time); | |
// the distance (aka length) from the center put in a cos, subtracting | |
// time moves the circles out. | |
float b = cos(angle+ cos(length(pos*15.)) + time); | |
// this combines what we learned in the red and green channels | |
// angle is going through a cos and so is the length, so we see the | |
// blue channel oscillating in both dimensions the polar coordinates give us | |
vec4 color = vec4(r,g,b,1); | |
gl_FragColor = color; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment