VK_NV_displacement_micromap

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:

New Structures

New Enums

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