Re: opengl vs directx
DirectX is a closed API of Microsoft so you can code only for Windows.
OpenGL as I know is easier to learn than DirectX and with the 2.0 revision it is as powerfull as Dx so it is compatible with the shading language.
If you look for a not only Graphics API then you can try SDL that uses OpenGL for graphics and makes easy to code sound, input, cdrom access, etc.
OpenGL is also more professional as the biggest companies make use of it.
OpenGL is totally portable to Unix environments like Linux but also Mac, which it means you can make an application and then release a version for other O.S.
There are lots of easy tutorials all over the net. One good place to learn is nehe.gamedev.net .
OpenGL comes with the most common compilers. Borland, VC, MinGW, gcc.
I really don't see any reasons to code in DirectX rather than OpenGL.