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.
Understand how images appear on screen: pixels, color models, rasterization, frame buffers, and refresh rates.
Study essential math: vectors, matrices, dot/cross product, linear transformations, trigonometry.
Resource: Understanding the View Matrix
Start working with SDL2 to handle windowing, keyboard/mouse input, and basic 2D drawing.
Tutorials: Lazy Foo's SDL2 Tutorials
Create small applications to practice: drawing shapes, sprite animation, basic paint clone or 2D game demo.
Learn about 3D coordinates, transformations, camera/view matrix, projection, and depth buffering.
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
Understand GLSL, vertex and fragment shaders, lighting models like Phong and Blinn-Phong, and how to apply textures and shadows.