Attualmente sto lavorando a un progetto personale con le OpenGL, dato che ambisco a programmare videogiochi da ormai parecchi anni
Sono molto lontano dall'essere un mito, ma qualcosa la so fare.
Io programmo in C/C++ (per il progetto in questione, in C), tu potresti voler usare un altro linguaggio. Come compilatore, GCC per me è insostituibile, ho avuto esperienza con GCC, TinyC, MSVC (bleah) e un paio d'altri compilatori (ma solo per test di compatibilità), GCC li ha sempre stracciati, anche se devi avere esperienza per sfruttare appieno le sue ottimizzazioni, che non sempre sono automatiche come con altri compilatori.
Di manuali ce ne sono a bizzeffe, io bazzico spesso sui siti della Nvidia e dell'ATI che hanno ottime risorse gratuite per i programmatori, poi ci sono i tipici manuali standard delle OpenGL, in particolare il Red Book, che contengono le basi per la loro programmazione.
Se vuoi programmare con le OpenGL in C/C++ devi anzitutto conoscere molto bene i linguaggi, avere
moltissima pazienza, prepararti a fare test sulla performance e di compatibilità su varie schede video (quello che funziona su una Nvidia non è detto che funzioni su una ATI), In più devi imparare ad usare il GLSL (linguaggio per gli shader dell'OpenGL), di quest'ultimo devi conoscerne vari "standard", dato che cambia spesso a seconda dell'implementazione delle OpenGL, naturalmente questo lo devi fare se intendi avere retrocompatibilità con schede video più vecchie.
Sia gli standard aggiornati che i manuali per il GLSL sono reperibili online.
I principi di programmazione, la teoria e la pratica che devi avere variano, ovviamente, dal progetto a cui sei interessato a lavorare, in generale è bene avere una buona conoscenza dell'algebra (matrici, vettori, trasformazioni, etc...).