3 ms·
I think the real interesting conclusion here is: if OpenGL has parity with Direct3D on Windows in terms of features and performance, why should anyone ever use
by AshleysBrain 14y ago
I think the real interesting conclusion here is: if OpenGL has parity with Direct3D on Windows in terms of features and performance, why should anyone ever use Direct3D any more? Direct3D is almost non-existent on mobiles and tablets, so anyone using Direct3D is just making their lives harder if they want to go mobile, or port to any other OS. We don't live in Windows monopoly days any more. If OpenGL can get you the same thing on Windows, and helps make it easy to port to other big platforms, I can see Direct3D really falling to the sidelines.
- TylerE 14y agoBecause it ISN'T feature parity. In OpenGL all the fun stuff (e.g. the stuff that's in DX9+) is in vendor specific extensions. A bit like vendor prefixes in CSS, except they can actually be implemented differently, have different names, etc. It's BAD news, and the main reason why 99% of AAA games use DirectX on Windows.
- ginko 14y agoThat might have been true in the OpenGL 1.5 days. There are few things one might miss in core OpenGL 4.2. If anything any features exposed in extensions building on OGL 4.2 are so new or experimental that D3D doesn't have them at all.
- testdfsg 14y agoMost of players don't have OpenGL 4.2. You'll get hundreds of bug reports about game crashing on start. Testing on old hardware (for <50 000 triangle games it's Intel GMA and Geforce 4 MX and some old Radeon) is a good way to be sure it works on most of computers. Of course game needs to support those old cards only on lowest quality settings.
- ginko 14y agoThe same is true for Direct3D. If the user's GPU doesn't support D3D 11, you have to supply a fallback.
- TylerE 14y agoBut that's just it: A fallback. Not totally separate codepaths for NVidia, ATI, etc, which is pretty much where legacy openGL is.
- corysama 14y agoHere's Valve's viewpoint on user configurations: http://store.steampowered.com/hwsurvey/videocard/ http://store.steampowered.com/hwsurvey/videocard/ To understand a somewhat more casual audience, it's interesting to contrast the users of Unity: http://unity3d.com/webplayer/hwstats/pages/web-2012Q1-gfxcard.html http://unity3d.com/webplayer/hwstats/pages/web-2012Q1-gfxcar...
- bcrescimanno 14y agoOne word: inertia. The question development shops would be asking themselves is: will the additional revenues provided by Linux / Mac ports of these games be enough to offset the cost of retraining their people (or hiring new people) who are prepared to do serious OpenGL development? Moreover, many game companies are using licensed game engines. These engines may not now (or ever) support OpenGL, so the game developers themselves may not have the option to change--even if they did want to.
- napillo 14y agoWhich engines are those?
- malkia 14y agoI've met a lot of graphics programmers, that are simply in love with D3D, and despise OpenGL (my own experience, I work in a video game studio doing console and PC games)
- angersock 14y agoThat's all well and good, but the fact remains that Direct3D is certainly a better documented API, and also that OpenGL even now has annoying remnants of its past as a hissing, clanking state-machine (glBind* garbage). Speaking from experience, trying to get OpenGL to behave sanely in a multithreaded environment is nontrivial.
- deleted 14y ago[deleted]
- testdfsg 14y agoYou are right. OpenGL works everywhere. But you have to be careful: my amateur OpenGL 3d game had problems running on half of computers, especially laptops. It's because various cards support different opengl extensions. You can't use non-power-of-two textures, can't use textures bigger than 512x512 (or other number), can't generate mipmaps automatically, can't have too big display lists. I thought about optional DirectX renderer when running on Windows, because I've heard it's more standarized.
- Flow 14y agoBut now you know about those limitations :-)
- warmwaffles 14y agoThe non power of two issue is not a problem. Just load the texture in with padding to get it to the next power and put a texture region in that doesn't have the padding. OpenGL is an awesome platform for those who want system portability IE minecraft, or any other indie developer who wants maximum exposure.