57 lines
2.7 KiB
YAML
57 lines
2.7 KiB
YAML
# Configuració global del sistema d'il·luminació.
|
|
#
|
|
# Cada llum emissora (player, torxa, mòmia, ...) té un únic paràmetre
|
|
# propi: el radi en píxels. La forma de la llum dins d'aquest radi
|
|
# (els tres anells del gradient) viu en aquest fitxer perquè és una
|
|
# decisió de "feel" comuna a totes les entitats — així pots tocar la
|
|
# corba aquí sense haver de modificar 10 YAMLs.
|
|
#
|
|
# Forma del gradient (centre → vora):
|
|
# 0..inner_ratio del radi → inner_intensity (zona totalment il·luminada)
|
|
# inner_ratio..mid_ratio → mid_intensity (anell mig)
|
|
# mid_ratio..1.0 → outer_intensity (anell exterior)
|
|
# fora del radi → light_level de la sala
|
|
#
|
|
# Hi ha dues corbes paral·leles, una per mode, perquè la mateixa escala
|
|
# 0..1 vol dir coses molt diferents:
|
|
# `gradient` → subtractive: 1.0 = "no fosqueix" el píxel
|
|
# (l'emissor "trenca" una sala fosca).
|
|
# `gradient_additive` → additive: 1.0 = "afegeix el color sencer"
|
|
# (satura). Valors molt més baixos donen un
|
|
# halo cromàtic subtil sobre una sala normal.
|
|
gradient:
|
|
inner_ratio: 0.5
|
|
mid_ratio: 0.85
|
|
inner_intensity: 1.0
|
|
mid_intensity: 0.8
|
|
outer_intensity: 0.6
|
|
|
|
# Corba del mode additive. Valors petits a propòsit: només volem un
|
|
# toc de tint cromàtic prop de l'emissor — fora del nucli, la sala
|
|
# original ha de quedar pràcticament intacta. Si pugeu massa l'inner,
|
|
# els colors de l'emissor "inunden" la sala (additiu satura ràpid).
|
|
gradient_additive:
|
|
inner_ratio: 0.5
|
|
mid_ratio: 0.85
|
|
inner_intensity: 0.15
|
|
mid_intensity: 0.10
|
|
outer_intensity: 0.05
|
|
|
|
# Modulació del radi quan una entitat declara `flicker: true` al seu
|
|
# bloc `light:`. El radi efectiu per frame és:
|
|
# r_eff = r_base + (r_amp1·r_base)·sin(2π·f1·t + φ1) + (r_amp2·r_base)·sin(2π·f2·t + φ2)
|
|
# on (φ1, φ2) es deriven de la seed de l'emissor per a que cada
|
|
# antorxa balancegi en una fase diferent (sense estat per emissor).
|
|
# Les amplituds són **ràtios** sobre el radi base: així el feel del
|
|
# flicker és independent del radi (una torxa de 24 px oscil·la el
|
|
# mateix % que una de 40 px). Combinant dues sinusoides amb freqüències
|
|
# incommensurables s'obté un patró "fluid" que el ull llegeix com a
|
|
# foc; pujar `noise_*` aporta més inquietud, baixar-ho fa la flama
|
|
# més serena. Aquests són els defaults globals; cada tipus d'entitat
|
|
# (o cada spawn / sala) pot sobreescriure'ls al seu `light.flicker_params:`.
|
|
flicker:
|
|
wave_amplitude_ratio: 0.05 # 5% del radi (per a radi 40 → ±2 px, feel actual)
|
|
wave_frequency_hz: 3.0
|
|
noise_amplitude_ratio: 0.025 # 2.5% (per a radi 40 → ±1 px, feel actual)
|
|
noise_frequency_hz: 7.0
|