Le redbook est essentiel en OpenGL.
Le bluebook (OpenGL reference Manual) est utile aussi, mais je crois qu'il n'est pas encore sorti en OpenGL 1.2. Tu peux t'en passer en utilisant les headers C, mais l'avantage est d'avoir les references pour les constantes utilisées par les fonctions.
L'indispensable c'est GLUT: c'est un toolkit qui te permet de programmer rapidement en opengl quelquesoit ta plateforme. Ca marche très bien sous win, linux, beos, sgi etc...
Quand aux maths, en fait c'est juste de la géometrie et de l'algèbre de base, rien de très compliqué en fait.
Toute les infos sont sur: http://www.opengl.org
Et direct3D? ben oublie un peu, tu vas passer des heures a essayer de compiler les exemples du SDK (qu'il te faudra obtenir ou télécharger). Plus de milles lignes de C++ pour afficher un cube qui tourne... Bref, aprends les bases sous OpenGL, puis passe sous D3D si tu en a besoin... De plus DX8 se raproche de plus en plus de OpenGL. La seule utilitée c'est pour directinput ou directsound, mais la aussi y'a d'autres API plus simples (SDL, OpenAL, la future OpenML) et multiplateformes.