# postfx.yaml - Parámetros del shader de postprocesado
#
# Este archivo configura el pase final del renderer (bloom + flicker +
# background pulse). Se carga al iniciar el juego desde resources.pack.
# Si falta o tiene errores, se usan los valores por defecto de
# Defaults::PostFx (defaults.hpp).
#
# Tip de tuning:
#   - Para más "neón vector", sube bloom.intensity y bloom.radius_px.
#   - Para más "CRT viejo", sube flicker.amplitude (riesgo de mareo si >0.3).
#   - Background es muy sutil; pasa los componentes G a 0.15-0.20 para
#     un fondo verde-tenue más marcado.

# Bloom / glow: separable gaussian blur de dues passes (H + V).
# Equivalent matemàtic d'un kernel 15×15 dens (225 mostres) però només cosTa
# 30 mostres per píxel. Sense moiré: sigma_px controla l'amplada del halo.
bloom:
  enabled: true
  intensity: 1.8        # 0..2 — cuanto del bloom se suma a la imagen
  threshold: 0.20       # 0..1 — luminància mínima que aporta al bloom
  sigma_px: 5.0         # sigma de la gaussiana en texels (~1.5..6 raonable;
                        # halo ≈ 3·sigma a cada banda. 3.5 → halo de ~10 px)

# Flicker: modulación global de brillo (efecto fósforo CRT).
# Sustituye a la antigua oscilación CPU del ColorOscillator.
# Solo afecta a `(lines + bloom)` en el shader; NO toca el fondo, así que
# los píxeles negros siguen siendo negros (no pulsan).
flicker:
  enabled: true
  amplitude: 0.18       # 0..1 — profundidad del flicker
  frequency_hz: 6.0     # Hz — velocidad de la pulsación

# Background pulse: color de fondo oscilante (suma aditiva).
# Desactivado: fondo negro puro. Se mantienen los valores por si queremos
# reactivar más adelante un tinte verdoso muy tenue al estilo CRT.
background:
  enabled: false
  color_min: [0, 0, 0]      # negro puro
  color_max: [0, 0, 0]      # negro puro
  pulse_frequency_hz: 6.0   # Hz — sincronizado con flicker por defecto
