feat(lighting): mode additive amb color per emissor
This commit is contained in:
1 parent
24609d6c5c
commit
771ff1f6cd
10 files changed
+352
-71
No files matched your search
@@ -2,11 +2,15 @@
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
#include <array>
|
||||
#include <cstdint>
|
||||
#include <functional>
|
||||
#include <optional>
|
||||
#include <string>
|
||||
#include <utility>
|
||||
|
||||
#include "core/rendering/lighting.hpp"
|
||||
|
||||
// Mapa d'una piràmide: sala rectangular amb marcador superior, muros pels
|
||||
// quatre costats i graella de sarcòfags envoltada per un passadís a cada
|
||||
// cantó. La geometria (graella, pitch, amplada de murs) es carrega des del
|
||||
@@ -60,6 +64,13 @@ namespace Map {
|
||||
// al root es manté per compatibilitat enrere.
|
||||
inline float light_level = 1.0F;
|
||||
|
||||
// Mode de composició de la pasada d'il·luminació (subtractive per
|
||||
// defecte; additive si la sala declara `lighting.mode: additive`).
|
||||
// Veure el comentari de `core/rendering/lighting.hpp` per a la
|
||||
// semàntica de cada mode. En subtractive, els colors dels emissors
|
||||
// s'ignoren — el camí és el de sempre.
|
||||
inline Lighting::Mode lighting_mode = Lighting::Mode::Subtractive;
|
||||
|
||||
// Override d'emissor declarat al bloc opcional `lighting.emitters.<tipus>`
|
||||
// de la sala. Tres formes acceptades al YAML:
|
||||
// <tipus>: false → desactiva la llum per a tot el tipus
|
||||
@@ -80,6 +91,10 @@ namespace Map {
|
||||
bool enabled{true};
|
||||
std::optional<int> radius;
|
||||
std::optional<bool> flicker;
|
||||
// Color emès en mode additive. `nullopt` → conservar el color
|
||||
// del tipus (default blanc 255,255,255 si el tipus no en declara).
|
||||
// La forma YAML és `color: [r, g, b]` (bytes 0..255).
|
||||
std::optional<std::array<std::uint8_t, 3>> color;
|
||||
};
|
||||
|
||||
// Consulta l'override de sala per a un tipus d'entitat (clau singular,
|
||||
|
||||
Reference in new issue
Block a user