VK_NV_displacement_micromap(3)

# VK_NV_displacement_micromap(3) Manual Page

## Name

VK_NV_displacement_micromap - device extension

Loading… please wait.

## Registered Extension Number

398

## Revision

2

## Ratification Status

Not ratified

## Extension and Version Dependencies

VK_EXT_opacity_micromap

- This is a provisional extension and must be used with caution. See the description of provisional header files for enablement and stability details.

## Contact

- Christoph Kubisch pixeljetstream

- Eric Werness ewerness-nv

## Other Extension Metadata

Last Modified Date

  2023-03-17

Interactions and External Dependencies

  TBD

Contributors

  - Christoph Kubisch, NVIDIA

  - Eric Werness, NVIDIA

## Description

Ray tracing can very efficiently render from geometry which has very fine detail, but when using only a basic triangle representation, memory consumption can be an issue. This extension adds the ability to add a displacement map to add more detail to triangles in an acceleration structure with an efficient in-memory format. The format is externally visible to allow the application to compress its internal geometry representations into the compressed format ahead of time. This format adds displacements along a defined vector to subtriangle vertices which are subdivided from the main triangles.

This extension provides:

- a new VkMicromapTypeEXT format for the displacement micromap,

- a structure to extend VkAccelerationStructureGeometryTrianglesDataKHR to attach a displacement micromap to the geometry of the acceleration structure,

- enums extending VkBuildAccelerationStructureFlagBitsKHR to allow for updates.

## New Structures

- Extending VkAccelerationStructureGeometryTrianglesDataKHR:

  - VkAccelerationStructureTrianglesDisplacementMicromapNV

- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:

  - VkPhysicalDeviceDisplacementMicromapFeaturesNV

- Extending VkPhysicalDeviceProperties2:

  - VkPhysicalDeviceDisplacementMicromapPropertiesNV

## New Enums

- VkDisplacementMicromapFormatNV

## New Enum Constants

- `VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME`

- `VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION`

- Extending VkBuildAccelerationStructureFlagBitsKHR:

  - `VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV`

- Extending VkMicromapTypeEXT:

  - `VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV`

- Extending VkPipelineCreateFlagBits:

  - `VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV`

- Extending VkStructureType:

  - `VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV`

  - `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV`

## Issues

(1) What is the status of this extension?

- Provisional and expected to change. The broad structure and encoding format are stable, but there will likely be changes to the structures, enumerant values, and shader interface.

## Version History

- Revision 1, 2023-03-17 (Eric Werness)

  - Initial public revision

- Revision 2, 2023-07-07 (Eric Werness)

  - Add shader support for decode intrinsics

## See Also

VkAccelerationStructureTrianglesDisplacementMicromapNV, VkDisplacementMicromapFormatNV, VkPhysicalDeviceDisplacementMicromapFeaturesNV, VkPhysicalDeviceDisplacementMicromapPropertiesNV

## Document Notes

For more information, see the Vulkan Specification

This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.

## Copyright

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0