14 entt::meta_factory<taa_jitter_mode>{}
15 .type(
"taa_jitter_mode"_hs)
20 .data<taa_jitter_mode::progressive_golden>(
"progressive_golden"_hs)
25 .data<taa_jitter_mode::halton_2_3>(
"halton_2_3"_hs)
30 .data<taa_jitter_mode::r2_low_discrepancy>(
"r2_low_discrepancy"_hs)
35 .data<taa_jitter_mode::msaa_2_rotating>(
"msaa_2_rotating"_hs)
40 .data<taa_jitter_mode::msaa_3_rotating>(
"msaa_3_rotating"_hs)
45 .data<taa_jitter_mode::msaa_4_rotating>(
"msaa_4_rotating"_hs)
54 entt::meta_factory<taa_pass::settings>{}
55 .type(
"taa_settings"_hs)
60 .data<&taa_pass::settings::temporal_sample_count>(
"temporal_sample_count"_hs)
66 entt::attribute{
"tooltip",
"When >1, enables subpixel jitter (full render frame index). Stored count is for UI / future tuning."},
68 .data<&taa_pass::settings::jitter_mode>(
"jitter_mode"_hs)
72 entt::attribute{
"tooltip",
"Which subpixel pattern the camera uses for TAA each frame."},
74 .data<&taa_pass::settings::jitter_amplitude>(
"jitter_amplitude"_hs)
81 entt::attribute{
"tooltip",
"Scales subpixel camera jitter; lower reduces whole-screen shake (1 = strongest)."},
83 .data<&taa_pass::settings::jitter_temporal_phase_scale>(
"jitter_temporal_phase_scale"_hs)
90 entt::attribute{
"tooltip",
"Golden/Halton/R2 only: lower = smaller per-frame jitter steps, easier history tracking (1 = legacy speed)."},
92 .data<&taa_pass::settings::history_blend>(
"history_blend"_hs)
99 entt::attribute{
"tooltip",
"Blend toward reprojected history when valid (higher = more stable, more blur)."},
101 .data<&taa_pass::settings::sharpen>(
"sharpen"_hs)
108 entt::attribute{
"tooltip",
"Unsharp response vs current neighborhood (0 = off)."},
110 .data<&taa_pass::settings::depth_reject_scale>(
"depth_reject_scale"_hs)
117 entt::attribute{
"tooltip",
"Scales depth disocclusion rejection (higher = stricter)."},
119 .data<&taa_pass::settings::variance_clip_scale>(
"variance_clip_scale"_hs)
126 entt::attribute{
"tooltip",
"RGB variance clip width in std-devs (wider = less ghosting, slightly softer)."},
132 try_save(ar, ser20::make_nvp(
"temporal_sample_count", obj.temporal_sample_count));
133 try_save(ar, ser20::make_nvp(
"jitter_mode", obj.jitter_mode));
134 try_save(ar, ser20::make_nvp(
"jitter_amplitude", obj.jitter_amplitude));
135 try_save(ar, ser20::make_nvp(
"jitter_temporal_phase_scale", obj.jitter_temporal_phase_scale));
136 try_save(ar, ser20::make_nvp(
"history_blend", obj.history_blend));
137 try_save(ar, ser20::make_nvp(
"sharpen", obj.sharpen));
138 try_save(ar, ser20::make_nvp(
"depth_reject_scale", obj.depth_reject_scale));
139 try_save(ar, ser20::make_nvp(
"variance_clip_scale", obj.variance_clip_scale));
146 try_load(ar, ser20::make_nvp(
"temporal_sample_count", obj.temporal_sample_count));
147 try_load(ar, ser20::make_nvp(
"jitter_mode", obj.jitter_mode));
148 try_load(ar, ser20::make_nvp(
"jitter_amplitude", obj.jitter_amplitude));
149 try_load(ar, ser20::make_nvp(
"jitter_temporal_phase_scale", obj.jitter_temporal_phase_scale));
150 try_load(ar, ser20::make_nvp(
"history_blend", obj.history_blend));
151 try_load(ar, ser20::make_nvp(
"sharpen", obj.sharpen));
152 try_load(ar, ser20::make_nvp(
"depth_reject_scale", obj.depth_reject_scale));
153 try_load(ar, ser20::make_nvp(
"variance_clip_scale", obj.variance_clip_scale));
160 entt::meta_factory<taa_component>{}
161 .type(
"taa_component"_hs)
176 entt::attribute{
"tooltip",
"HDR temporal anti-aliasing (before tonemap); disables FXAA when on"},
178 .data<&taa_component::settings>(
"settings"_hs)
188 try_save(ar, ser20::make_nvp(
"enabled", obj.enabled));
189 try_save(ar, ser20::make_nvp(
"settings", obj.settings));
196 try_load(ar, ser20::make_nvp(
"enabled", obj.enabled));
197 try_load(ar, ser20::make_nvp(
"settings", obj.settings));
198 try_load(ar, ser20::make_nvp(
"temporal_sample_count", obj.settings.temporal_sample_count));
199 try_load(ar, ser20::make_nvp(
"history_blend", obj.settings.history_blend));
200 try_load(ar, ser20::make_nvp(
"sharpen", obj.settings.sharpen));
201 try_load(ar, ser20::make_nvp(
"depth_reject_scale", obj.settings.depth_reject_scale));
202 try_load(ar, ser20::make_nvp(
"variance_clip_scale", obj.settings.variance_clip_scale));
203 try_load(ar, ser20::make_nvp(
"jitter_mode", obj.settings.jitter_mode));
204 try_load(ar, ser20::make_nvp(
"jitter_amplitude", obj.settings.jitter_amplitude));
205 try_load(ar, ser20::make_nvp(
"jitter_temporal_phase_scale", obj.settings.jitter_temporal_phase_scale));
Temporal anti-aliasing (HDR, before tonemap). Mutually exclusive with FXAA when enabled.
attributes::value_type attribute
std::map< std::string, meta_any > attributes
BinaryInputArchive iarchive_binary_t
simd::JSONOutputArchive oarchive_associative_t
BinaryOutputArchive oarchive_binary_t
simd::JSONInputArchive iarchive_associative_t
taa_jitter_mode
Subpixel jitter sequence for temporal AA (see camera::set_aa_data).
#define REFLECT_INLINE(cls)
#define SAVE_INSTANTIATE(cls, Archive)
auto try_save(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool
#define LOAD_INSTANTIATE(cls, Archive)
auto try_load(Archive &ar, ser20::NameValuePair< T > &&t, const hpp::source_location &loc=hpp::source_location::current()) -> bool