I've used both, though it's been a few years since I dabbled with OpenGL. I prefer Direct3D (it's not called DirectX any more after most of the technologies that were part of that package got obsoleted, such as DirectDraw, DirectPlay and DirectInput) for many reasons:
- It's easier to use and much, MUCH better documented.
- It's way better supported and updated regularly. Using OpenGL leaves you open to risks from lack of driver support, something that is very hard to test for.
- The 360 also uses a variation of Direct3D, which makes porting between PC and 360 relatively simple.
- Converting a Direct3D application to Mac is a breeze using 3rd party converters. Many large companies do this, and it only takes them anywhere from a few hours to a few days of extra work. Using OpenGL would bring the risk of using many months more development time because of the lack of support and documentation.
- No consoles support OpenGL in the first place.
- The Linux gamer market is so incredibly small that it's not worth risking the use of less supported technology to reach out to it.
- Much to the annoyance of Microsoft haters worldwide, Direct3D innovates while OpenGL imitates (at least at this point in their history. It used to be different, but times change).
- If you want to assemble a team of top-notch OpenGL programmers for a new game, you'll have a much, much smaller pool of applicants than if you were to use Direct3D programmers.
Sorry if this got a little incoherent. I'm suffering from the flu.