The fight between OpenGL and Direct3D (not DirectX!) is still a hot topic and the guys at Wolfire Games Blog have published a must-read article for all OpenGL developers (and end-users too) about the importance of OpenGL in game development and 3D industry.
I don’t know why but I agree with all their arguments especially these two ones:
- OpenGL is faster than Direct3D. At least from my tests between OpenGL 2 and Direct3D 9 under WinXP some weeks ago for the furry donut… GL 3 against D3D 10/11 will be done soon. But this statement should be taken with care. The core code was simple (vertex / pixel shader + vertex buffer) and in this case OpenGL render path was faster and produced more heat than Direct3D 9 render path. But with more complex codes, that might be another story. Anyway, I think OpenGL is as fast as Direct3D or faster…
- New 3D features are available first in OpenGL. Each vendor can add a new feature via an OpenGL extension (and currently AMD and NVIDIA have many non-exposed OpenGL extensions…) at any time. No need to wait for a major OS update to expose the feature.
With better GL drivers and more free tools (like D3D Pix or PerfHUD), OpenGL would be almost perfect…
Here are some interesting parts of this article:
It’s a positive feedback loop because whenever one API becomes more popular, it keeps becoming more and more popular due to network effects. The most important network effects are as follows: the more popular API gets better support from graphics card vendors, and graphics programmers are more likely to already know how to use it.
Microsoft’s FUD campaign:
API use was shifted in favor of DirectX by Microsoft’s two-pronged DirectX campaign around the launch of XBox 360 and Windows Vista, including the spread of FUD (fear, uncertainty and doubt) about the future of OpenGL, and wild exaggeration of the merits of DirectX.
Direct3D makes graphics brighter:
The launch strategies for Windows Vista and Windows 7 were both accompanied with an immense marketing push by Microsoft for DirectX, in which they showed ‘before’ and ‘after’ screenshots of the different DirectX versions. Many gamers now think that switching from DirectX 9 to DirectX 10 magically transforms graphics from stupidly dark to normal
The killer part:
…in reality, OpenGL is more powerful than DirectX, supports more platforms, and is essential for the future of games.
It’s common knowledge that OpenGL has faster draw calls than DirectX
New features are available first in OpenGL
OpenGL gives you direct access to all new graphics features on all platforms, while DirectX only provides occasional snapshots of them on their newest versions of Windows.
Targeting the maximum number of graphics cards requires OpenGL
Microsoft has worked hard on DirectX 10 and 11, and they’re now about as fast as OpenGL, and support almost as many features. However, there’s one big problem: they don’t work on Windows XP! Half of PC gamers still use XP, so using DirectX 10 or 11 is not really a viable option.
If you use DirectX, you have to choose between using the weak, bloated DirectX 9 or sacrificing most of your user-base to use DirectX 10 or 11.
On the other hand, if you use OpenGL, you get faster and more powerful graphics features than DirectX 11, and you get them on all versions of Windows, Mac and Linux, as well as the PS3, Wii, PSP, DS, and iPhone. You also get these features in the rapidly-developing WebGL standard, which may become the foundation for the next generation of browser games.
You can read the full version of this excellent article HERE.