Capas independientes, projectM en el mapping y catalogo de la galeria

Mapping
- Los clips salian del reves: mapper.js activaba UNPACK_FLIP_Y_WEBGL, pero el
  modelo va con origen arriba-izquierda y texImage2D ya sube la primera fila
  en t=0, asi que el flip la mandaba al final. Comprobado renderizando el
  mapper real en Chromium headless con una fuente mitad roja / mitad azul.
- projectM se puede usar YA en una capa: los .milk de data/presets-projectm se
  traducen a Butterchurn en el navegador al elegirlos (milkdrop-preset-
  converter). La capa MilkDrop gana 'biblioteca' (butter | projectm) sin
  cambiar su firma, para no recrear el contexto WebGL al cambiar de una a otra.
  Medido: 100/100 presets de una muestra convierten, 84/84 de los que llevan
  shaders warp/comp; ~7 ms por preset.
- Cada capa tiene su pestana arriba y su propia vista, y '+ CAPA' crea una y
  entra en ella: con varias capas, ir y volver a MAPPING no era viable.
- Dos capas MilkDrop sin preset ya no salen identicas (cogian el indice 0):
  cada instancia elige uno al azar y lo escribe en el estado.
- Una capa nueva ya no nace en la fuente "motor", que es el lienzo del motor
  activo y hacia que dos capas ensenaran lo mismo.

Galeria de visuales
- scripts/catalogar-visuales.py: ficha de cada clip (pelicula, personajes,
  duracion) y, sobre todo, si es una silueta de verdad y cuanta figura tiene.
  Distingue silueta de corte crudo por el negro puro del fondo: 0,63-0,90
  frente a 0,04-0,06, sin zona gris.
- El panel lista los clips agrupados por pelicula, con nombre legible y aviso
  de los que casi no tienen figura, en vez del nombre del archivo.
- Soporte de siluetas con canal alfa (.webm VP9): transparencia de verdad, sin
  recorte por luminancia. El shader del mapper ya la respeta.

Documentacion
- docs/visuales.md nuevo; pendiente.md al dia con lo hecho y lo que queda.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
hacklab 2026-08-02 14:56:01 +02:00
parent 5d5223db9f
commit f017246f0e
30 changed files with 3771 additions and 292 deletions

View file

@ -18,6 +18,25 @@ conectado con la Raspberry. Rojo quiere decir que se ha perdido la conexión.
![Panel de control de FOSFENO](assets/panel.png)
## Las dos pestañas: MOTORES y MAPPING
A la derecha del título **FOSFENO** hay dos pestañas. Separan las dos cosas que
se hacen con el panel, que no tienen nada que ver entre sí:
- **MOTORES** — el directo. Encendido, audio, sensibilidad, el motor de
visuales y sus controles. Es la pestaña de siempre y la que está abierta al
arrancar.
- **MAPPING** — el montaje. Encajar la imagen sobre la superficie física:
superficies, malla y máscaras, con una previsualización grande para arrastrar
los puntos.
Lo normal es pasar por MAPPING una vez al montar y quedarse en MOTORES el resto
de la noche. Si el mapping está activado, aparece un **punto verde** en su
pestaña, para que se sepa que la salida se está deformando aunque estés mirando
MOTORES.
El panel recuerda en qué pestaña lo dejaste.
## Avisos y errores
Justo debajo de la cabecera aparecen los avisos. Si algo va mal (la cámara no
@ -56,9 +75,10 @@ librería de fragmentos listos para usar; eliges uno y se carga en el editor.
de código. Los shaders reciben información del audio y del ritmo, así que se
mueven con la música.
**Mezclador.** El modo de vídeo. Mezcla la imagen de una webcam USB con clips
de vídeo y efectos de color. Es lo más parecido a un programa de VJ como
Resolume, pero funcionando dentro de la Raspberry.
**Mezclador.** El modo de vídeo. Monta dos capas —un fondo (la webcam o las
propias visuales de MilkDrop) y un clip encima— y las combina con efectos de
color. Es lo más parecido a un programa de VJ como Resolume, pero funcionando
dentro de la Raspberry.
## Audio y BPM
@ -92,15 +112,23 @@ código es GLSL y tienes los uniforms `u_time`, `u_bass`, `u_mid`, `u_treble`,
## El modo Mezclador
Primero copia tus clips de vídeo en la carpeta `data/videos` del proyecto.
Aparecen solos en el desplegable de vídeo del panel. Para que vayan finos en
la Raspberry conviene que sean clips cortos, en 720p o menos y en H.264.
El mezclador monta **dos capas**: un **fondo** (la cámara web, o las visuales
Butter/MilkDrop) y un **clip** encima (un vídeo o una imagen de la galería). La
tarjeta del panel va numerada en ese orden: qué se ve, el fondo, el clip y cómo
se juntan. Debajo hay una línea de resumen que dice, en una frase, lo que va a
salir por el proyector.
En el panel eliges la fuente: solo la cámara, solo el vídeo, o la mezcla de
las dos. Debajo tienes el modo de mezcla y una fila de controles de color:
tono, saturación, contraste, brillo, colorama, posterizado, pixelado,
caleidoscopio, rotación y feedback. La casilla de pulso al ritmo hace que la
imagen lata con los graves.
Para **poner visuales de fondo**, en el paso 2 cambia el desplegable de *Cámara*
a **Visuales Butter (MilkDrop)**: la cámara se apaga y su sitio lo ocupan las
visuales, con su propio selector de preset ahí mismo. Combinado con un clip de
silueta y el modo *Recorte*, el personaje queda delante de MilkDrop.
Los clips se copian a `data/videos` o se suben desde el propio panel con el
botón *Subir vídeo o imagen*. Para que vayan finos en la Raspberry conviene que
sean cortos, en 720p o menos y en H.264.
La guía completa, con los modos de mezcla, los efectos de color y las recetas:
[El Mezclador VJ](mezclador.md).
## Apagar y reiniciar