Chrisname was right, I'll continue to only speak in the context of Direct3D, instead of DirectX as a whole.
The Geometry Pipeline is a major feature that was added to D3D10, which enables generation (not just transformation) of vertex data on the fly. In concept, you can generate an entire scene on the graphics card without having to store anything in RAM (except the most basic of DirectX interfaces and utilities, of course.)
Multi-threaded rendering (... sort of, look here:
http://msdn.microsoft.com/en-us/library/windows/desktop/ff476892(v=vs.85).aspx) is advantageous for complex scenes due to the overhead of immediate, blocking state changes that would otherwise have to be endured.
I'm pretty sure the Source engine (Valve's game engine) has an OpenGL backend. It looks just fine while rendering relatively complex scenes. |
The first things that come to mind are Portal 2 and Left 4 Dead, which aren't too complex compared to many of the other AAA games that I've seen.
An additional benefit of using Direct3D over OpenGL is that you can be
sure that features are available, since iterations of Direct3D aren't released as frequently as OpenGL. In a personal project, we have to determine which API we're able to use at runtime, which is a hassle when you can't use GLEW (it messes up our project configuration, unfortunately.) With DirectX, you can be guaranteed that you'll be using a given API because you have to explicitly state which version you're using.
But I'm not saying that Direct3D is
better. OpenGL's API is MUCH simpler, requires less pointless (at least, in the applications I've written) configuration, is cross-platform, and requires much less setup. Writing multiple rendering backends for Direct3D can be a real chore, considering how you're not guaranteed to have a similar interface between version iterations. The jump from Direct3D 9 to Direct3D 10 brought nearly an entirely new API. In many applications, OpenGL is enough. But for scenes requiring complex operations, Direct3D provides tools that make the job more feasible on less capable hardware, due to the control and low-level utilities it provides. Sure, OpenGL can still render the same things that Direct3D can, but the performance difference can be significant depending on the API used, the exclusive technologies and optimizations employed, and the overall complexity of the scene being rendered.
(Also, this is not a comprehensive comparison (if that wasn't already obvious) but a snippet of the capabilities that I am aware of. I do not have much experience with Direct3D itself as many of my projects use OpenGL, but my experience comes from theoretical discussion, game development books that are available to me, and various source code and demos that I have skimmed through.)