Was OpenGL und DirectX angeht: DirectX ist objektorientiert, und zwar mit COM. Das heißt, du solltest grundlegend COM kapiert haben, bevor du mit DirectX anfängst. Dafür werden alle DirectX-Komponenten auf dieselbe Weise angesteuert. OpenGL hingegen ist prozedural aufgebaut und enthält nur eine Grafikkomponente.
Ich kann für OpenGL zusätzlich
nehe.gamedev.net empfehlen und für DirectX vielleicht noch
www.neobrothers.de. Wenn du dir ein paar Tutoriale angeschaut hast, kannst du vielleicht einfacher entscheiden, welcher Programmierstil dir besser gefällt. Ich persönlich mag DirectX viel lieber als OpenGL...
Ob du direkt mit einer 3D-Engine einsteigst oder lieber alles selbst machst, ist auch Geschmackssache. Der Lerneffekt ist sicherlich größer, wenn du alles von Hand machst, aber ebenso der Aufwand.
Generell kann ich dir
www.gamedev.net und
www.gamasutra.com nahelegen, beide sind sehr gute Spieleentwicklerseiten, wobei vor allem ersterer mehr für Einsteiger geeignet ist, wie ich finde. Und dann gibt's noch Delphi3d.net und flipcode.com.
Wenn NULL besonders groß ist, ist es fast schon wie ein bisschen eins.