

glPushMatrix();
glTranslatef(250,250,0.0); // 3. Translate to the object's position.
glRotatef(angle,0.0,0.0,1.0); // 2. Rotate the object.
glTranslatef(-250,-250,0.0); // 1. Translate to the origin.
glPopMatrix();
Perspective projection
Orthographic projection


Sprite animation

Skeletal 2D

Skeletal 3D

Vertex


No interpolation

Constant

Bilinar

Cubic




Z-Fighting

Cube Tessellation

Geometry shader grass

Screen effects
#version 150 core
layout(points) in;
layout(line_strip, max_vertices = 11) out;
in vec3 vColor[];
out vec3 fColor;
const float PI = 3.1415926;
void main() {
fColor = vColor[0];
for (int i = 0; i <= 10; i++) {
// Angle between each side in radians
float ang = PI * 2.0 / 10.0 * i;
// Offset from center of point (0.3 to accomodate for aspect ratio)
vec4 offset = vec4(cos(ang) * 0.3, -sin(ang) * 0.4, 0.0, 0.0);
gl_Position = gl_in[0].gl_Position + offset;
EmitVertex();
}
EndPrimitive();
}
Rasterization
Ray Tracing

Motion blur

Chromatic Aberration

Decals

Depth of field

Caustics

Lens flare

Subsurface Scattering

Ambient Occlusion

Texture mapping






Color texture

Normal texture

Displacement texture

Color mapping

Color + disp + normal

Nearesth neighbor

Anisotropic

Bilinear

Trilinear

Not even death can save you from me!Diablo 2