Nebula
|
#include "foundation/stdneb.h"
#include "coregraphics/mesh.h"
#include "coregraphics/accelerationstructure.h"
#include "vkaccelerationstructure.h"
#include "vkgraphicsdevice.h"
#include "vkbuffer.h"
#include "vktypes.h"
Namespaces | |
namespace | Vulkan |
Vulkan implementation of GPU acceleration structure. | |
namespace | CoreGraphics |
Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH. | |
Functions | |
const VkDevice | Vulkan::BlasGetVkDevice (const CoreGraphics::BlasId id) |
Get device used to create blas. | |
const VkBuffer | Vulkan::BlasGetVkBuffer (const CoreGraphics::BlasId id) |
Get buffer holding TLAS data. | |
const VkAccelerationStructureKHR | Vulkan::BlasGetVk (const CoreGraphics::BlasId id) |
Get buffer representing the acceleration structure. | |
const VkAccelerationStructureBuildGeometryInfoKHR & | Vulkan::BlasGetVkBuild (const CoreGraphics::BlasId id) |
Get build info for bottom level acceleration structure. | |
const Util::Array< VkAccelerationStructureBuildRangeInfoKHR > & | Vulkan::BlasGetVkRanges (const CoreGraphics::BlasId id) |
Get range infos for bottom level acceleration structure. | |
const VkDevice | Vulkan::TlasGetVkDevice (const CoreGraphics::TlasId id) |
Get device used to create Tlas. | |
const VkBuffer | Vulkan::TlasGetVkBuffer (const CoreGraphics::TlasId id) |
Get buffer holding TLAS data. | |
const VkAccelerationStructureKHR | Vulkan::TlasGetVk (const CoreGraphics::TlasId id) |
Get acceleration structure. | |
const VkAccelerationStructureBuildGeometryInfoKHR & | Vulkan::TlasGetVkBuild (const CoreGraphics::TlasId id) |
Get build info. | |
const Util::Array< VkAccelerationStructureBuildRangeInfoKHR > & | Vulkan::TlasGetVkRanges (const CoreGraphics::TlasId id) |
Get build ranges. | |
CoreGraphics::_IMPL_ACQUIRE_RELEASE (BlasInstanceId, Vulkan::blasInstanceAllocator) | |
CoreGraphics::_IMPL_ACQUIRE_RELEASE (BlasId, Vulkan::blasAllocator) | |
BlasId | CoreGraphics::CreateBlas (const BlasCreateInfo &info) |
Create bottom level acceleration structure. | |
void | CoreGraphics::DestroyBlas (const BlasId blac) |
Destroy bottom level acceleration structure. | |
BlasInstanceId | CoreGraphics::CreateBlasInstance (const BlasInstanceCreateInfo &info) |
Create an instance to a bottom level acceleration structure. | |
void | CoreGraphics::DestroyBlasInstance (const BlasInstanceId id) |
Destroy blas instance. | |
void | CoreGraphics::BlasInstanceUpdate (const BlasInstanceId id, const Math::mat4 &transform, CoreGraphics::BufferId buf, uint offset) |
Update blas instance and write to buffer. | |
void | CoreGraphics::BlasInstanceUpdate (const BlasInstanceId id, CoreGraphics::BufferId buf, uint offset) |
Update blas instance and write to buffer. | |
void | CoreGraphics::BlasInstanceSetMask (const BlasInstanceId id, uint mask) |
Set blas instance mask, setting it to 0x0 will disable it. | |
const SizeT | CoreGraphics::BlasInstanceGetSize () |
Get instance size (platform dependent) | |
TlasId | CoreGraphics::CreateTlas (const TlasCreateInfo &info) |
Create top level acceleration structure. | |
void | CoreGraphics::DestroyTlas (const TlasId tlas) |
Destroy top level acceleration structure. | |
void | CoreGraphics::TlasInitBuild (const TlasId tlas) |
Initiate Tlas for build. | |
void | CoreGraphics::TlasInitUpdate (const TlasId tlas) |
Initiate Tlas for update. | |
Variables | |
VkBlasAllocator | Vulkan::blasAllocator |
VkBlasInstanceAllocator | Vulkan::blasInstanceAllocator |
VkTlasAllocator | Vulkan::tlasAllocator |