feat(logo): scanline reveal CRT amb glitch, bursts VHS i pulse de banda

This commit is contained in:
JailDesigner committed 2026-05-07 13:52:57 +02:00
1 parent 243ced7498
commit e32cff9dac
9 files changed
+440 -20

No files matched your search

+37
View File
@@ -352,6 +352,43 @@ namespace Defaults {
constexpr float SPEED_HZ = 0.6F;
} // namespace HeatHaze
} // namespace Title
// Escena LOGO (logotip de l'editora). El revelat del logo a la
// fase SCAN imita un escaneig CRT amb una banda lluminosa que
// baixa de dalt a baix, glitch al voltant de la banda i bursts
// VHS ocasionals damunt la part ja revelada. Quan la banda toca
// el peu del logo, un flash blanc breu remata l'efecte i s'entra
// a MIDDLE (logo estable).
namespace Logo::Scan {
constexpr int DURATION_MS = 1500;
constexpr int BAND_HEIGHT_PX = 4;
constexpr int BAND_ALPHA = 200;
// Pulse de brillantor sinusoidal sobre l'alpha base de la
// banda — simula el ritme de refresc d'un CRT. La fase
// avança a `BAND_PULSE_HZ` cicles/segon i la profunditat
// marca quant cau l'alpha al ventre (0 = sense pulse,
// 1 = la banda arriba a alpha 0 als ventres). Valors per
// defecte: 20 Hz pulsacional ben visible a 60 fps sense
// aliasing dur, profunditat 0.45 (alpha oscil·la entre el
// 55% i el 100% de BAND_ALPHA).
constexpr float BAND_PULSE_HZ = 20.0F;
constexpr float BAND_PULSE_DEPTH = 0.45F;
// Glitch a la banda d'impacte: les files dins del radi
// reben un offset horitzontal aleatori d'amplitud
// decreixent amb la distància a la banda.
constexpr int GLITCH_AMPLITUDE_PX = 6;
constexpr int GLITCH_BAND_RADIUS_PX = 12;
// Bursts VHS damunt la part ja revelada: ocasionalment
// (~per_sec mitjà) una franja horitzontal es desplaça
// durant `duration_ms` per simular tracking error.
constexpr int VHS_BURST_PER_SEC = 3;
constexpr int VHS_BURST_DURATION_MS = 80;
constexpr int VHS_BURST_HEIGHT_PX = 8;
constexpr int VHS_BURST_AMPLITUDE_PX = 8;
// Flash blanc final quan la banda surt per sota — punt
// visual de tancament del scan abans d'entrar a MIDDLE.
constexpr int FLASH_MS = 100;
} // namespace Logo::Scan
} // namespace UI
#ifdef _DEBUG