OpenGL — Graphics Programming

At highlevel, the graphics pipeline works as follows

1) Geometry of the 3D Model is described .

2) The geometry is divided into triangles. Transformations are applied to the model (i.e triangles of the model) are called Model Transforms

3) We have a virtual camera corresponding to eye. The transformation applied on the camera are called View Transforms

4) To give a 3D effect, perspective projection is applied which converts the 3D model to 2D space. These are called Projection Transforms

5) Model View Projection Transformations transform the objects and put them into screen space. These are described by MVP matrices

6) Rasterize the triangles to get the pixels( they are called fragments till you get to the final stage)

7) Fragments are shaded. It can be as simple as using interpolated color or complex (Apply lighting and texturing to get realism)

8) Fragments are combined(blended) to get a single pixel. The combination can be any arbitary operation like blending or as simple as displaying the closest pixel to the observer . This blending phase combine the fragments generated by (possibly several primitives that overlapped and compute final color

At a very highlevel, the graphics pipeline does the following

1. Transformation — Transform the geometry to Screen space

2. Rasterization — Rasterize the pixels(or fragments)

3. Applying Lighting and Texturing

4. Blend the fragments to single color.

5. Shaders are user defined code used to customize the pipeline