©
T
N
C

Direct X vs. OpenGL 3D

The competition between OpenGL and DirectX is possibly as well known as the wars waged between AMD and Intel enthusiasts. This topic has sparked the fires of many flame wars throughout the years, and I don't anticipate that changing anytime soon. I won't preach why I prefer OpenGL over DirectX, but rather lay out the facts and let you make that decision. So let's dive in!

Perhaps the most obvious difference is that DirectX, as opposed to OpenGL, is more than just a graphics API. DirectX contains tools to deal with such components of a game as sound, music, input, networking, and multimedia. On the other hand, OpenGL is strictly a graphics API. So what aspect of OpenGL sets it apart from the DirectX graphics component? Well, first things first: both APIs rely on the use of the traditional graphics pipeline. This is the same pipeline that has been used in computer games since the early days of computer graphics. Although it has been modified in slight ways to adapt with advancements in hardware, the basic idea remains intact. Both OpenGL and DirectX describe vertices as a set of data consisting of coordinates in space that define the vertex location and any other vertex related data. Graphics primitives, such as points, lines, and triangles, are defined as an ordered set of vertices. There is a difference in how each API handles how vertices are combined to form primitives. There are a bunch of differences in the DirectX and OpenGL APIs, so I will list a few of those for you. This chart is based off the book, ÒOpenGL Game Programming,Ó and a few of these may now be incorrect as new DirectX versions are released. If you wish to correct me, please do via one of the ways listed at the end of this tutorial.

Feature:

OpenGL

DirectX

Vertex Blending

N/A

Yes

Multiple Operating Systems

Yes

No

Extension Mechanism

Yes

Yes

Development

Multiple member Board

Microsoft

Thorough Specification

Yes

No

Two-sided lighting

Yes

No

Volume Textures

Yes

No

Hardware independent Z-buffers

Yes

No

Accumulation buffers

Yes

No

Full-screen Antialiasing

Yes

Yes

Motion Blur

Yes

Yes

Depth of field

Yes

Yes

Stereo Rendering

Yes

No

Point-size/line-width attributes

Yes

No

Picking

Yes

No

Parametric curves and surfaces

Yes

No

Cache geometry

Display Lists

Vertex Buffers

System emulation

Hardware not present

Let app determine

Interface

Procedure calls

COM

Updates

Yearly

Yearly

Source Code

Sample

SDK Implementation



So now you know what separates DirectX and OpenGL.

If you have any queries or if you need any help regarding OpenGL 3D programming, Direct X 3D programming, C++ programming, 3D game programming, 3D software making, 3D model making or 3D Animation you can contact me at my mail, I will be willing to help.











About Us | Support | Advertise | Press Releases | News Coverage Archive | Privacy Policy | User Agreement



Last Updated April 2011

ADMN