2#include "../foray_basics.hpp"
3#include "../foray_glm.hpp"
4#include "../foray_vulkan.hpp"
A reference to a BLAS maintained by the TLAS.
Definition foray_blasinstance.hpp:11
void SetGeometryMetaOffset(uint32_t offset)
Set the offset into the GeometryMetaBuffer (see foray_geometrymetabuffer.hpp)
std::function< void(glm::mat4 &)> TransformUpdateFunc
Function template used for updating the transform matrix of animated instances.
Definition foray_blasinstance.hpp:14
void SetShaderBindingTableOffset(uint32_t offset)
Set the offset for shader binding table.
BlasInstance & SetGeometryInstanceFlags(VkGeometryFlagsKHR flags)
Definition foray_blasinstance.hpp:36
BlasInstance(uint64_t instanceId, const Blas *blas, const glm::mat4 &globalTransform)
Initialize as static.
void Update()
Updates the transform by fetching a new matrix.
const Blas * mBlas
BLAS.
Definition foray_blasinstance.hpp:58
VkAccelerationStructureInstanceKHR mAsInstance
Vulkans instance struct, contains the actual reference to the BLAS, the transform and the custom inde...
Definition foray_blasinstance.hpp:62
VkGeometryInstanceFlagsKHR GetGeometryInstanceFlags() const
Definition foray_blasinstance.hpp:35
uint64_t mInstanceId
Id assigned by the TLAS.
Definition foray_blasinstance.hpp:56
TransformUpdateFunc mGetUpdatedGlobalTransformFunc
Function used to update transform (if animated, nullptr otherwise)
Definition foray_blasinstance.hpp:60
BlasInstance & AddGeometryInstanceFlag(VkGeometryFlagBitsKHR flag)
Definition foray_blasinstance.hpp:41
static void TranslateTransformMatrix(const glm::mat4 &in, VkTransformMatrixKHR &out)
Translates glms column major 4x4 matrix to the row major 4x3 matrix type VkTransformMatrixKHR.
BlasInstance(uint64_t instanceId, const Blas *blas, TransformUpdateFunc getUpdatedGlobalTransformFunc)
Initialize as animated.
BlasInstance()
Definition foray_blasinstance.hpp:16
bool IsAnimated() const
Definition foray_blasinstance.hpp:27
A Blas (Bottom Level Acceleration Structure) is the raytracing equivalent concept of a mesh.
Definition foray_blas.hpp:15
#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
#define FORAY_PROPERTY_V(member)
Getter+Setter shorthand for value types.
Definition foray_basics.hpp:81
Definition foray_as_declares.hpp:3