VkAccelerationStructureTrianglesOpacityMicromapKHR(3)

# VkAccelerationStructureTrianglesOpacityMicromapKHR(3) Manual Page

## Name

VkAccelerationStructureTrianglesOpacityMicromapKHR - Structure specifying an opacity micromap in a bottom-level acceleration structure

## C Specification

The `VkAccelerationStructureTrianglesOpacityMicromapKHR` structure is defined as:

    // Provided by VK_KHR_opacity_micromap
    typedef struct VkAccelerationStructureTrianglesOpacityMicromapKHR {
        VkStructureType               sType;
        void*                         pNext;
        VkIndexType                   indexType;
        VkDeviceAddress               indexBuffer;
        VkDeviceSize                  indexStride;
        uint32_t                      baseTriangle;
        VkAccelerationStructureKHR    micromap;
    } VkAccelerationStructureTrianglesOpacityMicromapKHR;

## Members

- `sType` is a VkStructureType value identifying this structure.

- `pNext` is `NULL` or a pointer to a structure extending this structure.

- `indexType` is the type of triangle indices used when indexing this micromap

- `indexBuffer` is the address containing the triangle indices

- `indexStride` is the byte stride between triangle indices

- `baseTriangle` is the base value added to the non-negative triangle indices

- `micromap` is the handle to the micromap object to include in this geometry

## Description

If `VkAccelerationStructureTrianglesOpacityMicromapKHR` is included in the `pNext` chain of a VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX or 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 present. If `indexType` is VK_INDEX_TYPE_NONE_KHR, then the index used is the index of the triangle in the geometry.

If that value is the unsigned cast of one of the values from VkOpacityMicromapSpecialIndexKHR 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`.

Valid Usage

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexType-11570
  `indexType` must be VK_INDEX_TYPE_UINT8, VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexBuffer-11571
  If `indexType` is VK_INDEX_TYPE_NONE_KHR, `indexBuffer` must be 0

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexBuffer-11572
  If `indexType` is not VK_INDEX_TYPE_NONE_KHR, `indexBuffer` must be a valid VkDeviceAddress

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexStride-11573
  If `indexType` is not VK_INDEX_TYPE_NONE_KHR, `indexStride` must be a multiple of the size in bytes of `indexType`

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexStride-11574
  If `indexType` is not VK_INDEX_TYPE_NONE_KHR, `indexStride` must be less than or equal to 232-1

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-geometry-11576
  If `indexType` is VK_INDEX_TYPE_NONE_KHR, for each triangle index in the geometry, index plus `baseTriangle` must be less than or equal to numTriangles, where numTriangles is given by the sum of all `count` parameters in the `pUsageCounts` or `ppUsageCounts` provided to the micromap’s build command

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-micromap-11579
  If `indexType` is VK_INDEX_TYPE_NONE_KHR, `micromap` must not be VK_NULL_HANDLE

Valid Usage (Implicit)

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-sType-sType
  `sType` must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_KHR

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-indexType-parameter
  `indexType` must be a valid VkIndexType value

- VUID-VkAccelerationStructureTrianglesOpacityMicromapKHR-micromap-parameter
  If `micromap` is not VK_NULL_HANDLE, `micromap` must be a valid VkAccelerationStructureKHR handle

Structure Chaining

Extends the structures

  - VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX

  - VkAccelerationStructureGeometryTrianglesDataKHR

## See Also

VK_KHR_opacity_micromap, VkAccelerationStructureKHR, VkDeviceAddress, VkDeviceSize, VkIndexType, VkStructureType

## Document Notes

For more information, see the Vulkan Specification.

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

## Copyright

Copyright 2014-2026 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0