FreeVJ / Библиотека лупов / Силуэт
Лазерный веер
Веер сценических лазеров снизу, бьющий на бочке.
Исходник GLSL
// A laser fan from the bottom centre of the stage. Sweeps left and right once every 8 beats and thickens on each kick.
vec2 prim(vec2 uv) {
vec2 p = vec2((uv.x - 0.5) * uResolution.x / uResolution.y, uv.y);
float beams = floor(uParams.x);
float sweep = sin(uBeat * TAU / 8.0) * uParams.y;
float ang = atan(p.x, p.y);
float dist = length(p);
float l = 0.0;
for (int i = 0; i < 24; i++) {
if (float(i) >= beams) break;
float g = (float(i) - (beams - 1.0) * 0.5) * 0.13 + sweep;
float w = 0.0025 + uKick * 0.006;
l += smoothstep(w, 0.0, abs(ang - g) * dist);
}
l = min(l, 1.0) * smoothstep(0.0, 0.08, dist);
return vec2(l, l);
}
Одна функция vec2 prim(vec2 uv) с общим контрактом uniform (uBeat · uBass · uKick …). Выводит только luma и alpha.
Похожие лупы
Осколки калейдоскопа
Узор · Вращающиеся двенадцатилучевые осколки, удлиняющиеся на басу.
Кольца тоннеля
Узор · Кольца, летящие в точку схода и утолщающиеся на каждом бочке.
Полосы спектра
Узор · Эквалайзер: басы слева, середина в центре, верха справа.
Ячейки Вороного
Узор · Живые стенки клеток, дрейфующие и утолщающиеся на средних частотах.
Ретро-сетка
Узор · Синтвейв-сетка пола, приближающаяся на ряд за долю.
Центральный пульс
Силуэт · Два центральных кольца, бьющие наружу на каждом бочке.