Two of the the most widely used APIs in the world of computer graphics are that of Direct3D and OpenGL. Both provide a standard library containing function calls to graphics routines allowing for programming complicated animation and rendering techniques with no knowledge of the underlying hardware.
Table 2.4 (adapted from http://www.xmission.com/ legalize/d3d-vs-opengl.html) gives a highlighted feature comparison between the two APIs.
| OpenGL | Direct3D 8 | |
| operating system support | Windows (9x, NT, 2000), *nix, others | Windows (9x, 2000) |
| API mechanism | includes and libraries | COM |
| source available | yes | no |
| bump mapping | no | yes |
| cube environment mapping | no | yes |
| full-screen antialiasing | yes | yes |
| accumulation buffers | yes | no |
| picking support | yes | no |
| stereo rendering | yes | no |
As Table 2.4 shows, code using the OpenGL API will generally be cross platform whereas Direct3D will only run under versions of Windows. This is mainly due to the API mechanism each uses; the COM method is only usable under Microsoft operating systems, whereas the includes and libraries method is common to many APIs and as such is usable under many operating systems. As to regards to the rendering and animation features, there are a great many features each has that the other lacks, making it hard to choose one over the other except for very specific applications.