Class VkAccelerationStructureTrianglesDisplacementMicromapNV

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

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

If VkAccelerationStructureTrianglesDisplacementMicromapNV 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. That triangle uses the displacement 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 must be equal to the sum of matching count provided.

Valid Usage
  • displacementBiasAndScaleFormat must not be FORMAT_UNDEFINED
  • displacementVectorFormat must not be FORMAT_UNDEFINED
  • Only one of pUsageCounts or ppUsageCounts can be a valid pointer, the other must be NULL
Valid Usage (Implicit)
  • sType must be STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
  • displacementBiasAndScaleFormat must be a valid VkFormat value
  • displacementVectorFormat must be a valid VkFormat value
  • indexType must be a valid VkIndexType value
  • If usageCountsCount is not 0, and pUsageCounts is not NULL, pUsageCounts must be a valid pointer to an array of usageCountsCount VkMicromapUsageEXT structures
  • If usageCountsCount is not 0, and ppUsageCounts is not NULL, ppUsageCounts must be a valid pointer to an array of usageCountsCount valid pointers to VkMicromapUsageEXT structures
  • If micromap is not NULL_HANDLE, micromap must be a valid VkMicromapEXT handle
See Also

VkDeviceOrHostAddressConstKHR, VkMicromapUsageEXT

Layout


 struct VkAccelerationStructureTrianglesDisplacementMicromapNV {
     VkStructureType sType();
     void * pNext();
     VkFormat displacementBiasAndScaleFormat();
     VkFormat displacementVectorFormat();
     VkDeviceOrHostAddressConstKHR displacementBiasAndScaleBuffer();
     VkDeviceSize displacementBiasAndScaleStride();
     VkDeviceOrHostAddressConstKHR displacementVectorBuffer();
     VkDeviceSize displacementVectorStride();
     VkDeviceOrHostAddressConstKHR displacedMicromapPrimitiveFlags();
     VkDeviceSize displacedMicromapPrimitiveFlagsStride();
     VkIndexType indexType();
     VkDeviceOrHostAddressConstKHR indexBuffer();
     VkDeviceSize indexStride();
     uint32_t baseTriangle();
     uint32_t usageCountsCount();
     VkMicromapUsageEXT const * pUsageCounts();
     VkMicromapUsageEXT const * const * ppUsageCounts();
     VkMicromapEXT micromap();
 }