Bon... La théorie du rendering 3D est un sujet très complexe, que je ne maîtrise pas assez bien pour écrire un article de 15 pages dessus, alors en attendant,
tu peux commencer ici. Sinon, tu peux aussi aller chez id Software télécharger les sources de
Wolfenstein 3D,
Doom, et
Quake 1 à 3. Bon appétit.
En gros, ce que fait un moteur 3D, c'est calculer à chaque image une projection sur un plan (l'écran) d'une partie d'un espace tridimensionnel, généralement définie par une pyramide tronquée ou un parallélépipède. Ca se fait principalement avec des calculs matriciels.
Pour l'accélération des calculs, c'est simple à comprendre si tu sais comment fonctionne un ordinateur. Le processeur ne calcule pas, il exécute des instructions. Ce faisant, il communique avec le reste du hardware de l'ordinateur (sans quoi il ne servirait pas à grand-chose: même les lectures/écritures en RAM sont des communications avec le hard). Quand tu appelles une fonction OpenGL, le processeur envoie des instructions à la carte graphique, qui se charge de les exécuter. C'est exactement la même chose que quand tu utilises une calculatrice: tu lui donnes l'opération, et elle l'effectue à ta place.
Oh, et très honnêtement, coder un renderer 3D en partant de zéro est un travail long, compliqué, chiant et inutile. Si tu veux programmer des jeux, commence par apprendre à programmer, à designer des programmes (une toute autre paire de manches), et enfin à utiliser quelques API et frameworks "standard", comme
SDL.
(notez -- fait suffisamment rare pour qu'il mérite d'être signalé -- que ce post tient entièrement sur votre écran!)