Procedural pixel art #1
View fullpage shaderEditor
#define PI 3.1415926535
#define BPM 130.0
varying vec2 v_uv;
uniform float u_time;
uniform vec2 u_resolution;
uniform vec2 u_mousepos;
/// https://iquilezles.org/articles/distfunctions2d/
float sdEquilateralTriangle( in vec2 p, in float r )
{
const float k = sqrt(3.0);
p.x = abs(p.x) - r;
p.y = p.y + r/k;
if( p.x+k*p.y>0.0 ) p = vec2(p.x-k*p.y,-k*p.x-p.y)/2.0;
p.x -= clamp( p.x, -2.0*r, 0.0 );
return -length(p)*sign(p.y);
}
/// https://github.com/Erkaman/glsl-cos-palette
vec3 palette(float t)
{
vec3 a = vec3(0.65, 0.5, 0.31);
vec3 b = vec3(-0.65, 0.5, 0.6);
vec3 c = vec3(0.333, 0.278, 0.278);
vec3 d = vec3(0.6, 0.0, 0.67);
return a + b * cos((PI * 2.0) * (c * t + d));
}
/// https://en.wikipedia.org/wiki/Rotation_matrix
mat2 rotate2d(float p)
{
return mat2(
cos(p), -sin(p),