JMU
An Overview of the Rendering Pipeline
In "Modern" OpenGL


Prof. David Bernstein
James Madison University

Computer Science Department
bernstdh@jmu.edu


Introduction
The Programmer's Responsibilities
  1. Specification of the Vertices
  2. Implementation of the Vertex Shader
  3. Implementation of the Tesselation Shaders (Optional)
  4. Implementation of the Geometry Shader (Optional)
  5. Implementation of the Fragment Shader
  6. Initiation of the Rendering Process
The Pipeline
  1. Vertex Processing:
    1. Each vertex is processed by a vertex shader
    2. Each vertex may be processed by a tesselation control shader and tesselation evaluation shader
    3. Each vertex may be processed by a geometry shader
  2. Vertex Post-Processing:
    1. Transform feedback
    2. Clipping and transformation to window space
  3. Assembly of Primitives
  4. Generation of Fragments (i.e., Rasterization)
  5. Fragment Processing
  6. Per-Sample Processing:
    1. Scissor, Stencil and Depth Tests
    2. Blending
    3. Logical Operations and Write Masks
    4. Others
Vertex Specification
Vertex Rendering
The Necessary Shaders