VK_NV_ray_tracing_motion_blur
Other Extension Metadata
Last Modified Date
2021-06-16
Interactions and External Dependencies
- This extension provides API support for
GL_NV_ray_tracing_motion_blur
Contributors
- Eric Werness, NVIDIA
- Ashwin Lele, NVIDIA
Description
Ray tracing support in the API provides an efficient mechanism to intersect rays against static geometry, but rendering algorithms often want to support motion, which is more efficiently supported with motion-specific algorithms. This extension adds a set of mechanisms to support fast tracing of moving geometry:
- A ray pipeline trace call which takes a time parameter
- Flags to enable motion support in an acceleration structure
- Support for time-varying vertex positions in a geometry
- Motion instances to move existing instances over time
The motion represented here is parameterized across a normalized timestep
between 0.0 and 1.0.
A motion trace using OpTraceRayMotionNV
provides a time within that
normalized range to be used when intersecting that ray with geometry.
The geometry can be provided with motion by a combination of adding a second
vertex position for time of 1.0 using
VkAccelerationStructureGeometryMotionTrianglesDataNV
and providing
multiple transforms in the instance using
VkAccelerationStructureMotionInstanceNV
.
New Structures
- VkAccelerationStructureMatrixMotionInstanceNV
- VkAccelerationStructureMotionInstanceNV
- VkAccelerationStructureSRTMotionInstanceNV
- VkSRTDataNV
- Extending VkAccelerationStructureCreateInfoKHR:
- Extending VkAccelerationStructureGeometryTrianglesDataKHR:
- Extending VkPhysicalDeviceFeatures2, VkDeviceCreateInfo:
New Unions
New Enums
New Bitmasks
New Enum Constants
VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME
VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION
- Extending VkAccelerationStructureCreateFlagBitsKHR:
VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV
- Extending VkBuildAccelerationStructureFlagBitsKHR:
VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV
- Extending VkPipelineCreateFlagBits:
VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV
- Extending VkStructureType:
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV
Issues
(1) What size is VkAccelerationStructureMotionInstanceNV?
- Added a note on the structure size and made the stride explicit in the language.
(2) Allow arrayOfPointers for motion TLAS?
- Yes, with a packed encoding to minimize the amount of data sent for metadata.
Version History
- Revision 1, 2020-06-16 (Eric Werness, Ashwin Lele)
- Initial external release