Table of Contents

Introduction

We'll be talking about what these tutorials will cover and what they're designed to do.

Lesson 01

Hello OpenGL

Here we set up an OpenGL window using freeGLUT and render a quad to the screen.

Lesson 02

Matrices and Coloring Polygons

Here we learn how to set up our rendering coordinates and give color to our polygons. We'll also go over the very basics of how a GPU pipeline works.

Lesson 03

The Viewport

Here we learn how to control where on our screen we want OpenGL to render using the viewport.

Lesson 04

Scrolling and the Matrix Stack

In many if not most games, the game environments are larger than one screen. Here we'll learn to scroll through large environments.

Lesson 05

Texture Mapping and Pixel Manipulation

If you want to do 2D images in OpenGL, you want to use textured quads. Here we'll apply a checkerboard texture to our geometry.

Lesson 06

Loading a Texture

We created a texture from memory, now we'll load a texture from a file using DevIL.

Lesson 07

Clipping Textures

Often times multiple images are put onto one texture. Here we'll render a part of a texture.

Lesson 08

Non-Power-of-Two Textures

Here we'll render an image that doesn't have power of two dimensions.

Lesson 09

Updating Textures

Here we'll update a texture's pixels after creating it.

Lesson 10

Color Keying and Blending

In this lesson we'll give our image a transparent background and blend our image with the background.

Lesson 11

Stretching and Filters

Here we'll learn to stretch our texture to different sizes.

Lesson 12

Rotation

In this lesson, we'll make a texture rotate to make it spin.

Lesson 13

Matrix Transformations

Here we'll learn better way to stretch and rotate our textured quads using matrices.

Lesson 14

Repeating Textures

Here we'll show the same texture multiple times on the same quad.

Lesson 15

Extensions and GLEW

Here we'll get the latest OpenGL functionality using GLEW to get the OpenGL extensions.

Lesson 16

Vertex Arrays

Here we'll send vertex data to the GPU in sets instead of one by one using vertex arrays.

Lesson 17

Vertex Buffer Objects

In this tutorial, we'll store our vertex data on the GPU for drawing.

Lesson 18

Textured Vertex Buffers

Here we'll render our textured quad as a VBO.

Lesson 19

Sprite Sheets

Here we'll preallocate our vertex/index data for all of our sprites.

Lesson 20

Bitmap Fonts

Bitmap fonts are a basic way to render text to the screen.

Lesson 21

Alpha Textures

Up until now we've always used 32bit RGBA textures. In this tutorial we'll make a special type of texture that only has an alpha component.

Lesson 22

Texture Blitting and Texture Padding

Time to do some more advanced pixel manipulation to copy textures and manually pad them.

Lesson 23

FreeType Fonts

Here we'll render text using a True Type font.

Lesson 24

Text Alignment

Learn how to align your text to the top/bottom/left/right of whatever area you define.

Lesson 25

Transforming Text

Here we'll apply matrix transformations to text.

Lesson 26

The Stencil Buffer

Using the stencil buffer, you can define the portions of the screen you want to render to with geometry.

Lesson 27

Frame Buffer Objects and Render to Texture

Using frame buffer objects, you can render off screen. Here, we're going to render to an off screen frame buffer to render to a texture.

Lesson 28

Antialiasing and Multisampling

Tired of jaggies on your polygons? Using antialiasing and multisampling you can smooth out those edges.

Lesson 29

Hello GLSL

Modern OpenGL does its graphics operations with programmable pipelines. This tutorial will get you started with your first GLSL shader program.

Lesson 30

Loading Text File Shaders

Why recompile code you don't have to? In this tutorial we'll be loading our GLSL shader source code from an external file.

Lesson 31

GLSL Matrices, Color, and Uniforms

In this tutorial we'll be interfacing our OpenGL application with our shader programs using uniforms.

Lesson 32

GLM Matrices

We'll be using the GL Math library to help with matrix operations for modern OpenGL applications.

Lesson 33

Multi-Color Polygons and Attributes

Using attributes we can have custom per-vertex variables in our shader to draw a polygon with per-vertex coloring.

Lesson 34

GLSL Texturing

We'll finally use textures in our GLSL shader programs.

Lesson 35

GLSL Font

We'll be using a GLSL shader program to render fonts.

Lesson 36

Vertex Array Objects

We'll be binding all our vertex attributes to a single vertex array object.