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