engine/ext/behaviors/voxelizer/behavior.h

41 lines
1.0 KiB
C++

#pragma once
#include <uf/config.h>
#include <uf/ext/ext.h>
#include <uf/engine/entity/entity.h>
#include <uf/engine/scene/scene.h>
#include <uf/utils/math/vector.h>
#include <uf/utils/math/matrix.h>
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;
);
}
}