|
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 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 |