SDL handles the actual graphics of the window/screen. It draws the pixels, etc. SDL works in a two-dimensional universe, because computer screens are two-dimensional. You can do cool stuff in SDL, but it works best for two-dimensional games, like Pac-Man. OpenGL handles the 3-d stuff. OpenGL at its most basic is a Matrix library. It handles basic translations, rotations, and projections of 3-d objects onto a two-dimensional plane. (the computer screen). It handles the math for you. So you don't have to (all that much). It uses trignometry and matrix operations, built-in, you don't have to use them yourself all that much. When you use OpenGL, you need to add a couple more libraries: opengl32.lib and glu32.lib . You probably already have them on your machine. The 3-dimensional space used by OpenGl: Usually the origin (0,0,0) is at the center (but you can change perspective). Positive x is to the right; negative x is to the left. Positive y is up. Negative y is down. Positive z axis is toward you. Negative is z is away from you. OpenGL graphics follow the right-hand rule. Most 3D graphics libraries do (not all).