OpenGL....Direct3D?

Started by
26 comments, last by HebrewHammer 18 years, 9 months ago
Quote:Original post by Anonymous Poster
Quote:OpenGL is also slightly faster than DirectX.
sorry, but i don't agree with that. neither one is automatically faster. it depends very much on the card and the driver. for instance, nvidias implementation of opengl is faster than ati's.

OpenGL's state machine is faster than DirectX's Object Oriented Design. Generically, not specifically.
"Hard work pays off for the future; laziness pays off now"
Advertisement
OpenGL is not supported by Microsoft. In facts, Microsoft is searching since years to kick OpenGL from their platforms. This is a really annoying and dumb attitude from Microsoft, but be ready: we have OpenGL 2.0 now, but on Windows only OpenGL 1.1 (and with the new Longhorn they will move to OpenGL 1.2...). Thanks Microsoft, you make me moving to linux easier and nicer...
Let's say for arguments sake that MS would drop OpenGL entirely (which they won't as they've already publicly stated that they will continue support. Infact they have staff that only deals with OpenGL) doesn't mean you can't still use OpenGL on windows. Drivers and SDK's will still be provided by the Graphics card manufacturers. Naturally it would be preferred that MS would support OpenGL 2.0 but that is really only on SDK level since MS doesn't write the SDKs, nor do they set the standard. I can fully understand the business notion behind them not wanting to support a standard that is in direct competition with their own.

Anyway, MS can't make OpenGL go away. After all, it is an industry & academic standard and they know it.
No no no no! :)
Quote:Original post by MichaelT
Let's say for arguments sake that MS would drop OpenGL entirely (which they won't as they've already publicly stated that they will continue support. Infact they have staff that only deals with OpenGL) doesn't mean you can't still use OpenGL on windows. Drivers and SDK's will still be provided by the Graphics card manufacturers. Naturally it would be preferred that MS would support OpenGL 2.0 but that is really only on SDK level since MS doesn't write the SDKs, nor do they set the standard. I can fully understand the business notion behind them not wanting to support a standard that is in direct competition with their own.

Anyway, MS can't make OpenGL go away. After all, it is an industry & academic standard and they know it.

Agreed. If Microsoft could stop OpenGL being installed on windows, than they could stop the spreading of viruses. They have no control over it.

"Hard work pays off for the future; laziness pays off now"
Quote:Original post by MichaelT
Infact they have staff that only deals with OpenGL


Ehm, can I know what did this staff the past 5 years? I *HOPE* that graphic card developers will directly get OpenGL under their cares, because a 5 year old OpenGL 1.1 version is by far not the future... I can't believe that a staff existed until now for OpenGL under Windows: what the hell they did????

This may sound dumb but what are the chances that some smart kids could implement openGL 2 on Windows, with out Microsoft getting involved.. or is that just wishful thinking?
It's not my intention to go into a flame-war, but i would like to clarify some things. First of all, there is never "Oh, Direct3D is better than OpenGL". Nor is it the oposite. What API is best suit for a project is a project-specific thing. Some projects might have better use of the ease of porting to systems like MacOS X or Linux that OpenGL give, while some benefit from Xbox-support or the generally better driver-support with lowend hardware that Direct3D bring to the table.

Besides, on large projects, the actual rendering-code is really not a big deal. So you could write a GL-renderer AND a D3D-renderer. If you mix personal feelings or politics into this, you are only making things worse for your self by eliminating good tools.

Quote:
OpenGL has an ARB (Architecture Review Board) with 9 different companies involved. DirectX is just Microsoft. This would mean that OpenGL has more input into how we can improve it for the future.


So, you really believe that microsoft make D3D without any input from the hardware vendors? Let me tell you, you are dead wrong here ;) Microsoft has a good cooperation with the major hardware-vendors, and every new DirectX-version is based on the feature-set of the upcoming hardware.

Quote:
OpenGL is also slightly faster than DirectX.


With nvidia, maybe. With intel extreme graphics, not at all. And in the end, it all comes down to what you're doing. In GL, you are allowed to do more "stupid" things for convinience, like glBegin/gEnd.

Sure, I might sound D3D-biased here, and perhaps I am. But I DO use GL when I see obvious advantages. The point of my rant here is that it's all about choosing the tool that covers your needs. It's not religion.
The only time that OpenGL is faster than D3D is when it comes to vertex array data submission, where OpenGL can be between 2.3 (10 triangles per batch) and 1.7 (200 triangles per batch) times faster (source: D3DTutorial3_Pipeline_performance.pdf I cant find a link to it any more), however this isnt really a killer choice wise however and is down to the differences between OGL and D3D at the driver level.

Also I wouldnt called glBegin()/glEnd() "stupid" as such, if applied in the wrong situation then yes they are stupid, however they are usefull for some things where you have a very low number of vertices and the overhead of setting up a buffer and drawing is greater than just drawing directly.

But other than those points, yes, pick the tool which works for you, if you are just starting out then try a little of both and see what you like, you can always swap later if needs be.
Quote:
Also I wouldnt called glBegin()/glEnd() "stupid" as such, if applied in the wrong situation then yes they are stupid, however they are usefull for some things where you have a very low number of vertices and the overhead of setting up a buffer and drawing is greater than just drawing directly.


that's why i used quotation-marks ;)

Evrery time I read one of these threads, it makes me want to bang my head on the table. So much misinformation here.

Quote:OpenGL's state machine is faster than DirectX's Object Oriented Design. Generically, not specifically.

How does this even make sense? D3D and OGL are both state machines, and neither of their layouts is inherently faster than the other.

Quote:OpenGL has an ARB (Architecture Review Board) with 9 different companies involved. DirectX is just Microsoft. This would mean that OpenGL has more input into how we can improve it for the future.

To take the second sentence first, "we" have no input at all into the development of OGL. IHVs (nVidia and ATI in particular) are the controlling entities, with some major software companies such as SGI having some say as well. Game developers can talk to NV/ATI about what they want, but there isn't any direct input to the ARB. Second, Microsoft isn't working in a vacuum. They are talking to IHVs and ISVs constantly about what is desired from D3D. The crucial difference is that MS can have the final say and more or less force the other companies to accept their point of view. This is not necessarily a good or bad thing.

Next -- the stuff about only GL 1.1 being supported on Windows. Yes, but not really, no. GL is laid out something like this. The root entry point for any application is opengl32.dll. However, opengl32.dll does not do anything! It's merely a central access point for all apps. It will dispatch to a driver dll provided by the video card drivers. These driver dlls are fully featured. The root opengl32.dll only exports a GL 1.1 interface. However, you can request function pointers to any of the functions through GL 2.0, and since those requests are dispatched out to the driver specific DLL, you'll get a function pointer back for it. Most GL extension loaders/managers (I recommend GLee) can make this process transparent, so that you can do a check for the currently supported OpenGL version and begin using the functions for that version as if they weren't extensions at all.

Indeed, the only difference of any note at all between the core D3D and OGL APIs is what _the_phantom_ mentioned about GL coping better with small batch sizes. (D3D has, however, introduced a technique called instancing to combat this.) But, I emphasize the word core for a reason. There's a lot more to OpenGL vs Direct3D than OpenGL and Direct3D. D3DX, for example. Or any of the various libraries for OpenGL. But to leave that aside, and to give my usual closing advice:
Quote:
Just pick whichever API looks more appealing to you, and go for it.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.

This topic is closed to new replies.

Advertisement