OpenGL

Revision as of 07:22, 20 January 2007 by Checker (talk | contribs)

I used to be pretty passionate about the OpenGL graphics API, and I spent a fair amount of my time working to make it successful on the PC for games. I still think it's a pretty well designed API, and it's certainly more pleasant to program with than Direct3D, even after all of these years and versions, but the heat has gone out of the issue for me. Direct3D won the war. SGI is basically dead, and Direct3D is the stable and mature platform that drives the features for each generation.

OpenGL still has some advantages, like vendor extensions, the relative niceness of most of its interface (there are really wonky and lame parts of the OpenGL API, one must admit), and the fact that it's cross platform, but if you want to make a 3D game on the PC and you want to have stable access to the latest 3D features...well, you're just screwed. Yes, after 10 years of effort, the 3D graphics situation on the PC is still pretty laughable. You can, without trying very hard, find a serious 3D driver bug within minutes of sitting down to write code with either API.

However, if you want a slightly better chance of getting your code to work using "mainstream cutting edge features" (as of this writing, say lots of render-to-texture, wacky render target pixel formats, etc.), you're probably better off using Direct3D. If you only need to use a safe subset of features and you want the nicer programming experience, or if you want to use the most cutting edge stuff that's only available in vendor extensions, then OpenGL is a fine choice.

Ironically, the collapse of the 3D market on the PC down to NVidia, ATI, and Intel has actually helped OpenGL be competitive, driver-wise, since those vendors tend to update their OpenGL drivers almost as frequently as their Direct3D drivers. The chance for OpenGL to "win" is long past, though. Direct3D is easily good enough of an API now.

I write almost all of my prototypes in OpenGL, because it's just more agile and toolkit-y.




05:37, 20 January 2007 (CST)

This page was last edited on 16 November 2011, at 19:55.