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.
Categories: 3D | OpenGL | DirectX
