# Projection mapping FOSFENO puede **deformar las visuales** para encajarlas en superficies físicas (una pared en ángulo, cajas, un objeto, varias zonas de una fachada) en vez de proyectar un simple rectángulo. Todo se hace **desde el panel**, arrastrando con el ratón o el dedo, y se **guarda solo**. Se aplica a los motores que corren en el navegador: **Butterchurn, Hydra, Shaders y Mezclador**. (projectM nativo aún no; ver [Limitaciones](#limitaciones).) ## En 4 pasos 1. Elige un motor que **no** sea projectM (Butterchurn, Hydra, Shaders o Mezcla). 2. En el panel, sección **Mapping**, marca **Activar mapping**. 3. Pulsa **+ Superficie**. Aparece un recuadro con las visuales en la previsualización del panel (y en el proyector). 4. En la **previsualización** del panel, **arrastra los puntos** para encajar la forma sobre tu superficie real. Se ve en el proyector al instante. ## La sección Mapping del panel - **Activar mapping** — enciende/apaga la deformación. - **Modo edición** — muestra u oculta los tiradores en la **ventana de las visuales** (por si prefieres ajustar ahí con un ratón). Para el uso normal no hace falta: con la previsualización del panel basta. - **+ Superficie** — añade una superficie nueva (un cuadrilátero). - **+ Máscara** — añade una **máscara**: un recuadro **negro** que tapa una zona (útil para recortar el derrame de luz fuera de la superficie física). - **Reset** — borra todas las superficies y máscaras. - **Previsualización** — el recuadro donde arrastras los puntos (ratón o dedo). Muestra una rejilla dentro de cada superficie para que veas cómo se deforma. - **Lista** — cada superficie y máscara con su tamaño de malla y un botón **✕** para borrarla. ## Superficies con malla (curvar) Una superficie nueva es un cuadrilátero de 4 esquinas (corrección de perspectiva / *keystone*). Para superficies **curvas**: 1. Selecciona la superficie (toca dentro de ella en la previsualización). 2. Aparece **− malla / + malla**: cada **+ malla** la subdivide (2×2, 3×3… hasta 6×6). 3. Ahora puedes arrastrar **cualquier punto** de la rejilla (no solo las esquinas) para curvarla y adaptarla a superficies no planas. Puedes crear **varias superficies** y mapear la misma imagen en distintas zonas. ## Máscaras Una máscara es un cuadrilátero **negro** que se pinta encima de todo. Sirve para **tapar** lo que no quieres que se vea (bordes, derrames de luz, huecos entre superficies). Añádelas con **+ Máscara** y arrastra sus esquinas igual que una superficie. ## Dónde se guarda La configuración se guarda sola en `data/mapping.json` y se mantiene al reiniciar. Es **por instalación** (no se sube al repositorio). Para empezar de cero, usa **Reset** o borra ese archivo. ## Editar en la ventana de las visuales (opcional) Con **Modo edición** activo, los tiradores también aparecen sobre las propias visuales. Ahí, además, funcionan atajos de teclado: - **doble clic** en un hueco: crea una superficie nueva. - **+ / −**: subdivide/reduce la malla de la superficie seleccionada. - **Supr**: borra la superficie o máscara seleccionada. ## Limitaciones - **projectM nativo no se mapea todavía.** projectM corre en su propia ventana fuera del navegador, así que el mapper (que trabaja sobre las visuales web) no lo alcanza. Para mapear el mismo tipo de gráficos, usa **Butterchurn** (MilkDrop en el navegador). El soporte de projectM está en estudio. - El mapping es una capa de deformación sobre la imagen final; no cambia el contenido de cada motor.