11 entt::meta_factory<bloom_pass::settings>{}
12 .type(
"bloom_settings"_hs)
17 .data<&bloom_pass::settings::threshold>(
"threshold"_hs)
23 entt::attribute{
"tooltip",
"Minimum brightness (HDR luminance) for a pixel to contribute to bloom. Higher values restrict bloom to only the brightest highlights. 0 = all pixels bloom (not recommended). Typical range: 0.5 - 2.0."},
25 .data<&bloom_pass::settings::soft_knee>(
"soft_knee"_hs)
32 entt::attribute{
"tooltip",
"Controls the transition width around the threshold. 0 = hard cutoff (sharp bloom boundary, can cause flickering), 1 = maximum smoothing (gradual fade-in, reduces specular flicker). Keep at 1.0 unless you specifically want a harder cutoff."},
34 .data<&bloom_pass::settings::clamp>(
"clamp"_hs)
40 entt::attribute{
"tooltip",
"Soft compression limit for pixel brightness before bloom processing. Uses Reinhard-style compression to smoothly attenuate extreme values. Prevents firefly artifacts from very bright sub-pixel highlights (e.g. sun reflections, emissives). 0 = disabled. Typical range: 5 - 50."},
42 .data<&bloom_pass::settings::intensity>(
"intensity"_hs)
48 entt::attribute{
"tooltip",
"Global multiplier for the entire bloom effect. Scales all per-mip contributions uniformly. 0 = no bloom, 1 = standard, >1 = exaggerated glow. This is the main knob for overall bloom strength."},
50 .data<&bloom_pass::settings::mip_count>(
"mip_count"_hs)
56 entt::attribute{
"tooltip",
"Number of downsample levels in the bloom pyramid. More mips = wider bloom spread but more GPU cost. 5-7 is typical. Each additional mip doubles the maximum bloom radius."},
58 .data<&bloom_pass::settings::mip0_tint>(
"mip0_tint"_hs)
63 entt::attribute{
"tooltip",
"Tint and weight for the 1/2 resolution bloom layer (tightest halo). RGB controls color, Alpha controls contribution weight (0 = off, 1 = full). This is the sharpest, closest bloom around bright objects."},
65 .data<&bloom_pass::settings::mip1_tint>(
"mip1_tint"_hs)
70 entt::attribute{
"tooltip",
"Tint and weight for the 1/4 resolution bloom layer. RGB controls color, Alpha controls contribution weight. Produces a medium-tight bloom halo."},
72 .data<&bloom_pass::settings::mip2_tint>(
"mip2_tint"_hs)
77 entt::attribute{
"tooltip",
"Tint and weight for the 1/8 resolution bloom layer. RGB controls color, Alpha controls contribution weight. Mid-range bloom spread."},
79 .data<&bloom_pass::settings::mip3_tint>(
"mip3_tint"_hs)
84 entt::attribute{
"tooltip",
"Tint and weight for the 1/16 resolution bloom layer. RGB controls color, Alpha controls contribution weight. Wide soft glow."},
86 .data<&bloom_pass::settings::mip4_tint>(
"mip4_tint"_hs)
91 entt::attribute{
"tooltip",
"Tint and weight for the 1/32 resolution bloom layer. RGB controls color, Alpha controls contribution weight. Very wide atmospheric glow."},
93 .data<&bloom_pass::settings::mip5_tint>(
"mip5_tint"_hs)
98 entt::attribute{
"tooltip",
"Tint and weight for the 1/64 resolution bloom layer (widest bloom). RGB controls color, Alpha controls contribution weight. Controls the large-scale ambient glow that fills the screen. Reduce alpha to tighten bloom, increase for a dreamy look."},
100 .data<&bloom_pass::settings::dirt_intensity>(
"dirt_intensity"_hs)
106 entt::attribute{
"tooltip",
"Strength of the lens dirt mask effect. Modulates bloom through a screen-space dirt texture to simulate smudges and scratches on the camera lens. 0 = disabled. Requires a dirt mask texture to be assigned (future feature)."},