   Why use Direct3D?
  Why not use OpenGL? Why there are many Direct3D powered games? I heard that OpenGL can do everything what Direct3D do. But Direct3D are only for Micro$oft, so why they didn't use OpenGL for the additional cross platform feature. If you want to program in windows only, the cross platform feature will not really hurt in your project so why use Direct3D?   
  Because the Direct3D API is modern, consistent and exposes all the features of the graphics card in a logical and simple manner. OpenGL has become somewhat stagnent and to use all of the feature of a modern graphics card requires use of extensions and so on.Having said that, if you want to use OpenGL, then by all means, go for it. There's plenty of people who use OpenGL quite successfully.Also, spelling "Microsoft" as "Micro$oft" doesn't earn you any "coolness" points.   ;Quote:Original post by CodekaBecause the Direct3D API is modern, consistent and exposes all the features of the graphics card in a logical and simple manner. OpenGL has become somewhat stagnent and to use all of the feature of a modern graphics card requires use of extensions and so on.Having said that, if you want to use OpenGL, then by all means, go for it. There's plenty of people who use OpenGL quite successfully.Also, spelling "Microsoft" as "Micro$oft" doesn't earn you any "coolness" points.What he said. Obvious troll is obvious.Incidentally, why not try both out and answer your own question?   ;  I'd assume that driver support is a lot better for Direct3D in terms of performance and bug fixes. Also, Direct3D leads the way in terms of exposing new hardware features (e.g. hardware tesselation/geometry shaders). On the other hand, OpenGL usually plays the catch up game.   ;Quote:Original post by ClapfootI'd assume that driver support is a lot better for Direct3D in terms of performance and bug fixes. Also, Direct3D leads the way in terms of exposing new hardware features (e.g. hardware tesselation/geometry shaders). On the other hand, OpenGL usually plays the catch up game.Usually it has always been quite the contrary: opengl exposed features first (thank to the extensions system) while DirectX would have implemented some of them in the next version. Thought, I wouldn't be surprised to discover that nowadays things have changed, given how frozen is the development of OGL...   ;Quote:Original post by cignox1Quote:Original post by ClapfootI'd assume that driver support is a lot better for Direct3D in terms of performance and bug fixes. Also, Direct3D leads the way in terms of exposing new hardware features (e.g. hardware tesselation/geometry shaders). On the other hand, OpenGL usually plays the catch up game.Usually it has always been quite the contrary: opengl exposed features first (thank to the extensions system) while DirectX would have implemented some of them in the next version. Thought, I wouldn't be surprised to discover that nowadays things have changed, given how frozen is the development of OGL...Nvidia still exposes their latest hardware features via GL extensions.  ATI doesn't bother anymore.  As for Intel...well you're lucky if their GL driver even works at all.  ;Quote:Original post by m3rkWhy not use OpenGL? Why there are many Direct3D powered games? I heard that OpenGL can do everything what Direct3D do.IMHO, D3D is neater. It's object oriented, so you don't have this soup of free functions, and in D3D drivers used to be generally better than OpenGL drivers.Quote:Original post by m3rkMicro$oftNo.Quote:Original post by m3rkso why they didn't use OpenGL for the additional cross platform feature. If you want to program in windows only, the cross platform feature will not really hurt in your project so why use Direct3D?You've obviously never tried to write cross-platform software [smile]. There's a lot more than just the graphics API you need to consider. People don't tend to use OpenGL and then decide to make their game cross platform, they tend to make their game cross platform and then are forced to use OpenGL because it's the only option.It's also possible to use various engines like Ogre, which support D3D and OpenGL renderers, and make writing cross platform software easier.   ;  D3D8 API vs OpenGL API : OpenGL wins as the API is betterD3D9 API vs OpenGL API : Shifted in favour of D3D9 over the lifetime, OpenGL stalled with adding basic features for some time (such as a render-target like solution and high level shading language).D3D10/11 API vs OpenGL API : D3D win. The API is better, cleaner and more consistant with D3D10 hardware. OpenGL core API still lacks D3D10 features, AMD having failed to impliment the EXT versions as well, thus giving D3D10 a feature lead. D3D11 will add true multi-threading support, something OpenGL doesn't remotely have. Mean while, OpenGL API begins to fall inwards on itself due to the multitude of ways to do things which hinders driver development.Before anyone thinks I'm D3D bias, I learnt OpenGL first in 1999/2000 and used it as my only 3D API for around 8 years before the Longs Peak/OpenGL 3.0 balls up.OpenGL is still a viable API if you want to use it, however I would only use it if I was targeting cross platform OR the engine I was using happens to use it.Basically, OpenGL is best when you have no choice.   ;Quote:Original post by phantomBasically, OpenGL is best when you have no choice.So true, sadly...OpenGL 3.1 is relatively nice, if you use the new gl3 headers. However, the 3.1 drivers are still atrocious (or non-existent). When you cannot rely on something as basic as framebuffer blits (I'm looking at you, Ati, you and your broken depth component formats), it makes absolutely no sense to use this API - unless you have no other choice.Even worse, the majority of video cards does not even come with 3.1 drivers (who am I kidding, they don't even support OpenGL 2.1!), which makes the API improvements moot.Edit: Yes, I'm bitter. I'm working on C# bindings for OpenGL (both Tao and OpenTK) and have just completed a relatively small, but graphically intensive, project. I really wish the situation was different, but the OpenGL is really not nice. I don't regret the choice (I do want my programs to be cross-platform), but if there was a choice, I sure wouldn't use this API.   ;  DirectX is supported by Microsoft, who puts a lot of money in making development easier, by providing a full environment with ready-made solutions for game development rather than a lean and mean graphics API.They also advertise it and market it well, interact a lot with game development companies, etc.Microsoft also devised the lock-in strategy well by tying DirectX to the windows API.   