Your Ad Here

Friday, March 5, 2010

OpenGL vs Direct3D

It has recently come to my attention that some people (Windows users) think that OpenGL is dead. I was goaded into nerd rage after reading this post; however, for the sake of this being a blog post, I will reorganize my thoughts and repost my answer in a more blog post friendly manner.

"But wait Ryan!", you're thinking. "Won't your obvious fealty to all things Open and Standard make this post bias?"

Maybe a little bit, but the proof is in the final product. First, let us have some history. (The following a direct copy-paste from blog.wolfire.com

What is OpenGL?
In 1982, Silicon Graphics started selling high-performance graphics terminals using a proprietary API called Iris GL (GL is short for "graphics library"). Over the years, Iris GL grew bloated and hard to maintain, until Silicon Graphics took a radical new step: they completely refactored Iris GL and made it an open standard. Their competitors could use the new Open Graphics Library (OpenGL), but in return, they had to help maintain it and keep it up to date.

Today, OpenGL is managed by the Khronos Group -- a non-profit organization with representatives from many companies that are interested in maintaining high-quality media APIs. At a lower level, it's managed by the OpenGL Architecture Review Board (ARB). OpenGL is supported on every gaming platform, including Mac, Windows, Linux, PS3 (as a GCM wrapper), Wii, iPhone, PSP, and DS. Well, every gaming platform except for the XBox -- which brings us to our next topic:

What is DirectX?
Ever since MS-DOS, Microsoft has understood that games play an important role in users' choice of operating systems. For this reason, in 1995, they created a proprietary set of libraries in order to encourage exclusive games for their new Windows 95 operating system. These libraries included Direct3D, DirectInput and DirectSound, and the entire collection came to be known as DirectX. When Microsoft entered the gaming market in 2001, it introduced the DirectX Box, or XBox for short. The XBox was a loss leader (losing over 4 billion dollars), intended to set the stage to dominate the games market in the next generation.

Looking at the games scene now, it's clear that this strategy is succeeding. Most major PC games now use DirectX, and run on both Windows and XBox 360. With few exceptions, they don't work on competing platforms, such as Playstation, Mac OS, and Wii.

This rest of the article can be read here. I would definitely recommend you go read it.

"Well that's nice and all Ryan, but what's the point?"

The point is, that even though OpenGL is a superior API, Direct3D is used more.
Currently, I'm trying to get a certain company to provide me with real time renders using both OpenGL 3.X and DirectX 11 as it seems impossible to find any comparisons. Unfortunately, I'll be forced to use OpenGL 2.1 and DirectX 11 examples, but I think my point will be made clear enough.


As you probably can tell, the OpenGL images look a whole lot more realistic.

"Then why are most commercial games built on DirectX?"
You can read about it over at blog.wolfire.com but I'll list the points.

1.Network effects and vicious cycles

2.FUD about OpenGL and Vista

3.Misleading marketing campaigns

Hopefully, there will be a part 2 of this, if I can get this certain company to return my email. That way, I can show you the latest and greatest of both instead of showing you ancient technology.

Here is a youtube video of the new Ungine engine benchmark. I'm not sure what version of OpenGL it is using though...

No comments:

Post a Comment