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:
- 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:
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
- Extending VkPhysicalDeviceProperties2:
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