OpenGL 3 & DirectX 11: The War Is Over

Given the prevalence of DirectX nowadays, we tend to forget that 10 years ago an all-out war was being waged between Microsoft and Silicon Graphics in the field of 3D APIs. The two companies were both trying to win over developers, with Microsoft using its financial muscle and SGI relying on its experience and its reputation in the field of real-time 3D. In this modern David-versus-Goliath battle, the “little guy” won a precious ally in one of the most famous game developers–-Mr. John Carmack. In part due to the success of the Quake engine, solid support for OpenGL became important enough to motivate makers of 3D cards to provide complete drivers. In fact, it gave 3dfx one of its early advantages and knocked ATI to the back of the pack as it struggled with its OpenGL support.

Meanwhile, Microsoft was starting from scratch, and the learning curve was steep. So, for several years, Direct3D’s capabilities were beyond the curve, with an interface that many programmers found a lot more confusing than OpenGL’s. But nobody can accuse Microsoft of being easily discouraged. With each new version of Direct3D, it gradually began to catch up with OpenGL. The engineers in Redmond worked very hard to bring performance up to its rival API’s level.

A turning point was reached with DirectX 8, released in 2001. For the first time, Microsoft’s API did more than just copy from SGI. It actually introduced innovations of its own like support for vertex and pixel shaders. SGI, whose main source of revenue was the sale of expensive 3D workstations, was in a bad position, having failed to foresee that the explosion of 3D cards for gamers would prompt ATI and Nvidia to move into the professional market with prices so low (due to economies of scale) that SGI couldn’t keep up. OpenGL’s development was also handicapped by bitter disputes among its proponents. Since the ARB—the group in charge of ratifying the API’s development—included many different, competing companies, it was hard to reach agreement on the features to be added to the API. Instead, each company promoted its own agenda. Conversely, Microsoft was working solely with ATI and Nvidia, using its weight to cast a deciding vote if there was disagreement.

With DirectX 9, Microsoft managed to strike a decisive victory, imposing its API on developers. Only John Carmack and those who insisted on portability remained faithful to OpenGL. But their ranks dwindled. And yet a reversal of fortunes was still possible. It had happened with Web browsers, after all. Even when a company has maneuvered itself into a near monopoly, if it rests on its laurels, it’s not all that rare for a competitor to rise from his ashes. So when the Khronos group took over OpenGL two years ago, many hopes were rekindled with all eyes on the upcoming SIGGRAPH conference that year.

Last month, Khronos was to have announced OpenGL 3, a major revision of the API that’s supposed to catch up with Microsoft, which was also scheduled to launch its next-gen DirectX 11 API. But things didn’t really go as planned.

Create a new thread in the UK Article comments forum about this subject
This thread is closed for comments
Comment from the forums
    Your comment
  • mi1ez
    So, is the tesselation stage similar to AF or bi/trilinear filtering?
  • 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.
  • 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.
  • Anonymous
    Direct3D remains utterly irrelevant to me as a Linux user.
  • 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.

  • 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.
  • Scooby2
    adding more triangles

    It breaks down the existing geometry into smaller triangles. (most 3d models are built out of triangles to begin with)
  • 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...
  • 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.
  • 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.
  • 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.