OpenGL 3 & DirectX 11: The War Is Over

Direct3D 11

With Direct3D 10, Microsoft made the most sweeping revision of its API since its creation. Admittedly, all those years of compatibility were beginning to handicap the evolution of its API and the goal was to provide a sound foundation for future developments. Yet, the new programming interface received a mixed reception from gamers and developers alike.

Microsoft is largely to blame. After hyping the merits of its API for several years before it was actually available, surely it had to expect a certain amount of discontent when gamers realized that the actual product didn’t really change much for them. Add to that the fact that the new API was written exclusively for Vista, and it was enough to generate animosity toward what had been presented as nothing less than a small revolution. As for developers, things were even more complicated. By associating Direct3D 10 and Vista, Microsoft greatly limited the number of existing computers that would be able to run a game using the API.

Further—and this is no secret for anybody—the PC as a gaming platform has lost ground in recent years with the emergence of the new consoles, to which several major developers from the PC world have now switched. id Software, Epic, and Lionhead are now all working on multi-platform projects, if not developing exclusively for consoles. And since both HD consoles on the market use a DirectX 9 GPU, developers have all the motivation they need to stick with the previous MS API.

So why are we talking about Direct3D 11 now? First of all, because Microsoft has finally lifted the veil from its API and because, after all, it’s still a newsworthy event—one that’ll give us an idea of what to expect from next year’s hardware. And what’s more, there’s a good chance that Direct3D 11 will prove to be a more important page in the history of the API than version 10 was. While Direct3D 10 was a complete revision, with all the risks that entails, Microsoft has now put enough distance between it and this new version to correct the problems raised by the first major overhaul of its API. So you could call Direct3D 11 a major update, albeit an incremental one. It re-uses all the concepts that were introduced with Direct3D 10, and is compatible with the preceding version and with the preceding generation’s hardware. And finally, it’ll be available not only on Windows 7, but also on Vista. So Microsoft has corrected the biggest problems with the preceding version and it’s being whispered among developers that some of them are skipping Direct3D 10 and moving directly to version 11 for their future games.

That rationale holds water for several reasons. A typical game’s development phase is between two and four years. So by the time a game that is just now starting its development phase is released, Direct3D 11 will be already well established for PCs, since it’ll run on all PCs shipped with Windows 7 and work on the great majority of PCs running Vista. And, it seems very probable that regardless of their release dates, future consoles will use Direct3D 11-compatible GPUs (or something close, like the Xenos in the Xbox 360, which is a superset of DirectX 9). Consequently, aiming at that level of functionality will enable developers to get the jump on the next generation of consoles. But we aren’t here to do a market study. What does the new API bring with it from a technical point of view?

Create a new thread in the UK Article comments forum about this subject
This thread is closed for comments
11 comments
Comment from the forums
    Your comment
  • mi1ez
    So, is the tesselation stage similar to AF or bi/trilinear filtering?
    0
  • JDocs
    Tesselation, from what I've seen, takes a simple model intended for say a 4650 and "upgrades" it in memory making it more complicated and details for higher end cards. If I understand this correctly it will drastically reduce development time and costs while increasing visual quality.
    0
  • Anonymous
    Hmm, not sure about "upgrading" in memory. I looks like it just lets you pass in the control points that define your geometry rather than passing in all vertices for the mesh, which you yourself would probably have defined in a similar manner anyway.
    0
  • Anonymous
    Direct3D remains utterly irrelevant to me as a Linux user.
    0
  • bobwya
    shrugDirect3D remains utterly irrelevant to me as a Linux user.


    But it is relevant to a lot of GNU/Linux users as the Wine programmers have to compatiblise what M$ implements in their 3D API... Currently they are making a dogs dinner of DirectX 9.0 support. However Windows games are generally well supported if they have an OpenGL option... Far Cry for example will not render under Wine in DirectX mode but when switched to OpenGL it works very well.

    It is sad to hear about the difficulties OpenGL is having therefore.

    Bob
    0
  • Scooby2
    Tessellation as far as I'm aware is adding more triangles to a model to give smoother surfaces over curves. It does not add any visual details but does add to the complexity of the model.
    0
  • Scooby2
    Quote:
    adding more triangles


    It breaks down the existing geometry into smaller triangles. (most 3d models are built out of triangles to begin with)
    0
  • mayones
    Very good aricle, thanks! I'm an OpenGL developer as well, and I wish it the best. I think that now, OpenGL needs money and commercial support - unfortunately these are the rights of current world. It would be a shame to have only one modern 3D API...
    0
  • marmot
    "the professional market, where OpenGL is the standard"
    what market are you talking about? Please detail. Your readers are mostly common computer users, not specialsts knowing in-depth details about the computer graphics market.

    "Since the ARB—the group in charge of ratifying the API’s development—included many different, competing companies.."
    What are the most important members of this ARB? Whose words have big weight in that group? The readers might be curious - who are the people generating the conflicts that slow down the OpenGL evolution?

    And by the way, why ATI and nVidia don't just take care about OpenGL and ignore that silly ARB? If they can't because of patents and such, they should make a new API from the scratch. Im pretty sure they are more than capable of it.
    0
  • sckoobs
    The problem with OpenGL is that industry users (e.g. CAD and scientific users) are opposed to change in the API which is blatantly against the ethos of the games development community. Industry users have already spent a lot of money on the OpenGL apps, so naturally they don't want the features they use to die. I think that what Khronos has done to date is the most logical route to take given the constraints they are working within.

    The ideal solution would be to cut any ties that lead to a conflict of interest and pursue untainted API refreshes as they had originally promised.

    As a cross-platform developer I want OpenGL to be a true competitor to D3D, I don't use anywhere near the full feature set of what current versions provide but if it looses at the top end, support will dwindle and the bottom end will also be affected.
    0
  • khelben1979
    If OpenGL even have a chance of competing against DirectX 10, then I'm more than impressed! OpenGL is the way to go for Linux and I and many others with me would like to use Linux as an gaming platform instead of Windows.

    I'm very tired of using Windows and I don't like the operating system. It works, but it isn't very fun, unlike Linux which IS a enjoyable experience and feels fast even on old computer hardware, unlike Windows which never get the power it needs.
    0