VkPrimitiveTopology(3)
C Specification
The primitive topologies defined byVkPrimitiveTopology are:
// Provided by VK_VERSION_1_0typedef enum VkPrimitiveTopology { VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,} VkPrimitiveTopology;Description
VK_PRIMITIVE_TOPOLOGY_POINT_LIST specifies a series ofseparate point primitives.
VK_PRIMITIVE_TOPOLOGY_LINE_LIST specifies a series ofseparate line primitives.
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP specifies a series ofconnected line primitives with consecutive linessharing a vertex.
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST specifies a series ofseparate triangle primitives.
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP specifies a series ofconnected triangle primitives withconsecutive triangles sharing an edge.
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN specifies a series ofconnected triangle primitives with alltriangles sharing a common vertex.If the
VK_KHR_portability_subsetextension is enabled, andVkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFansisVK_FALSE, then triangle fans are not supported by theimplementation, andVK_PRIMITIVE_TOPOLOGY_TRIANGLE_FANmust notbe used.VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY specifies a seriesofseparate line primitives with adjacency.
VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY specifies a seriesofconnected line primitives with adjacency, with consecutive primitives sharing three vertices.
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY specifies aseries ofseparate triangle primitives with adjacency.
VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY specifiesconnected triangle primitives with adjacency, with consecutive triangles sharing an edge.
VK_PRIMITIVE_TOPOLOGY_PATCH_LIST specifiesseparate patch primitives.
Each primitive topology, and its construction from a list of vertices, isdescribed in detail below with a supporting diagram, according to thefollowing key:
Vertex | A point in 3-dimensional space. Positions chosen within the diagrams are arbitrary and for illustration only. | |
Vertex Number | Sequence position of a vertex within the provided vertex data. | |
Provoking Vertex | Provoking vertex within the main primitive. The tail is angled towards the relevant primitive. Used inflat shading. | |
Primitive Edge | An edge connecting the points of a main primitive. | |
Adjacency Edge | Points connected by these lines do not contribute to a main primitive, and are only accessible in ageometry shader. | |
Winding Order | The relative order in which vertices are defined within a primitive, used in thefacing determination. This ordering has no specific start or end point. |
The diagrams are supported with mathematical definitions where the vertices(v) and primitives (p) are numbered starting from0;v0 is the first vertex in the provided data andp0 is thefirst primitive in the set of primitives defined by the vertices andtopology.
Document Notes
For more information, see theVulkan Specification.
This page is extracted from the Vulkan Specification.Fixes and changes should be made to the Specification, not directly.