by troyt » Sat Jun 15, 2002 10:00 am
My vote is for OpenGL. (And on another note, OpenAL -- an Audio equivalent to OpenGL. Similar to how DirectSound3D/EAX and Direct3D are equivelents. OpenAL is used more often than many people believe -- including in LucasArts' "Jedi Knight II")
OpenGL's future is in fact, very bright. It's still the engine of choice for professionals, and still offers cross-platform functionality. (Sure, the Linux people will be happy... but it'll also work on Mac, IRIX, SPARC, AIX, HP-UX...etc. as well.)
OpenGL is more powerful, and more robust than Direct3D is. (For example, while some of the newer graphics cards claim to support 100% of Direct3D in hardware, only professional-level cards (costing $2-3k) can claim to support most of OpenGL. I don't know of any card that supports all of OpenGL.
OpenGL is also extensible, and you can write plugins to create new effects (not simply combining existing ones). Direct3D must have an effect to use it, and if D3D doesn't, you can't create one. A new version of Direct3D is required to use any new 'gee-whiz' features of a particular graphics card (if it doesn't already have it, of course), where OpenGL can be extended to use new features as they appear, without having to court Microsoft (sorry, that's the hardware engineer in me...). (Although the extensions are generally part of the card's driver)
The argument has been made that things such as web multiplayer aren't directly implementable in OpenGL, but is in DirectX is misleading, as DirectX is an entire family of API's, of which Direct3D is but one member. The features such as 'web multiplayer' aren't implementable in Direct3D either.
I would second the suggestion to checkout CrystalSpace (which uses OpenGL) - the rendering engine is more than capable of anything you're likely to throw at it.