10class SDFPrepProcessor;
11class SDFFieldProcessor;
12class SDFMeshProcessor;
49 const glm::vec3& bounds_min,
50 const glm::vec3& bounds_max,
54 float iso_level = 0.0F);
78 const glm::vec3& bounds_min,
79 const glm::vec3& bounds_max,
83 float iso_level = 0.0F,
84 std::string field_shader =
"sdf_field_gyroid.comp");
89 return m_field_processor;
112 void set_bounds(
const glm::vec3& bounds_min,
const glm::vec3& bounds_max);
119 void set_resolution(uint32_t res_x, uint32_t res_y, uint32_t res_z);
122 void set_iso_level(
float iso_level);
140 std::shared_ptr<Core::VKImage>
image,
141 std::string binding =
"diffuseTex");
151 std::string m_diffuse_binding {
"diffuseTex" };
166 uint32_t res_x, uint32_t res_y, uint32_t res_z)
noexcept
~ComputeMeshBuffer() override=default
std::shared_ptr< SDFFieldProcessor > get_field_processor() const
Access the field processor to drive time or bounds from a metro.
std::shared_ptr< SDFMeshProcessor > m_sdf_processor
std::shared_ptr< SDFFieldProcessor > m_field_processor
Kinesis::SpatialField m_field
static size_t worst_case_bytes(uint32_t res_x, uint32_t res_y, uint32_t res_z) noexcept
std::shared_ptr< Core::VKImage > m_diffuse_texture
std::shared_ptr< SDFPrepProcessor > m_prep_processor
std::string m_field_shader
VKBuffer that evaluates a SpatialField isosurface via marching cubes on the GPU and renders directly ...
Vulkan-backed buffer wrapper used in processing chains.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
Vertex type for indexed triangle mesh primitives (TRIANGLE_LIST topology)
Typed, composable, stateless callable from domain D to range R.
Unified rendering configuration for graphics buffers.