14 [](
const entt::meta_any& obj)
16 auto data = obj.try_cast<
light>();
24 [](
const entt::meta_any& obj)
26 auto data = obj.try_cast<
light>();
34 [](
const entt::meta_any& obj)
36 auto data = obj.try_cast<
light>();
45 [](
const entt::meta_any& obj)
47 auto data = obj.try_cast<
light>();
55 [](
const entt::meta_any& obj)
57 auto data = obj.try_cast<
light>();
66 [](
const entt::meta_any& obj)
68 auto data = obj.try_cast<
light>();
77 [](
const entt::meta_any& obj)
79 auto data = obj.try_cast<
light>();
87 entt::meta_factory<light::spot_shadowmap_params>{}
88 .type(
"light::spot_shadowmap_params"_hs)
94 entt::meta_factory<light::spot>{}
95 .type(
"light::spot"_hs)
100 .data<&light::spot::set_range, &light::spot::get_range>(
"range"_hs)
107 .data<&light::spot::set_inner_angle, &light::spot::get_inner_angle>(
"inner_angle"_hs)
116 .data<&light::spot::set_outer_angle, &light::spot::get_outer_angle>(
"outer_angle"_hs)
126 entt::meta_factory<light::point_shadowmap_params>{}
127 .type(
"light::point_shadowmap_params"_hs)
132 .data<&light::point_shadowmap_params::fov_x_adjust>(
"fov_x_adjust"_hs)
141 .data<&light::point_shadowmap_params::fov_y_adjust>(
"fov_y_adjust"_hs)
150 .data<&light::point_shadowmap_params::stencil_pack>(
"stencil_pack"_hs)
157 entt::meta_factory<light::point>{}
163 .data<&light::point::range>(
"range"_hs)
170 .data<&light::point::exponent_falloff>(
"exponent_falloff"_hs)
176 entt::attribute{
"tooltip",
"The falloff factor nearing the range edge."},
179 entt::meta_factory<light::directional_shadowmap_params>{}
180 .type(
"light::directional_shadowmap_params"_hs)
185 .data<&light::directional_shadowmap_params::num_splits>(
"splits"_hs)
193 .data<&light::directional_shadowmap_params::split_distribution>(
"distribution"_hs)
202 .data<&light::directional_shadowmap_params::stabilize>(
"stabilize"_hs)
209 entt::meta_factory<light::directional>{}
210 .type(
"light::directional"_hs)
216 entt::meta_factory<light_type>{}
217 .type(
"light_type"_hs)
222 .data<light_type::spot>(
"spot"_hs)
227 .data<light_type::point>(
"point"_hs)
232 .data<light_type::directional>(
"directional"_hs)
238 entt::meta_factory<sm_depth>{}
244 .data<sm_depth::invz>(
"invz"_hs)
249 .data<sm_depth::linear>(
"linear"_hs)
255 entt::meta_factory<sm_impl>{}
261 .data<sm_impl::hard>(
"hard"_hs)
266 .data<sm_impl::pcf>(
"pcf"_hs)
271 .data<sm_impl::pcss>(
"pcss"_hs)
276 .data<sm_impl::vsm>(
"vsm"_hs)
281 .data<sm_impl::esm>(
"esm"_hs)
289 [](
const entt::meta_any& obj)
299 [](
const entt::meta_any& obj)
309 [](
const entt::meta_any& obj)
319 [](
const entt::meta_any& obj)
329 [](
const entt::meta_any& obj)
340 entt::meta_factory<light::shadowmap_params::hard_impl_params>{}
341 .type(
"light::shadowmap_params::hard_impl_params"_hs)
348 entt::meta_factory<light::shadowmap_params::pcf_impl_params>{}
349 .type(
"light::shadowmap_params::pcf_impl_params"_hs)
354 .data<&light::shadowmap_params::pcf_impl_params::x_offset>(
"x_offset"_hs)
361 entt::attribute{
"tooltip",
"Offset along the x-axis for PCF sampling."},
363 .data<&light::shadowmap_params::pcf_impl_params::y_offset>(
"y_offset"_hs)
370 entt::attribute{
"tooltip",
"Offset along the y-axis for PCF sampling."},
374 entt::meta_factory<light::shadowmap_params::pcss_impl_params>{}
375 .type(
"light::shadowmap_params::pcss_impl_params"_hs)
380 .data<&light::shadowmap_params::pcss_impl_params::penumbra_x_offset>(
"penumbra_x_offset"_hs)
387 entt::attribute{
"tooltip",
"Offset along the x-axis for PCSS sampling."},
389 .data<&light::shadowmap_params::pcss_impl_params::penumbra_y_offset>(
"penumbra_y_offset"_hs)
396 entt::attribute{
"tooltip",
"Offset along the y-axis for PCSS sampling."},
400 entt::meta_factory<light::shadowmap_params::vsm_impl_params>{}
401 .type(
"light::shadowmap_params::vsm_impl_params"_hs)
406 .data<&light::shadowmap_params::vsm_impl_params::min_variance>(
"min_variance"_hs)
415 .data<&light::shadowmap_params::vsm_impl_params::depth_multiplier>(
"depth_multiplier"_hs)
424 .data<&light::shadowmap_params::vsm_impl_params::do_blur>(
"do_blur"_hs)
430 .data<&light::shadowmap_params::vsm_impl_params::blur_x_offset>(
"blur_x_offset"_hs)
439 .data<&light::shadowmap_params::vsm_impl_params::blur_y_offset>(
"blur_y_offset"_hs)
450 entt::meta_factory<light::shadowmap_params::esm_impl_params>{}
451 .type(
"light::shadowmap_params::esm_impl_params"_hs)
456 .data<&light::shadowmap_params::esm_impl_params::hardness>(
"hardness"_hs)
465 .data<&light::shadowmap_params::esm_impl_params::depth_multiplier>(
"depth_multiplier"_hs)
474 .data<&light::shadowmap_params::esm_impl_params::do_blur>(
"do_blur"_hs)
480 .data<&light::shadowmap_params::esm_impl_params::blur_x_offset>(
"blur_x_offset"_hs)
489 .data<&light::shadowmap_params::esm_impl_params::blur_y_offset>(
"blur_y_offset"_hs)
499 entt::meta_factory<sm_resolution>{}
500 .type(
"sm_resolution"_hs)
505 .data<sm_resolution::low>(
"low"_hs)
510 .data<sm_resolution::medium>(
"medium"_hs)
515 .data<sm_resolution::high>(
"high"_hs)
520 .data<sm_resolution::very_high>(
"very_high"_hs)
526 entt::meta_factory<light::shadowmap_params>{}
527 .type(
"light::shadowmap_params"_hs)
532 .data<&light::shadowmap_params::type>(
"type"_hs)
538 .data<&light::shadowmap_params::depth>(
"depth"_hs)
544 .data<&light::shadowmap_params::resolution>(
"resolution"_hs)
550 .data<&light::shadowmap_params::bias>(
"bias"_hs)
559 .data<&light::shadowmap_params::normal_bias>(
"normal_bias"_hs)
568 .data<&light::shadowmap_params::near_plane>(
"near_plane"_hs)
576 .data<&light::shadowmap_params::far_plane>(
"far_plane"_hs)
584 .data<&light::shadowmap_params::show_coverage>(
"show_coverage"_hs)
590 .data<&light::shadowmap_params::hard>(
"hard"_hs)
597 .data<&light::shadowmap_params::pcf>(
"pcf"_hs)
604 .data<&light::shadowmap_params::pcss>(
"pcss"_hs)
611 .data<&light::shadowmap_params::vsm>(
"vsm"_hs)
618 .data<&light::shadowmap_params::esm>(
"esm"_hs)
628 [](
const entt::meta_any& obj)
638 entt::meta_factory<light::contact_shadow_params>{}
639 .type(
"light::contact_shadow_params"_hs)
644 .data<&light::contact_shadow_params::enabled>(
"enabled"_hs)
648 entt::attribute{
"tooltip",
"Enable screen-space contact shadows for fine detail at object contact points."},
650 .data<&light::contact_shadow_params::ray_length>(
"ray_length"_hs)
657 entt::attribute{
"tooltip",
"Maximum ray distance in view-space units. Shorter = tighter contact detail, longer = catches more occluders."},
660 .data<&light::contact_shadow_params::thickness>(
"thickness"_hs)
667 entt::attribute{
"tooltip",
"View-space depth tolerance for a ray hit. Zero = automatic (15% of ray length)."},
670 .data<&light::contact_shadow_params::n_dot_l_fade_start>(
"n_dot_l_fade_start"_hs)
677 entt::attribute{
"tooltip",
"Contact shadow ramps in from this N·L (smoothstep low edge)."},
680 .data<&light::contact_shadow_params::n_dot_l_fade_end>(
"n_dot_l_fade_end"_hs)
687 entt::attribute{
"tooltip",
"Full contact shadow strength at or above this N·L (smoothstep high edge)."},
690 .data<&light::contact_shadow_params::normal_facing_reject>(
"normal_facing_reject"_hs)
697 entt::attribute{
"tooltip",
"Reject hits when reconstructed occluder normal faces the light above this cosine. -1 disables."},
701 entt::meta_factory<light>{}
707 .data<&light::color>(
"color"_hs)
712 .data<&light::intensity>(
"intensity"_hs)
719 .data<&light::type>(
"type"_hs)
724 .data<&light::directional_data>(
"directional_data"_hs)
731 .data<&light::point_data>(
"point_data"_hs)
738 .data<&light::spot_data>(
"spot_data"_hs)
745 .data<&light::casts_shadows>(
"casts_shadows"_hs)
750 .data<&light::shadow_params>(
"shadow_params"_hs)
757 .data<&light::directional_shadow_params>(
"directional_shadow_params"_hs)
761 entt::attribute{
"tooltip",
"Directional light shadow map parameters."},
762 entt::attribute{
"predicate", casts_shadows_and_is_directional_predicate_entt}
765 .data<&light::point_shadow_params>(
"point_shadow_params"_hs)
770 entt::attribute{
"predicate", casts_shadows_and_is_point_predicate_entt}
773 .data<&light::spot_shadow_params>(
"spot_shadow_params"_hs)
781 .data<&light::contact_shadow>(
"contact_shadow"_hs)
785 entt::attribute{
"tooltip",
"Screen-space contact shadows for fine shadow detail at object contact points."},