OpenGL vs. DirectX

Started by
21 comments, last by PlayerX 17 years ago
I Thought i should say something about this.

if u would like to learn the same language Down from scratch every 2 year then go for DirectX.

I Learnt the DX7 by my own harwork without any knowledge of graphics programming. then DX8 was realeased and after many days of banging my brain i found Directdraw wasn't there. then i started learning the sprite engine in DX8. and suddenly i came to know there is DX9 with Directdraw. i left my foot and ran for it. by the time i got enough time to get that whacky over 300 MB SDK from internet from my buzy life i found that the DX10 is released and then i again banged my head and stoped chasing MS. i found NEHE and learnt good things about OpenGL. since then no release of DX excites me and i will never think of using DX again. who knows by the time i learn to manage DX10 there will be DX15 in the market.

Advertisement
This question has been asked too many times already. Really; there should be a sticky for this [smile].

Quote:DirectX is more powerful/better but harder to use, is this true?

The answer is no. Both graphics APIs are equally difficult to learn. I suggest you learn one (any one) and the other can be picked up very easily. Under the hood both APIs have equivalent functionality. They are more similar than you think. I learnt OpenGL before Direct3D and when it came to picking up Direct3D, it seemed pretty easy to pick up. I don't understand what the fuss is about. Get your 3D/2D concepts clear by learning one. That I think is the most important thing to learning any of the two APIs.

I agree with exwonder, there is no versus debate. Learn one, then pick up the other.

[EDIT]Yup... there is a whole article on this. Almost forgot about that.

[Edited by - _neutrin0_ on April 10, 2007 2:49:46 AM]
++ My::Game ++
I find OpenGL to be a repulsive, badly designed mess. Others disagree. In the end, it doesn't matter. Any vaguely competent graphics programmer will end up being fluent in both. I think OGL is superficially easier to start with, but D3D becomes much easier once you decide to do anything significant (texturing, for example).

Quote:I also use Dev-C++, which is Linux based, instead of VC++
Dev-C++ isn't "Linux based". It uses GCC as its compiler, which has nothing to do with Linux. It's also a piece of junk that should be deleted and replaced immediately.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
Quote:Original post by sykosnakesix
I rarely see professional games in OpenGL, though OpenGL can be used in Linux as well.


All playstation games are made with opengl (probably nintendo consoles too)

Quote:
It's also a piece of junk that should be deleted and replaced immediately.


What's wrong with Dev c++? I've tried the MS ide's and they're horrible (stdfix.h?).
http://furboxes.com/forum
Quote:Original post by Promit
I find OpenGL to be a repulsive, badly designed mess. Others disagree. In the end, it doesn't matter. Any vaguely competent graphics programmer will end up being fluent in both. I think OGL is superficially easier to start with, but D3D becomes much easier once you decide to do anything significant (texturing, for example).


Agreed. When OGL 2.0 was around the corner, I was hoping that the situation would radically improve. It did not. For example, FBOs still don't work with anti-aliasing (EXT_framebuffer_multisample is *still* not publically available). Now, when I complain, people tell me that OGL 3.0 will fix those issues.. sorry, but I'm tired of waiting. Unfortunately I have too much code to switch to D3D9/D3D10, so for the moment I'm sticking to OGL..

Y.
Quote:Original post by Death100
Quote:Original post by sykosnakesix
I rarely see professional games in OpenGL, though OpenGL can be used in Linux as well.


All playstation games are made with opengl (probably nintendo consoles too)
Only PS3 games, and OGL|ES, not OGL. No other console uses OGL, though some of the APIs resemble it.

Quote:
What's wrong with Dev c++? I've tried the MS ide's and they're horrible (stdfix.h?).
Please. You don't even know enough about VC to remember the name of the thing you're trying to complain about.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
I can't compare OpenGL with DirectX since I never really used DirectX. But does it really makes a difference?

Nowadays most of the special effects and optimizing, heavily depends on the video-card hardware (shaders, using VBO's, and so on). 5 years ago you needed much knowledge about your API to make nice special effects (making water, reflections, and so on), but now you can do most of the work inside the shader code. Unless you choose GLSL or <what's the equivalent for DX?>, this won't have much to do with the API you're using.

OpenGL/DirectX just passes the data, and provides some buffers/textures. Maybe that's not 100% true, but I certainly feel most of the focus now lies on shaders and the video-card hardware, instead of the more advanced functions inside OpenGL or DirectX. Of course, you still need to know how to make a VBO or FBO in both API's when doing the more advanced stuff, but that has not much to do with performance, only the coding style you prefer.

greetings,
Rick
For those of you that know OpenGL very well, is there a way to share OpenGL resources like textures, vertex buffers, etc. between multiple processes like I can with D3D9Ex?

I don't want to have to create and initialize the same resource across multiple processes and would rather do it once and just pass a handle around.

Can I do this sort of thing when using OpenGL?

Quote:What's wrong with Dev c++? I've tried the MS ide's and they're horrible (stdfix.h?).


You do know that you can create an empty project that does not include the extra stuff for precompiled headers right?

Quote:Original post by don
For those of you that know OpenGL very well, is there a way to share OpenGL resources like textures, vertex buffers, etc. between multiple processes like I can with D3D9Ex?

Yes, i haven't used it myself but i know it's there.

This topic is closed to new replies.

Advertisement