Files
vibe3_physics/source
Sergio Valor 0592699a0b PHASE 3: LERP universal entre cualquier par de temas implementado
Sistema de transiciones suaves (0.5s) entre temas:
- Funciona entre CUALQUIER combinación (estático↔estático, estático↔dinámico, dinámico↔dinámico)
- Sistema de snapshots: Captura estado del tema origen antes de cambiar
- LERP durante transición: snapshot → tema destino (colors, background, text)
- Duración configurable: THEME_TRANSITION_DURATION = 0.5s (defines.h)

Nuevo archivo:
- source/themes/theme_snapshot.h: Estructura para capturar estado de tema

Implementación:
- captureCurrentSnapshot(): Captura 50,000 colores de pelotas + fondo + texto
- switchToTheme(): Captura snapshot y configura transición LERP
- update(): Avanza transition_progress (0.0→1.0) y libera snapshot al completar
- getInterpolatedColor(): LERP entre snapshot y tema destino si transitioning
- getBackgroundColors(): LERP de colores de fondo (top/bottom degradado)
- getCurrentThemeTextColor(): LERP de color de texto UI

Características:
 Transiciones suaves en Numpad 1-0 (cambio directo de tema)
 Transiciones suaves en Tecla B (cycling entre todos los temas)
 Transiciones suaves en DEMO mode (tema aleatorio cada 8-12s)
 Temas dinámicos siguen animándose durante transición (morph animado)
 Memoria eficiente: snapshot existe solo durante 0.5s, luego se libera

Mejoras visuales:
- Cambios de tema ya no son instantáneos/abruptos
- Morphing suave de colores de pelotas (cada pelota hace LERP individual)
- Fade suave de fondo degradado (top y bottom independientes)
- Transición de color de texto UI

Performance:
- Snapshot capture: ~0.05ms (solo al cambiar tema)
- LERP per frame: ~0.01ms adicional durante 0.5s
- Impacto: Imperceptible (<1% CPU adicional)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-09 13:30:34 +02:00
..