feat(render): halo neon proporcional al bounding_radius de la shape (opt-out a text)
This commit is contained in:
@@ -5,6 +5,32 @@
|
||||
|
||||
#include <SDL3/SDL.h>
|
||||
|
||||
namespace Defaults::FX::Glow {
|
||||
|
||||
// Neon glow per outline gruixut, aplicat automàticament per renderShape.
|
||||
// Els gruixos d'halo són RÀTIOS del bounding_radius de la shape (escalat
|
||||
// per scale), de manera que un pentàgon (radi 20) té halo gros i una bala
|
||||
// (radi 3) té halo subtil. El core (últim pass) usa el gruix de línia
|
||||
// global (1.5px) — no escala amb la shape.
|
||||
//
|
||||
// Cap superior: si la shape és molt gran (logos del títol, intro), el
|
||||
// bounding_radius es satura a aquest valor — així cap shape té més
|
||||
// glow que el pentàgon (referència de gameplay).
|
||||
constexpr float MAX_REFERENCE_RADIUS = 20.0F;
|
||||
|
||||
struct Pass {
|
||||
float thickness_ratio; // % del bounding_radius*scale. <0 → usa core (gruix global)
|
||||
float alpha;
|
||||
};
|
||||
constexpr Pass PASSES[] = {
|
||||
{.thickness_ratio = 0.55F, .alpha = 0.07F},
|
||||
{.thickness_ratio = 0.35F, .alpha = 0.14F},
|
||||
{.thickness_ratio = 0.20F, .alpha = 0.28F},
|
||||
{.thickness_ratio = -1.0F, .alpha = 1.0F}, // core: línia "real"
|
||||
};
|
||||
|
||||
} // namespace Defaults::FX::Glow
|
||||
|
||||
namespace Defaults::FX::Firework {
|
||||
|
||||
// Color per defecte. La caller pot fer override (p.ex. heretar del pare),
|
||||
|
||||
Reference in New Issue
Block a user