Vertex Processing

From OpenGL.org
Jump to: navigation, search

Vertex Processing is the stage of the OpenGL rendering pipeline where a sequence of vertices are processed via a series of Shaders.

Vertex Shader

The vertex shader is the programmable stage in the rendering pipeline that handles the processing of individual vertices. A vertex shader receives a single vertex composed of a series of Vertex Attributes. This input vertex is processed arbitrarily to produce an output vertex. There must be a 1:1 mapping from input vertices to output vertices.

Tessellation

This stage takes the vertices output from the previous stage, pulls them into primitives, and tessellates those primitives based on shader logic and a fixed-function tessellation system. It is optional; if no tessellation evaluation shader exists, then the outputs from the vertex shader are passed to the next stage.

Geometry Shader

A geometry shader (GS) is a Shader program that governs the processing of primitives. A GS can create new primitives, unlike vertex shaders, which are limited to a 1:1 input to output ratio. A GS can also perform layered rendering, where different primitives can be rendered to different attached layered images.

The GS is optional; if it is not present, primitives passed from prior stages are given to the next stage directly.