Direct3D vs. OpenGL

From DmWiki

Beginning graphics programmers often ask whether they should learn DirectX or OpenGL. However, DirectX cannot be compared with OpenGL because DirectX is a Windows-based suite of libraries (including input, audio and graphics libraries), while OpenGL is a cross-platform graphics-only API. A comparison of OpenGL and Direct3D would make much more sense. So what are the differences between Direct3D and OpenGL?


Direct3D vs OpenGL
Topic Direct3D OpenGL
Language Uses C++ (object-oriented). Also available in C, and all .Net languages Available in C, Java, Assembly, Pascal, and other languages
Immediate Mode? No immediate mode Has immediate mode
Platform support Used on Windows, XBox, XBox 360, foundation for XNA Used on Windows, Linux, MacOS, Gamecube, Playstation 3 (OpenGL ES subset), Silicon Graphics Workstations, BeOS, others
Utility Library Has extensive helper library, D3DX Has a smaller utility library GLU, which provides less high-level functions, but the language is capable of performing many of these functions low-level without the need of high-level interfaces.
Extensibility Direct3D 9 uses CAPS (capabilities bits) to query supported features, Direct3D 10 requires all features to be supported. Utilizes extension loading to access advanced features.
Hardware Acceleration Cannot use hardware features that the API does not support (updated once every 2 months) Can use hardware feature that API does not support (requiring different code paths for e.g. nVidia (http://www.nvidia.com/) and ATI (http://www.atitech.com/) cards)


Once you have decided which to investigate further, you can look at our DirectX resources and OpenGL resources.



DevMaster navigation