“When DirectX 10 rocks your PC with the release of Windows Vista early next year, it will come courtesy of a trio of forces: The graphics card companies obviously play a huge role, as do the game developers, but DirectX is Microsoft’s baby. Ultimately it is up to Microsoft engineers to work together with IHVs and game developers to define the API. We managed to sneak some time into the busy schedules of two key Microsofties to find out what makes DX10 tick, and why they think you’re going to want to migrate to a DX10-capable computer for the best experience the PC has to offer.”
To Get Vista and DX10, if you want to play Crytech and Halo3. New graphics card and OS to folk out for.
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….
So a firm shouldn’t launch a great new technology simply because everyone else is behind? In essence, that’s what you’re saying.
No, read it again. What about fair trading ?
… You have no idea what you’re talking about.
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?
Is that true, though? Can OGL do pixel shaders and a lot of the card-specific optimizations in recent years?
Not quite but there is shader language.
http://www.opengl.org/documentation/
Edited 2006-06-28 00:51
Yes, in OpenGL, new functionality can be added in form of extentions so that the core standard remains untouched.
ARB_fragment_program is the extension that handles pixel shaders in OGL.
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.
LOL. Yes, of course it can. You can bet that Doom3 wouldn’t have used it if it couldn’t, and even if it did it would have looked horrible in comparison with just about every other game on the market.
I’m no expert in the Doom engine, but if I traced the previous IdSoftware engines correctly I would say it wouldn’t be very hard to add D3d rendering to any of them.(Take it with a grain of salt anyway)
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.
DirectX SDK updates are released on a bi-monthly basis and are available from Microsoft Downloads page. No MSDN sub required.
Has been written from the ground up.
If you want to write for it and want something that is easier.
Try C# (C-Sharp) and Managed Direct 3D 10.
It really does not get easier than that.
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…
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.
No version of XP will run DX10. D3D 10 requires the new display driver model present only in Vista.
..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