OpenGL vs DirectX: Usability


Hello Readers!

I’ve been looking a bit into OpenGL and DirectX to see which of both is more usable and easier to learn.

I first choose OpenGL to be the winner on this field because of its not-object-orientated design, but soon found out I was wrong. Few points that I initially saw:

  1. OpenGL is much easier to initialize then DirectX and easier to use because of its no need to use vertex arrays.
  2. For 2D view the camera system is really easy to setup.

But then I realized that I’m a C++ programmer, so object-orientated design is probably better to use. So I looked into DirectX. DirectX seems to handle it much different then OpenGL, you need to create a “root” class and from there create a “device” class per DirectX device you are willing to use. This is pretty easy to use for basic setup, so I just used default parameters with my own HWND. It immediately setup alot of stuff like clear color (which I want to default to black anyway) and camera position. No more positioning the camera at -screenwidth and -screenheight to get 0,0 of the screen at 0,0 of the world. (2d view). One more advantage of DirectX over OpenGL is that it doesn’t use the extensions stuff opengl uses. DirectX has fallback methods when calling stuff thats not available, so it will always work. (The speed is another point).

Even though OpenGL is cross-platform, it does have the regular driver issues that directx doesn’t seem to have.

I’m now more in for DirectX, but if someone has some point I’ve missed, don’t hesitate to speak up!

Thats all for now,

Calvin

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: