2#include "../bench/foray_bench_declares.hpp"
3#include "../core/foray_context.hpp"
4#include "../core/foray_managedbuffer.hpp"
5#include "../core/foray_managedresource.hpp"
6#include "../scene/foray_scene_declares.hpp"
25 inline virtual std::string_view
GetTypeName()
const override {
return "Bottom-Level AS"; }
A Blas (Bottom Level Acceleration Structure) is the raytracing equivalent concept of a mesh.
Definition foray_blas.hpp:15
static const char * BENCH_RESET
Definition foray_blas.hpp:19
static const char * BENCH_BUILD
Definition foray_blas.hpp:23
static const char * BENCH_CREATESTRUCTS
Definition foray_blas.hpp:20
static const char * BENCH_CREATE
Definition foray_blas.hpp:22
const scene::Mesh * mMesh
Definition foray_blas.hpp:46
virtual std::string_view GetTypeName() const override
Returns <OBJECT_TYPE> stringified.
Definition foray_blas.hpp:25
virtual void Destroy() override
Destroy the resource.
virtual ~Blas()
Definition foray_blas.hpp:17
VkDeviceAddress mBlasAddress
Definition foray_blas.hpp:49
core::Context * mContext
Definition foray_blas.hpp:45
virtual bool Exists() const override
Return true, if the managed resource is allocated.
Definition foray_blas.hpp:36
static const char * BENCH_GETSIZES
Definition foray_blas.hpp:21
VkAccelerationStructureKHR mAccelerationStructure
Definition foray_blas.hpp:48
virtual void CreateOrUpdate(core::Context *context, const scene::Mesh *mesh, const scene::gcomp::GeometryStore *store, bench::HostBenchmark *benchmark=nullptr)
Recreates the acceleration structure.
core::ManagedBuffer mBlasMemory
Definition foray_blas.hpp:47
A host (CPU time) benchmark based on std::chrono::high_resolution_clock. Timestamps are recorded in m...
Definition foray_hostbenchmark.hpp:8
Wraps allocation and lifetime functionality of a VkBuffer.
Definition foray_managedbuffer.hpp:12
ManagedResource variant which automates GetTypeName() overloading by returning a stringified version ...
Definition foray_managedresource.hpp:59
Type describing a single mesh object, described by multiple Primitive objects.
Definition foray_mesh.hpp:49
Stores all geometry in a single set of index and vertex buffers.
Definition foray_geometrymanager.hpp:12
#define FORAY_GETTER_V(member)
Return value.
Definition foray_basics.hpp:39
#define FORAY_GETTER_CR(member)
Return constant reference.
Definition foray_basics.hpp:60
Definition foray_as_declares.hpp:3
Non owning context object.
Definition foray_context.hpp:16