#pragma once #include #include #include #include #include #include namespace ext { namespace VoxelizerBehavior { UF_BEHAVIOR_DEFINE_TYPE(); EXT_BEHAVIOR_DEFINE_TRAITS(); EXT_BEHAVIOR_DEFINE_FUNCTIONS(); UF_BEHAVIOR_DEFINE_METADATA( pod::Vector3ui fragmentSize = { 0, 0 }; pod::Vector3ui voxelSize = { 0, 0, 0 }; pod::Vector3ui dispatchSize = { 0, 0, 0 }; uf::stl::string renderModeName = "VXGI"; size_t cascades = 0; float cascadePower = 0; float granularity = 0; uint32_t shadows = 0; struct { pod::Vector3f min = {}; pod::Vector3f max = {}; pod::Matrix4f matrix = uf::matrix::identity(); } extents; struct { float limiter = 0.0f; float timer = 0.0f; } renderer; bool initialized = false; ); } }