Open GL vs DirectX

Apr 16
07:57

2009

Sandra Prior

Sandra Prior

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

An epic battle between DirectX and OpenGL.

mediaimage

The very technically minded amongst us will know exactly what an API is. For the rest,Open GL vs DirectX Articles a short explanation is in order. API stands for Application Programming Interface and without this little software creation that powerful graphics card sucking up everything it can from both your PSU and bank balance would be so much circuitry and scrap. APIs allow the treasured hardware inside one's machine to function correctly. It uses function calls to direct the resources available and allow, in the case of a graphics card, rendering and other more advanced functions to take place.

The major point is that there are only really two graphics APIs worthy of notice. Much like the NVIDIA/ATI divisions that are the subject of almost every tech-forum, API usage is spilt into proponents of DirectX, the current market leader and the brainchild of your friendly neighborhood Microsoft, and OpenGL, the resident underdog that could still turn DirectX on its ear.

What's the point?

Both OpenGL and DirectX have gone through many incarnations since their inception and cataloguing absolutely everything is a job for Wikipedia. There have been some major differences over the years that have set each apart from the other and it is these which are of interest. OpenGL and DirectX have used completely different methods from the very beginning; with the line between the two blurring in later versions. We'll find out why this is the case, though some can spot why right off the bat.

According to Microsoft

DirectX is Microsoft's favorite little creation, allowing them to wield the banhammer on a lot of folks by virtue of its proliferation. Direct3D is the major component in DirectX, supporting only Windows systems and pretty much anything else Bill Gates has touched. It is even the base software for the Xbox and the 360. Created to deal with 3D applications and graphical rendering, Direct3D handles all of those nifty features that show up while setting up options in your latest game. It controls hardware acceleration, should the hardware be capable of using it. Functions such as anti-aliasing and texture mapping are also handled, as is everything else to do with the GPUs 3D functions. Software emulation of certain bits of a GPU are also picked up by DirectX. Direct3D can emulate vertex software but it cannot do as well with pixel shaders. It'll allow an image to hit screens but it will be of shocking quality.

Open source opinion

OpenGL is Microsoft's open source competitor but the major battles are now confined to the past. Some folks still code games to take advantage of the API but it is often sitting side by side with the Microsoft equivalent. Being open source, there is no real limit to the number of versions out there but a stringent qualifying process is needed to qualify for the OpenGL standard. OpenGL is the default API for almost everything that is not Windows-based, running the iPhone, most of Sony's consoles, some of Nintendo's hardware and Mac and Linux-based systems. It also runs on Windows but has none of the exclusivity that Direct3D enjoys. With this wide base of operations it should seem remarkable that DirectX holds so much sway in the API arena.

Head to head

Each API has positive and negative points. Some are valid or can be corrected or lived with. Others are nigh unbearable, forming the bane of programmer's and end-user's existence. Let's start with a few of those.

Microsoft's DirectX is a completely proprietary system, functioning only on selected hardware. In case it was not clear, this translates to Microsoft only systems. Other problems have included the standard Windows bloat for programs which appears to crop up in some of their software. Even the almighty XP has been guilty of this failing. Other cons for DirectX only appear on direct comparison with the competing API.

The fundamental differences in how DirectX and OpenGL go about their business are miles apart. DirectX has tended to focus on the capabilities of the hardware itself without giving much thought to additional features that may lie outside the realm of the GPU in question. The software allows whichever features a card may hold to be utilized by a system and beyond that does not concern itself much with anything else.

OpenGL has been about creating a system whereby all possible features are made use of, either by driving a card's inherent capabilities or by using software to render as much as possible. In the case of OpenGL software is the de facto method of driving a 3D application, with hardware acceleration being used if it is available.

Seeing the difference in approach between the two APIs, OpenGL appears to have a much more robust and potentially more powerful application. With software rendering being the first line and acceleration being secondary, OpenGL's capabilities at running a 3D application would be higher than DirectX's, should the system they are running on have identical hardware.

Article "tagged" as:

Categories: