Hi all,

I have done some development in OpenGL in the C++ platform and was thinking about trying my hand at DirectX which I have heard is a bit more challenging than OpenGL. From what I have read, DirectX seems to be the more popular format so I was wanting to learn how to use it. Or should I spend my time developing the skills I have gained in OpenGL further? What are the major differences/advantages/disadvantages of each? What are your thoughts/suggestions?


PS - This is not a homework question - I was just interested in other people's thoughts on the debate. :)

DirectX is more than OpenGL.
OpenGL is purely graphical presentation (and animation, to an extent), the scope of DirectX is far far wider, including networking, sound, and a lot of other game related services.

OpenGL knowledge will be valuable no matter what platform you're going to work on. DirectX knowledge is Windows specific.

OpenGL also seems to change its specs less often than does DirectX, making it maybe a better thing to learn for future use.

Learn both. If you use only vertex buffer objects in OGL, and manually specify the transform state before drawing every object; that's how Direct3D works.. with a few other differences I suppose.. Hey, as an advantage in Direct3D you don't have to write your own matrix/vector classes -_-

Learning both simultaneously isn't really a good idea though.. I have been flitting between the two as tasks demand; I would say, that there are more similarities than differences between the latest OGL and D3D. Definately learn both at some point.. Unless you never need to work on a Microsoft plaform.

As jwenting said; there's more to DX than D3D. I guess you're using Glut/SDL/Windows API or similar, to do (some) of what the rest of DX does. If you're using SDL, you can keep using it with Direct3D; and it simplifies all the boilerplate code you'd usually have to write to set up D3D with the Windows API..

learn a lot from you

yeah IMHO OpenGL has better documentation, Directx on MSDN always seems cryptic

DirectX works well with XNA and visual studio

Yeah but XNA is for C#.NET only as far as I understand it.

yeah but most DX samples are C++ or C# so its a nice way to get into it.

C# + DirectX is fast enough for most things, people have built RTSes that way

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.