DirectX9 vs OpenGL

Started by
11 comments, last by MichaelT 18 years, 10 months ago
I now started to write basic system core stuff so I could write 3D applications and I now wondering for the 3D stuff which platform to use, DirectX9 or OpenGL I used until now DirectX8 so I'm guessing moving to DirectX9 will be easier, but still for the long run I want to know whats better. Your help is appriciated ! p.s. I'm using VC6++ , is that good enough to work with DirectX9 ?
There is nothing that can't be solved. Just people that can't solve it. :)
Advertisement
I don't think there is any one better API, they both have their advantages. In the past I have always used directx and had been fairly happy with it. A few weeks ago I decided to play around with openGL and have fell in love with it.

I find openGL is a lot simpler to use, everything is functional so you don't have to search through classes for what you're looking for. I think people who like c++ would enjoy directx more, people who like C would enjoy OpenGL more, but that's just my .02 .
It depends on what you want to do ie. if you want to quickly port your code to non-Microsoft OS's like Linux etc, where DirectX isn't available then you should use OpenGL. But, if you just want to use Windows, you should DirectX for two reason: 1) DirectX seems to have evolved much faster in recent years than OpenGL 2) Graphics card manufacturers tend to favour DirectX when testing / writing drivers and you will have more chance of getting your games to work on more machines.

As for the VC 6.0 bit, I seem to remember the libraries for this being phased out ( but a may be wrong). You should really think about updading to .NET especially if you are using 3rd party API's.

Mr. Creamy
OGL is easier to learn.
DirectX9 of course because it has input, sound, and networking!

The correct question is Direct3D9 vs OpenGL. They are not better than one another. Direct3D or OpenGL has its own way of encapsulating computer graphics techonology, but the technology itself remains the same. The quality of the graphics you will achieve will be the same since you are using the same video card and on the same techonology level. The difference is on how they write the library. Surprisingly, you will find a lot similar concepts in both libraries.
To be honest, you're posting in a DirectX forum - you're gonna get a biased answer to this [smile]

Bottom line is - do your research, write a list of what it is you (not someone else) want to achieve with your engine/program and select accordingly.

As mentioned by other people, they both do very similar things - a lot of the time a choice will probably come down to a matter of personal preference (which is why the moderators often take badly to "vs" threads [wink]). It's only when you start getting to the intermediate/advanced level that you might well want to worry about the finer points of each API.

Quote:I'm using VC6++ , is that good enough to work with DirectX9 ?

No, VC6 is no longer a supported development platform. DirectX 9 has been around for 3 (?) years now, so it is possible to do DX9 development using VC6, but you won't have access to the latest-and-greatest. For reference, the October-2004 SDK update was the last to have proper VC6 support and there have been 4 releases since then [smile]

hth
Jack

<hr align="left" width="25%" />
Jack Hoxley <small>[</small><small> Forum FAQ | Revised FAQ | MVP Profile | Developer Journal ]</small>

OpenGL if you ever want your program to run on alternative operating systems, such as Linux and Mac.

I'm a big fan of both, so I think I can give you an unbiased answer without being closed minded about the alternative. I do agree that OpenGL is a lot easier to learn to begin with. When you're learning, being able to use glVertex3f, instead of having to faff around with vertex buffers, is a big advantage. If I had to teach someone computer graphics, I'd go with OpenGL every time. That said, OpenGL doesn't have the support for loading texture files that DirectX has, through the D3DX library.

As said, if you want your code to work on other platforms, such as Linux, then OpenGL is the way to go.

I think it really depends on your personal preferenence to be honest. Personally, as much as I like OpenGL, I'm finding myself preferring DirectX these days. Obviously this is windows specific, but I find OpenGL's extension mechanism to be a complete pain to work with. DirectX seems to be much better documented as well. Obviously this isn't relevant if you've bought yourself a book on the subject, but if I want to learn how to work with vertex and pixel shaders, I only have to look at the DirectX documentation. If I want to learn how to use the equivilent in OpenGL, I have to go to the OpenGL website, and trawl through a huge list of text files containing information about all the different OpenGL extensions.
Both work just fine.
And everyone has their own preferences. Either pick one at random, or try both and see what you find easiest.
The best thing you can do for yourself is to try both, and see which one catches you fancy the most. The straight-forwardness of OpenGL got me addicted, but I can easily see how the more object-oriented approach of D3D can be attractive to developers as well.

Good luck in your graphical adventures. :)

This topic is closed to new replies.

Advertisement