Post a Comment
I remember back in 95-96, John Carmack, of id fame, wrote an article about the superior architecture of OpenGL and dismissed DirectX as some kind of Microsoft toy. It is sad to see that since then, there has been very little progress in the development of OpenGL (rip SGI) while DirectX has grown by leaps and bounds. Microsoft has eventually "got it right" with Direct X and I believe even John Carmack is now squarely in the DirectX camp (something noone would have believed 10 years ago.) I am glad that DirectX is good, but it sure would have been great if OpenGL was still alive and kicking to give Microsoft serious competition. With the up comming release of DirectX 10, the dream of cross-platform games just died a little more.
Well, OpenGL isn't exactly dead. However, you have to realise that OpenGL is developed by a consortium (the OpenGL ARB) while the development on DirectX is pretty much lead by Microsoft. It's easier for a manufacturer to push up their ideas to a single vendor than discussing and making compromises with a group. A Microsoft OS is running on most desktop/gamer machines today... They have the power to create demand, which makes their hardware partners happy.
At the same time, DirectX is an API covering most multimedia peripherals while OpenGL merely deals with graphics. Thus, game developers using DX don't have to learn and live with the quirks of many different APIs. SDL is an interesting alternative, but it doesn't have any serious backing.
Uh, what exactly are you talking about? OpenGL is more vital now than it has been in a long time, and its been doing an excellent job of keeping up with Direct 3D. Both have had five major releases (DirectX 5, 6, 7, 8, and 9 and OpenGL 1.2, 1.3, 1.4, 1.5, and 2.0), and both have rough feature-parity, with support for a highly programmable pipeline with high-level shading languages.
It may seem like OpenGL progresses mor slowly, because the ARB doesn't do minor releases like Microsoft does, but support for new hardware features is added via OpenGL extensions in a very prompt manner. And while the use of such extensions may require vendor-specific code, in practice this is managable because ATI and NVIDIA are pretty much the only games in town, and they tend to keep their OpenGL extensions largely similar. At the same time, uneven support for the various "shader models" in NVIDIA and ATI hardware result in hardware-specific paths for D3D as well.
As for Carmack being on the DirectX camp, since when? Doom III is still written in OpenGL. Carmack's remarked that Microsoft's dev tools for the 360 are better than Sony's dev tools for the PS3, but that's a seperate issue.
The second post on this thread has some very god snippets from interviews with game developers regarding D3D versus OpenGL:
http://www.genesis3d.com/forum/viewtopic.php?topic=1005331&forum=9&...
IMHO, OpenGL is still a better designed API. While DirectX has always been one of Microsoft's more sanely designed APIs, it still doesn't have the simplicity and elegence of OpenGL.
In all, now is a better time for OpenGL than it ever has been. It's making serious headway into the gaming market. OpenGL ES will be the primary 3D API on the PS3. The Gamecube already uses an API very similar to OpenGL, and the Wii will likely follow suit. OpenGL now has a very big and successful proponent in the form of NVIDIA, and continues to own the professional 3D market. Over the next few years, OpenGL's market-share in the gaming market is going to grow, if only for the PS3, while it is unlikely that Direct3D's marketshare in the professional market will rise above its current trivial levels.
I see allready the game dev's shouting how great DX10 will be. Everyone who wants to play games need to run Microsoft again. Everything else will be emulated and at a lower quality. If a firm is launching something big like that shouldn't that be platform independent?
And why is the industry allowing this ?
Just my 2 cents....
Game developers want to be as close to the metal as possible without tying themselves to specific hardware. This makes it possible for games to run as fast as possible on a wide variety of video cards, etc. Consequently, it makes sense that MS has developed and standardized DirectX within the industry. I would rather that game developers focused on game play rather than the minutia of inventing their own forms of DirectX, as was the case back in the bad old days of DOS. That's why the game industry allows this. Because somebody had to develop the technology. And just because MS did it doesn't mean that somebody can't do better. I think that the industry would gladly embrace a competitor if they could provide superior technology; particularly cross-platform technology. Whether OpenGL can meet that need is very much up for debate.
I dont have much of a doubt in my mind that OpenGL can do what DX 9 at least is doing. But the bigger question is will it become as popular? DX has such a big presence in the market, it is natural for developers to gravitate towards DX even though OGL is out there. Also now that PC and Xbox 360 games are on the par, it makes it a much better cross platform development kit doesnt it this DX stuff?
Not quite but there is shader language.
http://www.opengl.org/documentation/
Edited 2006-06-28 00:51
Pixel and vertex shaders were added to OpenGL a long time ago. First via NVIDIA and ATI specific-extensions, then via official cross-vendor ARB extensions, then as a core part of OpenGL 2.0. OpenGL 2.0 also has a high-level shading language, comparable to Direct 3D's HLSL.
Newer features like floating-point textures are available through OpenGL extensions. Don't get the wrong idea about extensions. OpenGL is a small world, so extensions are quite often supported by multiple vendors. For example, both ATI and NVIDIA supported the ATI_texture_float extension for floating-point textures. That extension evolved into the ARB_texture_float extension, which is an "official" ARB extension supported by multiple vendors.
I gave up DirectX when around 8 or was it 6 you suddenly had to buy an MSDN subscription to get the latest updates and bug fixes. I hung in for awhile but the concept of working my ass off on a game and then either paying for the priveledge of helping to make their OS more popular or using buggy release behind libraries did not appeal to me. OpenGL is very nice and full featured and for simple 2d things I find SDL is easier.
Well I definitely missed that completely. From the interview:
"the desktop in Vista is drawn using DirectX 9..."
Uh, that's news to me.
"...we were making some minor tweaks to DirectX 9 to accommodate new features that were needed to do the desktop."
So they're basically putting a modified version of DX9.0 in Vista to run the desktop. And then DX 10 to run the games. Am I wrong? Two versions of dx on the same system? Or is it DX10 that handle the 9.0 modified calls? I'm puzzled.
"For us, it's best to have one consistent platform."
... no comment.
So they're basically putting a modified version of DX9.0 in Vista to run the desktop. And then DX 10 to run the games. Am I wrong? Two versions of dx on the same system? Or is it DX10 that handle the 9.0 modified calls? I'm puzzled.
DX 10 is not complete, no hardware is widely available, and it would increase system requirements, so they couldn't use it for the Vista desktop (though an update could come in a later Vista release or a new Windows release).
The primary thing they added to D3D 9 in Vista is the ability to share graphics resources across processes. This enables the DWM to have access to all applications' graphics surfaces so they can be composited, shaded, or otherwise manipulated, not to mention shared to cut down on resource usage.
D3D 9 in Vista, along with Vista's new display driver model, also supports managed/virtual graphics memory resources, extended gamma range, text antialiasing, and non-exclusive full-screen devices.
Otherwise, D3D 9 in Vista is just like in downlevel versions and should be used by developers if they desire compatibility with downlevel OSes.
D3D 10 is used if you desire the new features it supports (unified shader model, geometry shader, more efficient scheduling and memory management methods, etc.). You can develop a game that uses D3D 10 on Vista and D3D 9 downlevel.
All graphics APIs use a common pipeline on Vista, ultimately going through the DXG kernel.
Surely I've read about "Vista only" for DX10, however I'm curious.
Xp64 (which is my main platform) based on Server2003 core. Won't XP64 be able to run DX10? If so, I BET there'll be a lot of people jumping onto that train instead of Vista.
I really really don't wanna downgrade to Vista from Xp64. Surely I'm a hardcore gamer, but then tradeoff in terms of personal integrity is just far to heavy.
Maybe there'll be a stripped, non handicapped version of Vista available as a LiveCD for us gamers that'll work out, that'd be fine!
Running windows as a livecd is a bit mad. Windows, when run with a livecd, is so slow that the only real use is for things like sysadmin and forensics, barely even including "secure" net usage.
And I'm talking about the unofficial BartPE, not the official-cum-stopped one.
Trying to load DX & games on the livecd is even more absurd. This is not *nix where you can really stripe it down to give you space or something...
..everybody who doesn't like it has the same reasons which are just not true.
People say, Java is not fast enough. Everybody who know Java well, can give you various reasons why this is not true.
People say, OpenGL can't do what DX can do. Everybody who is working with GL knows, that every decent thing you can do with a recent GPU, you can do with GL, and you can do it well. And an "extension" is nothing you have to search for on ebay, too!
But for example: Everybody talks about high level language shaders as the most important thing nowadays. Well, let's see: GLSL (counterpart to HLSL) is part of OpenGL 2.0 core(!), and that's out since Sep **2004**!
cu
Ford Prefect
Edited 2006-06-28 14:09



