DirectX versus OpenGL
My 2 cents worth

Which is Better?
Which One Should I Use?

This "religious" issue has been debated several times in the OpenGL and DirectX newsgroups.  Go to www.deja.com and search the news groups for responses to these questions.  You will find 100's of rational (and irrational) answers that should steer you in the right direction.

My suggestion is to look for examples on the Internet.  There are a lot out there.  Download and experiment with the ones that look interesting to you.  Compare the 2 APIs and decide which one best meets your requirements.  Make your own decision based upon your own requirements.

What Are the Differences?

Many.  The important ones are...

DirectX is a game development SDK controlled by Microsoft.  It supports many features; including 2D graphics, 3D graphics, sound, input devices, multiplayer support, etc.  DirectX changes significantly with each new release; however, old functions are always supported for backwards compatibility.  DirectX is only supported on Microsoft operating systems and the XBox.  It is difficult to learn and master.  The 3rd party documentation and tutorials are not always helpful.  DirectX is supported by almost all major vendors.  The majority of commercial games on the market are developed with DirectX; an important consideration if you want to make a career out of writing video games.  

OpenGL is a 2D/3D graphics API controlled by the OpenGL ARB.  It is strictly a graphics API.  You can combine OpenGL with other commercial/freeware products to make video games.  OpenGL is OS independent.  It currently works on MS Windows, LINUX, UNIX, VAX/VMS, O/S2, and Apple.  A 3rd party library, called GLUT, allows developers to compile, link, and run OpenGL applications on any platform using the same source code.  OpenGL is very stable.  In my opinion. it is easier to learn and use.  The 3rd party documentation and tutorials are excellent.  Graphics card vendor support for OpenGL varies significantly.  The OpenGL32.DLL distributed by Microsoft supports version 1.1 of OpenGL.  Graphics card vendors are adding 1.2 and 1.3, as well as custom extensions, to OpenGL.  See the vendors web site for additional details.   There are a few major video games (Quake, DOOM, and Hexen) that were written with OpenGL.

All of my experience with DirectX was with version 5.  Versions 7 and 8 are much easier to use (according to messages on the newsgroups).

Recent versions of Direct3D have added beneficial features/functions (scene graphs, LOD switching, 3D file format loading, etc.) that OpenGL may never have.  These features make it attractive to developers who don't mind using "canned" solutions.  These canned solutions may not be optimal solutions, but they let you "get the job done."   

Phil McRevis has a detailed list of differences between OpenGL and DirectX.  GameDev.net has published an unbiased comparison.  Links to other web sites that contain examples, tutorials, and additional information can be found on my links page.

What Do I Use? (as if it really matters)

OpenGL.  I am interested in visualizing 3D virtual environments.  I tend to use well documented, stable software APIs (unless my dictator demands boss asks otherwise).  I do not need the additional game features supported by DirectX.  OpenGL was the obvious choice. 

Other factors were 1) I was developing software on NT platforms which did not support DX versions greater than 3, and 2) I use an Intense3D 4110 graphics card which does not support DirectX   Sigh, what a shame ;-).