Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  

Carmack On OpenGL Versus Direct 3D

Recommended Posts

Taken from Slashdot (thx Voodoo Extreme):

I'm still developing everything with OpenGL, and I'm still targeting mac and linux as well as windows, but I want to rationally address some points in the API debate:

D3D is clunky, etc

Not really true anymore. MS made large strides with each release, and DX8 can't be called a lousy API anymore. One can argue various points, but they are minor points. Anti-Microsoft forces have a bad habit of focusing on early problems, and not tracking the improvements that have been made in current versions. My rant of five years ago doesn't apply to the world of today.

I do think that the world would be a slightly better place if Microsoft had pulled an embrace-and-extend on OpenGL instead of developing a brand new API that had to be rewritten a half dozen times, but its water under the bridge now.

Open for more sales, etc

It has been pretty clearly demonstrated that the mac market is barely viable and the linux market is not viable for game developers to pursue. Linux ports will be done out of good will, not profit motives. From an economic standpoint, a developer is not making a bad call if they ignore the existence of all platforms but windows.

DX8 Gives more features

Some people have an odd view that an API gives you features. Assuming you don't care about software emulation, hardware gives you features, and an API exposes them. If you try to use vertex programs or bump env map on a TNT, DX8 doesn't magically make it work. DX8's hardware independence is also looking a bit silly now as they make point releases to support ATI's new hardware. They might as well say D3D-GF3 or D3D-R200 instead of DX8 and DX8.1.

All of Nvidia's new features have showed up as OpenGL extensions before they show up as new D3D features.

Divergent extensions haven't been a problem up until very recently. All of the vendors tended to support all the extensions they could, and if they had unique functionality, like register combiners, they made their own extension. The current status of vertex programs does piss me off, though. I really wish ATI would have just adopted Nvidia's extension, even if it meant not exposing every last bit of their hardware.

Abstraction in a high performance environment can be dangerous. If you insist that all hardware behave the same, you prevent vendors from making significant improvements. If the spec for behavior comes from people that aren't hardware oriented, it can be a huge burden. D3D still suffers somewhat due to this, with some semantics and odd features that make hardware guys wince.

The Good News

We are rapidly approaching a real golden age for graphics programming. Currently, cards and API's are a complex mess of hundreds of states and function calls, but the next two years will see the addition of the final primitive functionality needed to allow arbitrarily complex operations with graceful performance degradation.

At that point, a higher level graphics API will finally make good sense. There is debate over exactly what it is going to look like, but the model will be like C. Just like any CPU can compile any C program (with various levels of efficiency), any graphics card past this point will be able to run any shader. Some hardware vendors are a bit concerned about this, because bullet point features that you have that the other guy doesn't are a major marketing feature, but the direction is a technical inevitability. They will just have to compete on price and performance. Oh, darn.

It's a Turing machine point. Even if OpenGL 2.0 and DX10 don't adopt the same shader description language, they will be functionally equivalent, and could be automatically translated.

There is lots of other goop like texture specification and context management that will still be different between API, but the core day-to-day work of a graphics programmer will be basically above the disputes.

John Carmack

Share this post

Link to post

o so what are you now? tough guy?

Actually I found it interesting, and informative. It wasn't some wild rumor, it was straight from Carmack's mouth -- so don't flame him for it.

And I agree with Carmack that even though Direct X has improved much, OpenGL is still a better API.

Share this post

Link to post

What the fuck are you talking about, Kain?

Oh, and thanks for stealing hits from whatever site originally posted that by copying instead of posting a link, Dima :)

Share this post

Link to post

DiSTuRBeD - no problem :)

bigbadgangsta - kain is talking bullshit all the time, he never has anything important to say and never will.

Share this post

Link to post

Will I need a Geforce3 just to play because API writer's are to damn lazy to oversimplify easy to use functions for a card like let's say a TNT?

Share this post

Link to post

Unprecidented my ass!! Unless everyone in america[who owns a computer AND wants to play DooM]I[ ] has a geforce3, which won't be standard in anything less than a $2500 box, id is gonna do a repeat of Daiktawhatitsname...
Albeit known, geforce(4)[read whatever] WILL be available by then, most "folks" will still have anything from a tnt2[which just got put into low-to-mid-ranged boxes] to a voodoo5[or 6 maybe 7,8,9...]. If id wants to see the turn around and playability that they saw[never could have fortold] with the OG DooM, they'll make it playable with these lower end cards, and not only a geforce2-mx400 in low res mode. DooM did what it could with what it had, a bunch of 486SX/25's. It wasn't until EVERYONE had a 486DX2/66 w/ 8 megs[Whoaa there fella], that id saw in DooM what they hoped for. Pinto's to porsches baby!!! id's cash will come in from license, yeah, but licensed companies won't make money if no one's got the hardware!!! I say: patch the first beta to work with "old" cards and see how people who aren't techies, editors, or millionaires swoop on it. id could include a forum for users to post their experiences with the different cards. Not only that, in two years[when DooM]I[ IS finally released], a lot of the older cards would have been replaced with MID-range cards, which by today's standards are "superior in quantization of high res-polymorphic AND antialiased polys", which to ALL means nothing. Make the game work for the masses and the masses will BUT IT!!! They[Carmack and Romero] don't make games to give back to the world. They make games to RULE THE WORLD!!!...

Share this post

Link to post
This topic is now closed to further replies.
Sign in to follow this