There have been a lot of great points brought up about why OpenGL is better than DX and vice-versa. I am an OpenGL lover, so let me add to why I think OpenGL is better…yes this is an opinion, but most are true.
-
Yes, DX may be faster than OpenGL, and vice-versa, but the fact is, which ever one is faster only has a little bit of an edge. If you have a half-way decent system, your not going to feel the difference in a game written in DX and in OpenGL. Theres a lot in your system which can affect the speeds of wheather OpenGL runs faster, or DX does; and, with DirectX, even if you do get a little bit of an edge on performance, are you really willing to sacrifice clean code, easy learning curve, and less time to make the 3D app just so the app runs a little faster? I can almost promise you the end-user won’t feel the difference, so you have to think with yourself in mind: the programmer, what do you want? If you want the development of whatever your making be a painful experience with a lot of reference books handy…go with DirectX. If you want the experience to be smooth sailing…go with OpenGL.
-
Microsoft’s death = DirectX’s death. Now I know Microsoft is going to be around forever, even if they aren’t a monopoly far in the future, they will still be there. However, you never know: what if some freak accident happens and Microsoft loses a lot of money, well, if you were working on a DX app at the time and Microsoft goes out of business…your pretty much screwed. Now I know this will never happen, especially since Gates himself can fund his company if it ever even comes close to dying; but, its just the thought in the back of your mind, the fate of your DX 3D app depends on the fate of one company…not cool. Someone said earlier that Microsoft’s hold on the PC’s desktop is starting to crack. This is definetly true. Microsoft can still compete with the compition, just not on the level they would like to. There are a lot of other great operating systems coming out. I know theres a lot of anti-Mac people out there, but I think with the release of MacOS X, it will bring in big sales, and will just be another problem for Microsoft (especially with its great developer support now). I have always stayed away from Macs, but when OS X comes out, I am actually thinking about picking up a copy (and by the way: in case you didn’t know, OS X’s graphics is going to be completely built on OpenGL, and its core is based on UNIX…very stable). Also, look at Linux. And I know, Linux isn’t going to be on the average PC user’s computer within the next 10 or 20 years, but Linux is very powerful, and is popping up in the corporate workplace, schools, etc. Linux combined with OS X are going to attract some people. Microsoft will still be in the game, but they might not have their OS on 92% of all computers or whatever it is, I promise you that number will drop serverely within our lives.
-
Everyone is giving reasons as to why Microsoft keeps having to come out with newer versions of DirectX every so often. Well, many people blame this on their structure, and because they have to deal with DirectInput, DirectMusic, DirectSound, etc. One person said they should concentrate on making one good thing instead of 10 bad things. I think this is true; DirectX is a product, and if they have to constantly come out with newer versions with the same messy code, then they have made a bad product, and should consider redisigning it, but knowing Microsoft, they never will. Just because you like Microsoft or you like DirectX, you can’t make up crap in the defense of Microsoft because you don’t want to admit they make a bad product in comparision to OpenGL. On a side note, I’m not too big a fan of COM in the first place. OpenGL is all one API. In OpenGL, you can use glu and glut, but thats nothing like COM, those are just libraries which add to OpenGL. However, in DirectX, COM gets confusing, and is part of the problem with it that makes it harder to learn and harder to read.
-
All these DirectX people keep throwing performance and UT in the face of OpenGL programmers. However, even if DX is slightly faster…think about what your giving up in DX that you could have in OpenGL:
-OpenGL has portability to any operating system, DX doesn’t
-OpenGL is much easier to learn, DX can be very complex and confusing
-OpenGL can be…and often is…a LOT less lines of code than directx
Now I’d like to share with you my personal experience with both of the APIs. Yes, this is just an experience and I know a lot of people have given their experience of why they like one API vs. the other…but Microsoft’s DX is still in compition with OpenGL, and if I have a better experience with OpenGL than I do with DX, it means Microsoft has produced a bad product. Experience and opinions are really what matter here because Microsoft has to produce a good product to change my opinion and my experience.
I have been programming with 3D graphics for about a year now, and I have been programming for almost 7 years (No, I’m not in college, I started when I was 9, I’m a few months away from being 16). When I decided I wanted to go into the world of 3D graphics development, I looked at three APIs: Glide, OpenGL and DirectX. Glide I threw out immediately because 3dfx isn’t the biggest grahpics card company, and is far from it…so I knew Glide wouldn’t be popular in the future. I looked into DirectX first. I thought OpenGL would be messy and hard to understand since it doesn’t have one official company its produced by. I tried learning DX and I picked up a few books. After months of reading, I was still lost. I thought it was just me and kept on going. I finally blamed the API. It was hard to understand, had messy code, and other examples of basic things that I found online were hard to comprehend and just didn’t make any sense to me. I went into this for the fun of it, but I soon found DX to be no fun at all. Then, I looked into OpenGL. I was a little uneasy going into it since I’ve been programming in Windows all my life; but, I fell in love with it right away. OpenGL was easy to understand, and produced complex things from very simple code. I picked up two books: OpenGL Superbible and OpenGL Programming Guide, and they were both able to explain code much better. I was amazed that in OpenGL, all you have to do is call a few functions with different values and arugments and boom—you have a very nice, very cool 3D app! After a few weeks of reading into OpenGL, not only did I know how to draw very cool and interactive scenes, but I also knew about general computer graphics and how they work on any system…not just a windows system. I am very satisfied with OpenGL, and you may say, “Well DX is faster”, and sure…maybe it is faster, but OpenGL offers things I wouldn’t sacrifice for speed…and for the DX programmers out there: I suggest you pick up a book on OpenGL, you won’t be dissapointed.
One last point I’d like to make: You can say, “DX is the future” and “OpenGL is the future”, but what it really boils down to is this: OpenGL isn’t necessarily the future, but its guaranteed to be there; in addition, DirectX isn’t necessarily the future either, and is not guaranteed to be there.
You can battle all you want about how Microsoft is always going to be with us, but what I just said above is true and there is no denying that. If your still not convinced, read my points above about Microsoft’s future, and other points that were made on this message board…bottom line is their monopoly is starting to crack, and we’re seeing other operating systems emerge.
[This message has been edited by Alan W (edited 04-20-2000).]