Which is better, DirectX or OpenGL?

Apr 22
08:13

2009

Sandra Prior

Sandra Prior

  • Share this article on Facebook
  • Share this article on Twitter
  • Share this article on Linkedin

Highly underrated, the PC release of The Chronicles of Riddick, Escape from Butcher Bay was set up to make use of the OpenGL standard.

mediaimage

Way back in the day,Which is better, DirectX or OpenGL? Articles games were developed with both DirectX and OpenGL in mind. When Unreal and Unreal Tournament were the best in FPS gaming, OpenGL reigned supreme as far as looks went. Coders of the open source API seemed to have a gift for rendering much better-looking textures with D3D looking like a sub-standard copy. It has been argued that hardware built specifically to exploit OpenGL had more potential than its DirectX-based counterparts.

What is known for sure is that OpenGL was the king of the APIs for quite some time. Developers were not too pleased with the way that early versions of DirectX needlessly complicated the manner in which they performed tasks, bogging down the API with activity that could be better employed elsewhere. The difference between the two APIs was highly noticeable here, with D3D functions having to shut down in order to send information to the kernel. OpenGL's single function calls focused on the meat of the issue as it were and pushed everything it could into recreating the best graphics possible. It did so by allowing commands and calls to be buffered and slotted in at the relevant times, eliminating needless downtime.

Battle raged back and forth for some time between DirectX and OpenGL, right up until the time DirectX 7 was released. By this time, Windows as an operating system had spread so far that there was little sense in coding primarily for OpenGL, instead shifting the focus to the now-Microsoft dominated market for gaming developers.

OpenGL was never developed for gaming in the same way that DirectX was. While Bill Gates and chums were punting their gaming and GUI API to every developer on the planet, OpenGL was being put to work at whatever it could lay a hand to, primarily workstations. The open source application has a far fuller feature set than DirectX, very few of which have any bearing on gaming. The only thing that this proved was that the open source product trumped Microsoft for much of its existence without making full use of its potential. Intrepid coders could well have manipulated some of the powerful features designed for workstations into something truly awesome on the graphics front, given time.

The Now

While most games are now built specifically for DirectX, some are still coded to use OpenGL if the occasion demands it. They are fewer and far between than they were even three years ago and their numbers are falling. Windows Vista in particular has a series of implementations that allow GL to run on that particular operating system. One of them even lets the actual API to run but most solutions convert the OpenGL runtime to something that DirectX can understand and uses Direct3D once the conversion has been made.

The latest versions of both APIs, DirectX 10 and OpenGL 3.0, are both current. DX10 is seeing some use as more and more gaming products are coded with it in mind but it is forcing developers to do dual work by creating a DX9 version as well. A new introduction for DirectX 10 is the ability to marshal or buffer commands, cutting down on switching times. This little feature was included in OpenGL almost from Day One so it was inevitable that the Windows giant would include it eventually. DX10 was creatively rebuilt and as most folks know, to their detriment, requires a specific compatibility with hardware in order to function.

OpenGL is treading the lonely pathway to obscurity it would appear with the release of the 3.0 standard. Even the fans and longtime supporters of the application are less than pleased with the latest version, with developers shying away from what they see as negligence for leaving out support for shader components and other essentials. This lack was to have been corrected in updates of the API at a later stage.

As of right now, Microsoft holds the upper hand. They have seasoned the DirectX programming with many iterations and have gradually included much of what made OpenGL great into their more recent design ideas. While the race is not yet over, it is up to the open source crew to make the next move in the bid to put one over DirectX.

Considering the power that OpenGL has been able to command on relatively low-spec systems in the past, it is not an impossible task. Throughout the history of graphical APIs, the open source has innovated and DirectX has picked up on it later, incorporating the great ideas into their design. One wonders how different or advanced graphics technology would be had things swung in favor of OpenGL but for now, all we have left is speculation.

Categories: