레트로 그리드
비트마다 한 칸씩 다가오는 신스웨이브 바닥 그리드.
GLSL 소스
// Perspective grid approaching under the horizon (synthwave). Horizontal lines advance one row per beat — seamless over 4 beats.
vec2 prim(vec2 uv) {
float hz = uParams.y;
if (uv.y > hz) return vec2(0.0);
float z = 1.0 / max(hz - uv.y, 0.002);
float rr = fract(z * 0.12 + uBeat);
float xx = (uv.x - 0.5) * uResolution.x / uResolution.y * z * 0.25 * uParams.x / 8.0;
float rc = fract(xx);
float w = 0.05 + uBass * 0.08;
float rowLine = 1.0 - smoothstep(0.0, w, min(rr, 1.0 - rr));
float colLine = 1.0 - smoothstep(0.0, w * 0.8, min(rc, 1.0 - rc));
float l = max(rowLine, colLine) * (0.15 + 0.85 * smoothstep(0.0, 0.35, hz - uv.y));
return vec2(l, l);
}
공통 유니폼 계약(uBeat · uBass · uKick …)을 받는 vec2 prim(vec2 uv) 하나입니다. 출력은 luma 와 alpha 뿐입니다.