Class VkAccelerationStructureTrianglesOpacityMicromapEXT

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<VkAccelerationStructureTrianglesOpacityMicromapEXT>
org.lwjgl.vulkan.VkAccelerationStructureTrianglesOpacityMicromapEXT
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class VkAccelerationStructureTrianglesOpacityMicromapEXT extends org.lwjgl.system.Struct<VkAccelerationStructureTrianglesOpacityMicromapEXT> implements org.lwjgl.system.NativeResource
Structure specifying an opacity micromap in a bottom-level acceleration structure.
Description

If VkAccelerationStructureTrianglesOpacityMicromapEXT is included in the pNext chain of a VkAccelerationStructureGeometryTrianglesDataKHR structure, that geometry will reference that micromap.

For each triangle in the geometry, the acceleration structure build fetches an index from indexBuffer using indexType and indexStride. If that value is the unsigned cast of one of the values from VkOpacityMicromapSpecialIndexEXT then that triangle behaves as described for that special value in Ray Opacity Micromap. Otherwise that triangle uses the opacity micromap information from micromap at that index plus baseTriangle.

Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL. The elements of the non-NULL array describe the total count used to build this geometry. For a given format and subdivisionLevel the number of triangles in this geometry matching those values after indirection and special index handling must be equal to the sum of matching count provided.

If micromap is NULL_HANDLE, then every value read from indexBuffer must be one of the values in VkOpacityMicromapSpecialIndexEXT.

Valid Usage
  • Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
Valid Usage (Implicit)
See Also

VkDeviceOrHostAddressConstKHR, VkMicromapUsageEXT

Layout


 struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
     VkStructureType sType();
     void * pNext();
     VkIndexType indexType();
     VkDeviceOrHostAddressConstKHR indexBuffer();
     VkDeviceSize indexStride();
     uint32_t baseTriangle();
     uint32_t usageCountsCount();
     VkMicromapUsageEXT const * pUsageCounts();
     VkMicromapUsageEXT const * const * ppUsageCounts();
     VkMicromapEXT micromap();
 }