This commit is contained in:
Jorijn van der Graaf 2026-02-05 05:22:01 +01:00
commit 75c9ae5087
5 changed files with 28 additions and 24 deletions

View file

@ -27,7 +27,7 @@ using namespace Crafter;
std::vector<RenderingElement3DVulkan> RenderingElement3DVulkan::elements;
RenderingElement3DVulkan::RenderingElement3DVulkan(Mesh& mesh) {
RenderingElement3DVulkan::RenderingElement3DVulkan(Mesh& mesh, std::uint32_t customIndex, std::uint32_t mask, std::uint32_t shaderOffset) {
VkAccelerationStructureDeviceAddressInfoKHR addrInfo {
.sType = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR,
.accelerationStructure = mesh.accelerationStructure
@ -35,10 +35,10 @@ RenderingElement3DVulkan::RenderingElement3DVulkan(Mesh& mesh) {
VkDeviceAddress blasDeviceAddr = VulkanDevice::vkGetAccelerationStructureDeviceAddressKHR(VulkanDevice::device, &addrInfo);
instance = {
.instanceCustomIndex = 0,
.mask = 0xFF,
.instanceShaderBindingTableRecordOffset = 0,
.flags = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR | VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
.instanceCustomIndex = customIndex,
.mask = mask,
.instanceShaderBindingTableRecordOffset = shaderOffset,
.flags = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
.accelerationStructureReference = blasDeviceAddr
};
}