FreeVJ / Biblioteca de loops / Campo
Flujo de ruido
Humo y nebulosa lentos cuyo contraste sigue a la energía.
Código GLSL
// Domain-warped fbm smoke · nebula. The time offset circles once every 16 beats (seamless). Energy raises the contrast.
vec2 prim(vec2 uv) {
vec2 p = asp(uv) * uParams.x;
float t = uBeat * TAU / 16.0;
vec2 o = vec2(cos(t), sin(t)) * 0.8;
vec2 q = vec2(fbm(p + o), fbm(p + o.yx + 5.2));
float n = fbm(p + 1.7 * q + vec2(1.3, 9.2) + o * 0.5);
float l = smoothstep(0.25, 0.85 - 0.25 * uEnergy, n);
return vec2(l, l * uParams.y);
}
Una única función vec2 prim(vec2 uv) que usa el contrato de uniforms común (uBeat · uBass · uKick…). Solo devuelve luma y alfa.