Package org.lwjgl.vulkan
Class NVDisplacementMicromap
java.lang.Object
org.lwjgl.vulkan.NVDisplacementMicromap
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
VkMicromapTypeEXTformat for the displacement micromap, - a structure to extend
VkAccelerationStructureGeometryTrianglesDataKHRto attach a displacement micromap to the geometry of the acceleration structure, - enums extending
VkBuildAccelerationStructureFlagBitsKHRto allow for updates.
- Name String
VK_NV_displacement_micromap- Extension Type
- Device extension
- Registered Extension Number
- 398
- Revision
- 2
- 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
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intExtendsVkBuildAccelerationStructureFlagBitsKHR.static final intVkDisplacementMicromapFormatNV - Format enum for displacement micromapsstatic final intVkDisplacementMicromapFormatNV - Format enum for displacement micromapsstatic final intVkDisplacementMicromapFormatNV - Format enum for displacement micromapsstatic final intExtendsVkMicromapTypeEXT.static final StringThe extension name.static final intThe extension specification version.static final intExtendsVkPipelineCreateFlagBits.static final intExtendsVkStructureType.static final intExtendsVkStructureType.static final intExtendsVkStructureType. -
Method Summary
-
Field Details
-
VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSION
public static final int VK_NV_DISPLACEMENT_MICROMAP_SPEC_VERSIONThe extension specification version.- See Also:
-
VK_NV_DISPLACEMENT_MICROMAP_EXTENSION_NAME
The extension name.- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NVExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV
public static final int VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NVExtendsVkStructureType.Enum values:
- See Also:
-
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV
public static final int VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NVExtendsVkStructureType.Enum values:
- See Also:
-
VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV
public static final int VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NVExtendsVkPipelineCreateFlagBits.- See Also:
-
VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV
public static final int VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NVExtendsVkBuildAccelerationStructureFlagBitsKHR.- See Also:
-
VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV
public static final int VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NVExtendsVkMicromapTypeEXT.- See Also:
-
VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV
public static final int VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NVVkDisplacementMicromapFormatNV - Format enum for displacement micromapsDescription
DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NVspecifies that the given micromap format encodes 64 micro-triangles worth of displacements in 64 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 256 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 1024 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.
Note
For compactness, these values are stored as 16-bit in some structures.
- See Also:
-
VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV
public static final int VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NVVkDisplacementMicromapFormatNV - Format enum for displacement micromapsDescription
DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NVspecifies that the given micromap format encodes 64 micro-triangles worth of displacements in 64 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 256 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 1024 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.
Note
For compactness, these values are stored as 16-bit in some structures.
- See Also:
-
VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV
public static final int VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NVVkDisplacementMicromapFormatNV - Format enum for displacement micromapsDescription
DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NVspecifies that the given micromap format encodes 64 micro-triangles worth of displacements in 64 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 256 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NVspecifies that the given micromap format encodes 1024 micro-triangles worth of displacements in 128 bytes as described in Displacement Micromap Encoding.
Note
For compactness, these values are stored as 16-bit in some structures.
- See Also:
-