#pragma once #include #include #include #include #include #include namespace ext { namespace VoxelizerSceneBehavior { 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; float voxelizeScale = 0; float occlusionFalloff = 0; float traceStartOffsetFactor = 1.0f; uint32_t shadows = 0; struct { pod::Vector3f min = {}; pod::Vector3f max = {}; pod::Matrix4f matrix = uf::matrix::identity(); } extents; struct { float frequency = 0.0f; float timer = 0.0f; } limiter; bool initialized = false; ); } }