Evrery time I read one of these threads, it makes me want to bang my head on the table. So much misinformation here.
Quote:OpenGL's state machine is faster than DirectX's Object Oriented Design. Generically, not specifically.
How does this even make sense? D3D and OGL are both state machines, and neither of their layouts is inherently faster than the other.
Quote:OpenGL has an ARB (Architecture Review Board) with 9 different companies involved. DirectX is just Microsoft. This would mean that OpenGL has more input into how we can improve it for the future.
To take the second sentence first, "we" have no input at all into the development of OGL. IHVs (nVidia and ATI in particular) are the controlling entities, with some major software companies such as SGI having some say as well. Game developers can talk to NV/ATI about what they want, but there isn't any direct input to the ARB. Second, Microsoft isn't working in a vacuum. They are talking to IHVs and ISVs constantly about what is desired from D3D. The crucial difference is that MS can have the final say and more or less force the other companies to accept their point of view.
This is not necessarily a good or bad thing.Next -- the stuff about only GL 1.1 being supported on Windows. Yes, but not really, no. GL is laid out something like this. The root entry point for any application is opengl32.dll. However, opengl32.dll does not do anything! It's merely a central access point for all apps. It will dispatch to a driver dll provided by the video card drivers. These driver dlls are fully featured. The root opengl32.dll only exports a GL 1.1 interface. However, you can request function pointers to any of the functions through GL 2.0, and since those requests are dispatched out to the driver specific DLL, you'll get a function pointer back for it. Most GL extension loaders/managers (I recommend
GLee) can make this process transparent, so that you can do a check for the currently supported OpenGL version and begin using the functions for that version as if they weren't extensions at all.
Indeed, the only difference of any note at all between the
core D3D and OGL APIs is what _the_phantom_ mentioned about GL coping better with small batch sizes. (D3D has, however, introduced a technique called instancing to combat this.) But, I emphasize the word core for a reason. There's a lot more to OpenGL vs Direct3D than OpenGL and Direct3D. D3DX, for example. Or any of the various libraries for OpenGL. But to leave that aside, and to give my usual closing advice:
Quote:
Just pick whichever API looks more appealing to you, and go for it.