FOSFENO/docs/mapping.md
hacklab 5d5223db9f Docs del mapping (Fase 1+2) + gitignore de runtime
- docs/mapping.md: guia del projection mapping (activar, superficies con malla
  para curvar, mascaras, editar arrastrando desde el panel, dónde se guarda,
  limitaciones). Enlazada desde docs/README.md y el README principal.
- .gitignore: ignora data/pm-fijado/ (runtime de projectM).

El mapper funcional (esquinas + malla + mascaras, para Butterchurn/Hydra/
Shaders/Mezclador) ya estaba en main (Fase 1 y 2). La via de captura para
projectM nativo se retira por ahora; se retoma mas adelante.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-27 01:16:37 +02:00

77 lines
3.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.