@blakeyrat said:
@Cassidy said:This flexibility can also be its downfall - thinking of deviations and variations in HTML specs introduced by browser vendors that made code reliant upon features found in that particular browser. I recall some articles on Tom's Hardware where a certain game looked nicer on a certain card, thanks to leveraging these customisations and accusations of unfair advantage aplenty.
Supposedly it's a huge pain to make bleeding-edge games in OpenGL for exactly this reason... all of that DirectX backwards compatibility stuff we just talked about has to be in your game engine because you can't make it rely on any particular combination of extensions. I've seen several articles calling-out OpenGL because of this from some big names... Carmack wrote one, if I'm not mistaken... yeah: http://www.bit-tech.net/news/gaming/2011/03/11/carmack-directx-better-opengl/1
@Linked article said:
'The actual innovation in graphics has definitely been driven by Microsoft in the last ten years or so,' explained AMD's GPU worldwide developer relations manager, Richard Huddy. 'OpenGL has largely been tracking that, rather than coming up with new methods. The geometry shader, for example, which came in with Vista and DirectX 10, is wholly Microsoft's invention in the first place.'
This is unfortunately true. Development of 3D graphics hardware is driven by games these days, and all the big development studios are targeting Windows1. Microsoft has a monopoly on the DirectX specification, so there's little point for graphics chip vendors to innovate themselves. And since Microsoft isn't collaborating with the Khronos group, they have to wait for Microsoft to release the new version of DirectX before they can update the OpenGL spec to match.
While the specification being in the hands of a single company may be a good thing in some respects (there's exactly one feature set to target, and no need to do any runtime checks), it's also a seriously limiting factor in others. If you write games using DirectX, they will run on Windows and Xbox, period. OpenGL implementation can be found on Windows, Linux, Mac OS X, Android and iOS at least.
It's also true that despite deprecating most of the ancient cruft, OpenGL still has some baggage from its early days. I'm told the approach it takes to specifying which GPU resources (textures, shaders, buffers etc) to use for rendering is a rather poor match to how graphics hardware actually works. The API also allows modifying several types of objects which in fact are immutable for the GPU (textures dimensions, framebuffer object attachments), so the drivers have to dance around these. Back when OpenGL 3.0 was in development, it was supposed to take care of these issues as well, but eventually the committee chickened out and chose compatibility over technical advancement.
1) The last game studio to consider releasing a major title on Linux (that I know of) was Epic with Unreal Tournament 3. At first the Linux installer was supposed to be featured on the game DVD, then to be released as a separate download shortly after the retail release of the game, then "as soon as it's ready". Finally, after two or three years of procrastination they finally admitted there won't be a Linux version. Supposedly Ryan Gordon got the game ported, but it ran into some middleware licensing issues. There hasn't been an official statement of that, so we'll probably never know.