15 (lattice.bounds.min + lattice.bounds.max) * 0.5F,
16 (lattice.bounds.max - lattice.bounds.min) * 0.5F))
18 , m_source(
std::move(source))
19 , m_field_bytes(field_bytes)
34 "RaymarchBuffer: proxy box over {}x{}x{} lattice",
#define MF_DEBUG(comp, ctx,...)
void setup_processors(ProcessingToken token) override
Create and attach MeshProcessor as the default processor.
void setup_rendering(const RenderConfig &config)
Attach a RenderProcessor targeting the given window.
VKBuffer subclass that owns a MeshData and manages its GPU upload.
Kinesis::Lattice3D m_lattice
std::shared_ptr< RaymarchProcessor > m_march_processor
RaymarchBuffer(Kinesis::Lattice3D lattice, RaymarchProcessor::FieldSource source, size_t field_bytes)
Construct proxy geometry over a lattice.
RaymarchProcessor::FieldSource m_source
void setup_rendering(const RenderConfig &config)
Attach a RenderProcessor drawing the proxy box.
void setup_processors(ProcessingToken token) override
Attach MeshProcessor for upload and RaymarchProcessor for staging.
std::function< vk::Buffer()> FieldSource
Callable resolving the handle to sample this cycle.
std::shared_ptr< Buffers::BufferProcessingChain > get_processing_chain() override
Access the buffer's processing chain.
std::shared_ptr< RenderProcessor > m_render_processor
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
@ Init
Engine/subsystem initialization.
@ Buffers
Buffers, Managers, processors and processing chains.
glm::uvec3 resolution
Cell count per axis. Zero on any axis is invalid.
A regular subdivision of an AABB3D into a cell count per axis.
std::string vertex_shader
std::string fragment_shader
Unified rendering configuration for graphics buffers.