| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Vulkan.Extensions.VK_NV_ray_tracing_linear_swept_spheres
Description
Name
VK_NV_ray_tracing_linear_swept_spheres - device extension
VK_NV_ray_tracing_linear_swept_spheres
- Name String
VK_NV_ray_tracing_linear_swept_spheres
- Extension Type
- Device extension
- Registered Extension Number
- 430
- Revision
- 1
- Ratification Status
- Not ratified
- Extension and Version Dependencies
- VK_KHR_ray_tracing_pipeline
- SPIR-V Dependencies
- Contact
- Extension Proposal
- VK_NV_ray_tracing_linear_swept_spheres
Other Extension Metadata
- Last Modified Date
- 2025-01-03
- Interactions and External Dependencies
- This extension requires SPV_NV_linear_swept_spheres
- This extension provides API support for GL_NV_linear_swept_spheres
- Contributors
- Vikram Kushwaha, NVIDIA
- Eric Werness, NVIDIA
- Daniel Koch, NVIDIA
- Ashwin Lele, NVIDIA
- Nathan Morrical, NVIDIA
Description
This extension adds two new primitives for ray tracing: a sphere primitive and a linear swept sphere (LSS) primitive. The purpose of the LSS primitive is to enable rendering of high quality hair and fur using a compact primitive representation encoded in the acceleration structure. Sphere primitives are defined by a position and a radius and are a subset of LSS, but are useful in their own right, for example for particle systems.
This extension adds support for the following SPIR-V extension in Vulkan:
SPV_NV_linear_swept_spheres
New Structures
Extending
AccelerationStructureGeometryKHR:
Extending
PhysicalDeviceFeatures2,DeviceCreateInfo:
New Enums
New Enum Constants
NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSIONExtending
FormatFeatureFlagBits2:Extending
GeometryTypeKHR:Extending
PipelineCreateFlagBits2:Extending
StructureType:
New or Modified Built-In Variables
New SPIR-V Capabilities
Version History
Revision 1, 2025-01-03 (Vikram Kushwaha)
- Initial draft
See Also
No cross-references are available
Document Notes
For more information, see the Vulkan Specification.
This page is a generated document. Fixes and changes should be made to the generator scripts, not directly.
Synopsis
- data AccelerationStructureGeometryLinearSweptSpheresDataNV = AccelerationStructureGeometryLinearSweptSpheresDataNV {
- vertexFormat :: Format
- vertexData :: DeviceOrHostAddressConstKHR
- vertexStride :: DeviceSize
- radiusFormat :: Format
- radiusData :: DeviceOrHostAddressConstKHR
- radiusStride :: DeviceSize
- indexType :: IndexType
- indexData :: DeviceOrHostAddressConstKHR
- indexStride :: DeviceSize
- indexingMode :: RayTracingLssIndexingModeNV
- endCapsMode :: RayTracingLssPrimitiveEndCapsModeNV
- data AccelerationStructureGeometrySpheresDataNV = AccelerationStructureGeometrySpheresDataNV {}
- data PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV = PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {}
- newtype RayTracingLssIndexingModeNV where
- newtype RayTracingLssPrimitiveEndCapsModeNV where
- type NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION = 1
- pattern NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION :: Integral a => a
- type NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME = "VK_NV_ray_tracing_linear_swept_spheres"
- pattern NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME :: (Eq a, IsString a) => a
- data DeviceOrHostAddressConstKHR
- newtype GeometryTypeKHR where
- GeometryTypeKHR Int32
- pattern GEOMETRY_TYPE_AABBS_KHR :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_SPHERES_NV :: GeometryTypeKHR
- pattern GEOMETRY_TYPE_TRIANGLES_KHR :: GeometryTypeKHR
Documentation
data AccelerationStructureGeometryLinearSweptSpheresDataNV Source #
VkAccelerationStructureGeometryLinearSweptSpheresDataNV - Structure specifying a LSS geometry in a bottom-level acceleration structure
Description
If an index buffer is not specified in indexData, LSS primitives are
rendered individually using subsequent pairs of vertices similar to
PRIMITIVE_TOPOLOGY_LINE_LIST.
Valid Usage
- The linearSweptSpheres feature must be enabled
vertexStridemust be a multiple of:- the
size of the format
specified in
vertexFormatif that format is a packed format - the
component size
specified in
vertexFormatif that format is not a packed format
- the
size of the format
specified in
-
vertexStrideandradiusStridemust be less than or equal to 232-1 -
The
format features
of
vertexFormatmust containFORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR -
The
format features
of
radiusFormatmust containFORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV -
All values referenced in
radiusDatamust be greater than or equal to0 -
If
indexingModeisRAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV,indexDatamust not beNULL -
indexTypemust beINDEX_TYPE_UINT16,INDEX_TYPE_UINT32, orINDEX_TYPE_NONE_KHR
Valid Usage (Implicit)
-
vertexFormatmust be a validFormatvalue -
vertexDatamust be a validDeviceOrHostAddressConstKHRunion -
radiusFormatmust be a validFormatvalue -
radiusDatamust be a validDeviceOrHostAddressConstKHRunion -
indexTypemust be a validIndexTypevalue -
indexDatamust be a validDeviceOrHostAddressConstKHRunion -
indexingModemust be a validRayTracingLssIndexingModeNVvalue -
endCapsModemust be a validRayTracingLssPrimitiveEndCapsModeNVvalue
See Also
VK_NV_ray_tracing_linear_swept_spheres,
DeviceOrHostAddressConstKHR,
DeviceSize,
Format,
IndexType,
RayTracingLssIndexingModeNV, RayTracingLssPrimitiveEndCapsModeNV,
StructureType
Constructors
| AccelerationStructureGeometryLinearSweptSpheresDataNV | |
Fields
| |
Instances
data AccelerationStructureGeometrySpheresDataNV Source #
VkAccelerationStructureGeometrySpheresDataNV - Structure specifying a sphere geometry in a bottom-level acceleration structure
Valid Usage
- The spheres feature must be enabled
vertexStridemust be a multiple of:- the
size of the format
specified in
vertexFormatif that format is a packed format - the smallest
component size
specified in
vertexFormatif that format is not a packed format
- the
size of the format
specified in
-
vertexStrideandradiusStridemust be less than or equal to 232-1 -
The
format features
of
vertexFormatmust containFORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR -
The
format features
of
radiusFormatmust containFORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV -
All values referenced in
radiusDatamust be greater than or equal to0 -
indexTypemust beINDEX_TYPE_UINT16,INDEX_TYPE_UINT32,INDEX_TYPE_NONE_KHR
Valid Usage (Implicit)
-
vertexFormatmust be a validFormatvalue -
vertexDatamust be a validDeviceOrHostAddressConstKHRunion -
radiusFormatmust be a validFormatvalue -
radiusDatamust be a validDeviceOrHostAddressConstKHRunion -
indexTypemust be a validIndexTypevalue -
indexDatamust be a validDeviceOrHostAddressConstKHRunion
See Also
VK_NV_ray_tracing_linear_swept_spheres,
DeviceOrHostAddressConstKHR,
DeviceSize,
Format,
IndexType,
StructureType
Constructors
| AccelerationStructureGeometrySpheresDataNV | |
Fields
| |
Instances
data PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV Source #
VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV - Structure describing the ray tracing linear swept spheres features that can be supported by an implementation
Members
This structure describes the following features:
Description
If the PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV structure
is included in the pNext chain of the
PhysicalDeviceFeatures2
structure passed to
getPhysicalDeviceFeatures2,
it is filled in to indicate whether each corresponding feature is
supported. If the application wishes to use a
Device with any features described by
PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV, it must add an
instance of the structure, with the desired feature members set to
TRUE, to the pNext chain of
DeviceCreateInfo when creating the
Device.
Valid Usage (Implicit)
See Also
VK_NV_ray_tracing_linear_swept_spheres,
Bool32,
StructureType
Constructors
| PhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV | |
Fields | |
Instances
newtype RayTracingLssIndexingModeNV Source #
VkRayTracingLssIndexingModeNV - LSS indexing mode
Description
RAY_TRACING_LSS_INDEXING_MODE_LIST_NVspecifies that a list of indices is provided where each consecutive pair of indices define a LSS primitive.
RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NVspecifies a successive implicit indexing format, in which each LSS primitive is defined by two successive positions and radii, (k, k + 1), where k is a single index provided in the index buffer. In this indexing scheme, there is a 1:1 mapping between the index buffer and primitive index within the geometry.
See Also
VK_NV_ray_tracing_linear_swept_spheres,
AccelerationStructureGeometryLinearSweptSpheresDataNV
Constructors
| RayTracingLssIndexingModeNV Int32 |
Bundled Patterns
| pattern RAY_TRACING_LSS_INDEXING_MODE_LIST_NV :: RayTracingLssIndexingModeNV | |
| pattern RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV :: RayTracingLssIndexingModeNV |
Instances
newtype RayTracingLssPrimitiveEndCapsModeNV Source #
VkRayTracingLssPrimitiveEndCapsModeNV - LSS endcaps mode
Description
RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NVdisables all endcaps and the chain boundaries have no influence.
RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NVspecifies that whenRAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NVis used as indexing mode for the LSS primitive, the first primitive in each chain will have both endcaps enabled, and every following primitive in the chain only has endcaps at the trailing position enabled.
See Also
VK_NV_ray_tracing_linear_swept_spheres,
AccelerationStructureGeometryLinearSweptSpheresDataNV
Constructors
| RayTracingLssPrimitiveEndCapsModeNV Int32 |
Bundled Patterns
| pattern RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV :: RayTracingLssPrimitiveEndCapsModeNV | |
| pattern RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV :: RayTracingLssPrimitiveEndCapsModeNV |
Instances
pattern NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION :: Integral a => a Source #
type NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME = "VK_NV_ray_tracing_linear_swept_spheres" Source #
pattern NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME :: (Eq a, IsString a) => a Source #
data DeviceOrHostAddressConstKHR Source #
Constructors
| DeviceAddressConst DeviceAddress | |
| HostAddressConst (Ptr ()) |
Instances
| Show DeviceOrHostAddressConstKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_acceleration_structure Methods showsPrec :: Int -> DeviceOrHostAddressConstKHR -> ShowS # show :: DeviceOrHostAddressConstKHR -> String # showList :: [DeviceOrHostAddressConstKHR] -> ShowS # | |
| ToCStruct DeviceOrHostAddressConstKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_acceleration_structure Methods withCStruct :: DeviceOrHostAddressConstKHR -> (Ptr DeviceOrHostAddressConstKHR -> IO b) -> IO b Source # pokeCStruct :: Ptr DeviceOrHostAddressConstKHR -> DeviceOrHostAddressConstKHR -> IO b -> IO b Source # withZeroCStruct :: (Ptr DeviceOrHostAddressConstKHR -> IO b) -> IO b Source # pokeZeroCStruct :: Ptr DeviceOrHostAddressConstKHR -> IO b -> IO b Source # cStructSize :: Int Source # | |
| Zero DeviceOrHostAddressConstKHR Source # | |
Defined in Vulkan.Extensions.VK_KHR_acceleration_structure Methods | |
newtype GeometryTypeKHR Source #
VkGeometryTypeKHR - Enum specifying which type of geometry is provided
Description
GEOMETRY_TYPE_TRIANGLES_KHRspecifies a geometry type consisting of triangles.
GEOMETRY_TYPE_AABBS_KHRspecifies a geometry type consisting of axis-aligned bounding boxes.GEOMETRY_TYPE_INSTANCES_KHRspecifies a geometry type consisting of acceleration structure instances.GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDXspecifies a geometry type consisting of triangles from compressed data.GEOMETRY_TYPE_SPHERES_NVspecifies a geometry type consisting of spheres.GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NVspecifies a geometry type consisting of linear swept spheres.
See Also
VK_KHR_acceleration_structure,
VK_NV_ray_tracing,
AccelerationStructureGeometryKHR,
GeometryNV
Constructors
| GeometryTypeKHR Int32 |
Bundled Patterns
| pattern GEOMETRY_TYPE_AABBS_KHR :: GeometryTypeKHR | |
| pattern GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX :: GeometryTypeKHR | |
| pattern GEOMETRY_TYPE_INSTANCES_KHR :: GeometryTypeKHR | |
| pattern GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV :: GeometryTypeKHR | |
| pattern GEOMETRY_TYPE_SPHERES_NV :: GeometryTypeKHR | |
| pattern GEOMETRY_TYPE_TRIANGLES_KHR :: GeometryTypeKHR |