Opengl Vs D3d
Ambassador
Join Date: 2003-02-24 Member: 13942Members
in Off-Topic
<div class="IPBDescription">Any noticable differences?</div> Well I started wondering which would be better for gaming OpenGL or D3D? I don't really have any knowledge of each so I'll leave it up to yall to help explain it. Are there any noticeable performance differences or visual differences?
Thx for the input.
Thx for the input.
Comments
I hear DirectX is a little easier to code, but I haven't worked with either other than a very simple openGL shader for half-life 1 done from a tutorial...
And if you have a issue with both it's time to upgrade and update your drivers/directX versions. <!--emo&:p--><img src='http://www.unknownworlds.com/forums/html//emoticons/tounge.gif' border='0' style='vertical-align:middle' alt='tounge.gif' /><!--endemo-->
However a down side is it IS proprietary. Much like Cisco routers will ONLY operate with a cisco os.
Overall, I would agree that at least for older games that opengl looked better than D3D. But now the line is faded as far as quality. D3D does have the advantage of being updated with new functionality much more often (I just got done writing a normal based bump mapping vertex+pixel shader combo in HLSL, and it friggin rules). But doesn't support linux/mac. But, of course, *most* games don't support linux/mac because of other crossplatform nightmares.
So pick whatever one that you or your partners know the most of. Not much sense in learning a whole lot of new things if you don't have to.
It's pretty easy to port most openGL code if you use GLUT, but otherwise the windowing and input support can get really annoying.
And you can use openGL for the graphics, and DX for the sound or whatever if you want.
That's just HL's implementation, which btw was what, DX5?
D3D is a lot faster and more stable now, but even then that was more of HL's implementation of it than the API itself.
Jim summed it up rather nicely though. :P
if you want to notice the difference go play a map with water and lighting effecs in it.
Go look at water in any map/mod
The Oil Rig map is a good example in counter strike.
Look at the pool of water in the swimming area in direct 3d then change to Open GL and look at it then.
From a gaming perspective:
Try both. Performance will vary between games. Pick the one that suits the game you are currently playing.
From a programming perspective:
It is your choice really. D3D has the advantage of having a corporation behind it that supports its advancement and thus will have a solid knowledge base. D3D is arguably easier to program. If you do not want to support non Windows environments then D3D is an option.
OpenGL is... open. There is a large community behind it that is very active. Possibly a bit harder to code for but much more versatile. If you want cross platform portability then OpenGL is your only choice.
if you want to notice the difference go play a map with water and lighting effecs in it.
Go look at water in any map/mod
The Oil Rig map is a good example in counter strike.
Look at the pool of water in the swimming area in direct 3d then change to Open GL and look at it then.
<!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
Look, half-life's implementation of D3D is ****, what has this got to do with openGL vs D3D?
Have you played enclave? It had an experimental openGL mode, it ran at <1 fps with the eye candy off and the resolution cranked down while D3D ran über smooth with everything on. You can do a crap implementation of anything.
edit: moultano I stop reading right here : "So here it is, my current position as of december '96...". D3D was close to garbage in the first few years, everyone knows this.
He still refuses to code for it, so I don't think his opinion has changed much.
I belive that the real test is what games are comming out in. HL2 is D3D and Doom 3 is OpenGL
That does not mean that if HL2 was OpenGL it would look any different.
Exept that some of the platforms have certain features the other one dosent.
Anyways I'm off to download the Hl2 cache so I can play Cs:S tomorrow <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink-fix.gif' border='0' style='vertical-align:middle' alt='wink-fix.gif' /><!--endemo-->
All id Software games including and after Quake use OpenGL as the rendering library.
As far as coding goes, it's somewhat simple, but the method by which new features are added (hardware extensions) can get sort of messy. They plan on fixing this in the upcoming version of OpenGL
DirectX is Microsoft's baby, and in addition to doing rendering, like OpenGL does, it also can handle audio, networking, input, and such. I'm not sure how it does as far as coding is concerned - I tried it once, and seemed pretty straight-forward, though somewhat confusing. It would seem that the method by which new features are implemented is much more robust than OpenGL's, and since it's Microsoft only, new features can be added quickly and easily, with no board to consult.
As far as performance goes, there's no noticeable gain based on rendering system alone - It all seems dependant on your card.
UnrealEngine 2 uses DirectX, as does 3, and I think 1 does, as well.
I'm drawn to OpenGL more than DirectX because it's
- Cross-platform compatable
- Used for more than strictly games (DirectX is games only)
- id Software uses it, and id Software rules.
- It's not Microsoft
- I said so
At least, that's what I know - I could be 100% wrong on each and every single point I made, and if I am, please point it out, I would like to learn as much about this stuff as I can.
EDIT: [WHO]Them, please school me <!--emo&;)--><img src='http://www.unknownworlds.com/forums/html//emoticons/wink-fix.gif' border='0' style='vertical-align:middle' alt='wink-fix.gif' /><!--endemo-->
He still refuses to code for it, so I don't think his opinion has changed much. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
IIRC he wrote a similar .plan entry sometime a few years ago detailing how Direct3D had improved to the point that his earlier comments no longer applied. He probably still doesn't use D3D because he he writes his engines to be crossplatform and he'd have to use OpenGL anyway to support anything other than windows.
He used something, Doom 3 needs DX9 to run.
He still refuses to code for it, so I don't think his opinion has changed much. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
IIRC he wrote a similar .plan entry sometime a few years ago detailing how Direct3D had improved to the point that his earlier comments no longer applied. He probably still doesn't use D3D because he he writes his engines to be crossplatform and he'd have to use OpenGL anyway to support anything other than windows. <!--QuoteEnd--> </td></tr></table><div class='postcolor'> <!--QuoteEEnd-->
I'd be interested to see that. Linky?
From what I've been told Carmack's insistance is the main reason OpenGL took off and is still around today.