feat(lighting): flicker tipus foc per antorxes
This commit is contained in:
1 parent
3195746189
commit
35aaa6c519
8 files changed
+124
-16
No files matched your search
@@ -27,10 +27,15 @@ namespace Lighting {
|
||||
// Posició al canvas (en píxels, mateixa unitat que la resta del
|
||||
// motor) i radi efectiu de l'emissor. El centre és el del sprite
|
||||
// visible: és l'entitat qui sap on cau (veure `Entity::getLightCenter`).
|
||||
// `flicker` activa la modulació del radi per frame (només antorxes
|
||||
// avui): el radi base es queda al YAML, l'oscil·lació en viu surt
|
||||
// dels paràmetres globals i de la posició per generar fases
|
||||
// distintes a cada emissor.
|
||||
struct Emitter {
|
||||
float cx{0.0F};
|
||||
float cy{0.0F};
|
||||
int radius{0};
|
||||
bool flicker{false};
|
||||
};
|
||||
|
||||
// Forma del gradient. Compartida per tots els emissors per evitar
|
||||
@@ -43,6 +48,18 @@ namespace Lighting {
|
||||
float outer_intensity{0.8F};
|
||||
};
|
||||
|
||||
// Paràmetres del flicker per a emissors amb `flicker=true`. La
|
||||
// forma final del radi és la suma d'una sinusoide "respiració"
|
||||
// (wave_*) i una sinusoide secundària de freqüència més alta
|
||||
// (noise_*) que aporta la sensació d'inquietud. Les fases es
|
||||
// deriven de la posició de cada emissor — sense estat per emissor.
|
||||
struct FlickerConfig {
|
||||
float wave_amplitude_px{2.0F};
|
||||
float wave_frequency_hz{3.0F};
|
||||
float noise_amplitude_px{1.0F};
|
||||
float noise_frequency_hz{7.0F};
|
||||
};
|
||||
|
||||
// Llegeix `yaml_path` (data/config/lighting.yaml) i pobla la
|
||||
// configuració global. Qualsevol clau absent cau als Defaults::Lighting.
|
||||
// No es crida més d'una vegada en un run normal; tornar-la a cridar
|
||||
|
||||
Reference in new issue
Block a user