What are basic differences(technologies), that make OpenGL better against DX?

What are basic differences(technologies), that make OpenGL better against DX?

Both OpenGL and Direct3D is interfaces to the same hardware functions so its mostly a matter of taste. Here is the main differences:

  • Direct3D like the other DirectX APIs is using COM. In my opinion is this meaningless for low level libraries that depends so much on hardware and drivers anyway.
  • DirectX is controlled by Microsoft, OpenGL is controlled by a group of companies like nVidia and ATi. Some sees this as the main advantage Direct3D has because whatever MS decides immediate becomes standard. In my opinion does ATi and nVidia work together well today so the difference is not so big anymore.
  • OpenGL allows vendor specific extensions. This means that the new features should be available first in OpenGL.
  • DirectX is for Windows only, OpenGL is available on many platforms.

The main differences is not so much about technology as who is interested in it. Direct3D is very much about MS and making games for Windows. They do not seem to be interested in anything else.
OpenGL users comes from all kind of places not only gamemakers but also people doing other type of applications and research. I love the OpenGL community with stuff from NeHe, ATi, nVidia and all the people using it.

Here’s an idea. Click the little search link here and do a search on DirectX, then read through the countless DX vs OpenGL threads that have already been written.

Whoa! Easy now…

I think the biggest difference i have seen thus far is that open GL is much more intuative than DirectX, its much easier to think through what you are doing. Thus you spend less time looking up proper syntax and more making cool projects. (Im oversimplistic, of course)

Am i right: D3D uses object model to describe scene, OpenGL uses vertex model?

No, that’s not right. Both use vertices. DirectX is object-oriented in the fact that it has class objects. Not that you give it objects. (Well, you do but in the form of vertex arrays, same as OpenGL.) OpenGL contains procedural calls rather than object-oriented calls.

Technically, you need to compare Direct3D and OpenGL since DirectX also has stuff like DirectSound, DirectInput, etc, etc.

So far as differences and which is better… It’s all a matter of opinion, and everyone has their own opinions. There are plenty of other threads where you can see those opinions.

My post above was a feeble attempt to stop another of those long Dx vs OGL threads before it got started. And now here I go again contributing to this thread.

[This message has been edited by Deiussum (edited 07-17-2003).]

Originally posted by Deiussum:
DirectX is object-oriented in the fact that it has class objects.

This is not the best place to discuss DirectX but is it not true that besides the helper libraries does DirectX has COM interfaces and COM objects?

I’ve found exellent explain this queschion by Carmack on http://www.vcnet.com/bms/features/3d.html#carmack. It looks complete good for me.

Interesting link.
Incredibly, most of the things said here still holds true (but not all).

Actually, I think the only real difference is in the portability.
To tell the truth, I think i’ll take a stab at dx8.1 / dx9 in the next months. It really makes me curious.
Having it in xBox hardware is something which made me realize I need to know a bit about it (in the case I’ll need to port something to xbox and the GL port won’t be ready yet).

Software rasterization is something d3d still rocks… oh well, not exactly since it’s way too slow to be usable but it’s always good to know a feature is there instead of checking. Some features like VPs can be emulated in sw and still get decent results but as far as I know, only nvidia does (maybe sis?) that and this simply sucks.

I’d got feeling that Direct3D can have more consistent performace on different Graphic Cards of vendors while vendor support to the opengl really varied. – my subjective opinion is Nvidia give away better Opengl Compliance cards than ATI. The difference can be huge sometimes.

I like this part the best ;D
“There is no good technical reason
for the existence of D3D.”
and this…
“…dragging the entire development community
through the messy evolution of an ill-birthed API.”
and this too, so true!
“Many things that are a single
line of GL code, require half a page of D3D code…”

DX may be ok (sound, input) but direct3d is proprietary microsoft ****

d3d doesn’t run on linux!!!

sorry

Jan