a7aecbadd1
Renderiza la escena de líneas a una textura offscreen y aplica un pase
final de postpro que compone la imagen al swapchain. El shader del
postpro hace tres cosas:
- Bloom: kernel gaussiano 5×5 con high-pass por luminancia. Configurable
vía intensity, threshold y radius_px.
- Flicker: multiplicador global de brillo modulado por sin(time*freq).
Sustituye al antiguo ColorOscillator CPU; eliminados oscillator.{hpp,cpp}
y Defaults::Color. SDLManager::updateColors queda como no-op para no
tocar las escenas que lo invocaban.
- Background pulse: color de fondo aditivo entre color_min y color_max,
pulsando en el tiempo.
Parámetros expuestos en data/config/postfx.yaml y cargados con fkYAML.
Si el archivo falta o falla, se usan defaults built-in. UV.y invertida
en el vertex shader del postpro para compensar la convención de
muestreo de SDL_gpu/Vulkan (el line shader sigue con su ndc.y flip).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
35 lines
1.4 KiB
YAML
35 lines
1.4 KiB
YAML
# 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: desenfoque gaussiano de las regiones brillantes.
|
|
bloom:
|
|
enabled: true
|
|
intensity: 0.6 # 0..2 — cuanto del bloom se suma a la imagen
|
|
threshold: 0.30 # 0..1 — luminancia mínima que aporta al bloom
|
|
radius_px: 2.0 # radio del kernel en píxeles lógicos (1..8 razonable)
|
|
|
|
# Flicker: modulación global de brillo (efecto fósforo CRT).
|
|
# Sustituye a la antigua oscilación CPU del ColorOscillator.
|
|
flicker:
|
|
enabled: true
|
|
amplitude: 0.10 # 0..1 — profundidad del flicker
|
|
frequency_hz: 6.0 # Hz — velocidad de la pulsación
|
|
|
|
# Background pulse: color de fondo oscilante (suma aditiva).
|
|
# RGB en [0..255]; el shader normaliza a [0..1].
|
|
background:
|
|
enabled: true
|
|
color_min: [0, 5, 0] # negro casi puro
|
|
color_max: [0, 15, 0] # verde muy tenue
|
|
pulse_frequency_hz: 6.0 # Hz — sincronizado con flicker por defecto
|