Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
DirectX is only natively known to Windows OS (and probably XBox's OS ), while OpenGL is an industry standard that is widely used in Unix-like environment and also Windows. DirectX is "all in one" API, that handle a lot of stuff, not only graphics like OpenGL, but also Sound (DirectSound), Force feedback Input (DirectInput), etc. The couterpart of OpenGL in DirectX is Direct3D.
Yes, Direct3D should be compared with OpenGL and the rest of directx is for doing some other tasks. As you know the main aim of directX is to help game developers doing they work faster.
Direct3D has the same capabilities as OpenGL. Once I tried to develope a simple OpenGL program. As you know there are lot's of examples and development resources however it took me some thing near one week to write a simple program. generally I think that DirectX has more examples, books and resources than OpenGL.
One anothere very important point is hardware support. As you know, the graphic card itself should support each version of OpenGL and directX.
I think that OpenGL will go to die some day and directx will remain.
I believe that:
1- If you want to use it for making an industrial application then OpenGL can be better since it is a kind of standard for developing these kind of applications.
2- I think that DirectX is better and easier to learn than openGL and I think that it is more powerful for normal applications such as games. Microsoft is highly working on DirectX. If you install the directX SDK ( downloadable for free from microsoft ) you will see lot's of examples. generally these examples are enough for making simple applications, you just change some part of the example.
For me, it took me some thing near two weeks for get familiar with DirectPlay classes.
Any how, I should mention one really important point: You should be, a good VB or VC++ programmer, otherwise, nothing will be obtained from directx.
There are anywhere from 10-30 books on DirectX programing at any good book store...Probably have a rough time getting more than a book or two on OpenGL for the reason that MS dominates writers and book pubs alike!
I think another reason for that DirectX is more popluar then openGL is that the game vendor always support DirectX in Windows environment, but seldom or never support openGL in Linux. If game vendor can support porting into linux, there would be a excellent chance to promote openGL..:wink:
Opengl is not supported via C#, so u have to use VC++, also i personally think VC++ is better for any graphics programming for speed considerations.
Opengl is easier to learn if u r a beginner, once u master the basic principles using opengl then shifting to Direct3d etc... is easier
I think DirectX is more power than OpenGl. With DirectX you can do many thing with your computer and besides it fully support by Windows OS and Microsoft. Programming with DirectX API is difficult because you must write code with VC, but with the DirectX version for Managed code (C#, VB.Net) the work nowaday more easy.
DirectX is used in most game today, and OpenGl used in CAD and model tool for Architect.
If you find diffcullty in programming OpenGL with VC, you can use the lib for .NET language. This version can be download from https://sourceforge.net/projects/csgl/
This is the OpenSource Version. With this version, you can write program easeier than before, and it companion with many ex, so you can learn many from this.
DirectX is a closed API of Microsoft so you can code only for Windows.
OpenGL as I know is easier to learn than DirectX and with the 2.0 revision it is as powerfull as Dx so it is compatible with the shading language.
If you look for a not only Graphics API then you can try SDL that uses OpenGL for graphics and makes easy to code sound, input, cdrom access, etc.
OpenGL is also more professional as the biggest companies make use of it.
OpenGL is totally portable to Unix environments like Linux but also Mac, which it means you can make an application and then release a version for other O.S.
There are lots of easy tutorials all over the net. One good place to learn is nehe.gamedev.net .
OpenGL comes with the most common compilers. Borland, VC, MinGW, gcc.
I really don't see any reasons to code in DirectX rather than OpenGL.