Computer Graphics Roadmap (C/C++)

This roadmap helps learners understand and build strong foundations in computer graphics using C or C++. It progresses from simple 2D graphics to advanced 3D rendering with libraries like SDL, OpenGL, and alternatives.

Note: This roadmap assumes you already have basic knowledge of C or C++. If that's the case, you're ready to begin!

Coordinate 1: Fundamentals of Graphics

Understand how images appear on screen: pixels, color models, rasterization, frame buffers, and refresh rates.

Coordinate 2: Math for Graphics ← Click For More

Study essential math: vectors, matrices, dot/cross product, linear transformations, trigonometry.

Resource: Understanding the View Matrix

Coordinate 3: Introduction to SDL

Start working with SDL2 to handle windowing, keyboard/mouse input, and basic 2D drawing.

Tutorials: Lazy Foo's SDL2 Tutorials

Coordinate 4: 2D Graphics Projects

Create small applications to practice: drawing shapes, sprite animation, basic paint clone or 2D game demo.

Coordinate 5: Basics of 3D Graphics

Learn about 3D coordinates, transformations, camera/view matrix, projection, and depth buffering.

Coordinate 6: OpenGL and Alternatives

Move to OpenGL for real-time 3D graphics programming.
Learn rendering pipeline, VBOs, VAOs, shaders, lighting, and texturing.
If you're new, start with GLUT or FreeGLUT as simpler alternatives to manage OpenGL contexts.

OpenGL Resource: LearnOpenGL.com
GLUT Guide: Official GLUT Info

Coordinate 7: Shaders and Lighting

Understand GLSL, vertex and fragment shaders, lighting models like Phong and Blinn-Phong, and how to apply textures and shadows.