org.lwjgl.vulkan.NVRayTracingMotionBlur Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of lwjgl-vulkan Show documentation
Show all versions of lwjgl-vulkan Show documentation
A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.
/*
* Copyright LWJGL. All rights reserved.
* License terms: https://www.lwjgl.org/license
* MACHINE GENERATED FILE, DO NOT EDIT
*/
package org.lwjgl.vulkan;
/**
* 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 {@code 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 {@link VkAccelerationStructureGeometryMotionTrianglesDataNV} and providing multiple transforms in the instance using {@link VkAccelerationStructureMotionInstanceNV}.
*
* VK_NV_ray_tracing_motion_blur
*
*
* - Name String
* - {@code VK_NV_ray_tracing_motion_blur}
* - Extension Type
* - Device extension
* - Registered Extension Number
* - 328
* - Revision
* - 1
* - Extension and Version Dependencies
*
* - Requires Vulkan 1.0
* - Requires {@link KHRRayTracingPipeline VK_KHR_ray_tracing_pipeline}
*
* - Contact
*
* - Eric Werness
*
*
*
* Other Extension Metadata
*
*
* - Last Modified Date
* - 2021-06-16
* - Interactions and External Dependencies
*
* - This extension requires {@code SPV_NV_ray_tracing_motion_blur}
* - This extension provides API support for {@code GL_NV_ray_tracing_motion_blur}
*
* - Contributors
*
* - Eric Werness, NVIDIA
* - Ashwin Lele, NVIDIA
*
*
*/
public final class NVRayTracingMotionBlur {
/** The extension specification version. */
public static final int VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION = 1;
/** The extension name. */
public static final String VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME = "VK_NV_ray_tracing_motion_blur";
/**
* Extends {@code VkStructureType}.
*
* Enum values:
*
*
* - {@link #VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV}
* - {@link #VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV}
* - {@link #VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV}
*
*/
public static final int
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002;
/** Extends {@code VkBuildAccelerationStructureFlagBitsKHR}. */
public static final int VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x20;
/** Extends {@code VkAccelerationStructureCreateFlagBitsKHR}. */
public static final int VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x4;
/** Extends {@code VkPipelineCreateFlagBits}. */
public static final int VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x100000;
/**
* VkAccelerationStructureMotionInstanceTypeNV - Enum specifying a type of acceleration structure motion instance data for building into an acceleration structure geometry
*
* Description
*
*
* - {@link #VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV} specifies that the instance is a static instance with no instance motion.
* - {@link #VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV} specifies that the instance is a motion instance with motion specified by interpolation between two matrices.
* - {@link #VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV} specifies that the instance is a motion instance with motion specified by interpolation in the SRT decomposition.
*
*
* See Also
*
* {@link VkAccelerationStructureMotionInstanceNV}
*/
public static final int
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2;
private NVRayTracingMotionBlur() {}
}