DirectX 10, What is all the Fuss?Written on February 28, 2007 by
DirectX is something the average gamer doesn't give much thought. Often they don't even see the word until one of their games complains it is out of date. Even then, the necessary version is usually included, so all they have to do is do a quick, painless install and they're on their way. DirectX 10 is a bigger deal. It is a more exciting update, and is more of a concern if you're buying a new system. That means it is time to do some reading! The purpose of this article is to give you an overview of what to expect from DirectX 10, and what you need to run it.
What makes it better?
|Rendered in DirectX 9||Rendered in DirectX 10|
Those screenshots above are straight from the Vista market efforts. Take them with a grain of salt, but they at least give you an idea of what kinds of differences you'll see. Exactly how DirectX 10 is better can be a very technical topic, but it can be boiled down to a few simple concepts that can get across the general idea:
1) Tighter Hardware Standards
One major annoyance to game developers of DirectX 9 is that there are not strict standards on how a video card implements the DirectX 9 features. This means that there is a lot of variation in hardware implementation, and it means that the game developers have to work extra hard to make their game work for all that hardware. They have to write specific code for each hardware variation. This is why PC games can be fine with one video card, and unstable with another -- there can be a bug within the special code they wrote for just one set of hardware. Think about console games (X-Box, PS2, etc), and how those games have less problems with stability than PC games. It is because with a console game, the game developers know what they are working with, and they know there is no variation in hardware.
By requiring tighter standards, game developers for PC games gain this same benefit. They no longer have to go through the hoops of writing specific code for all the hardware variations. By only having to write one set of code, games can be more easily developed, and more thoroughly tested.
In addition to loosely defined feature implementation, DirectX 9 also does not require that all features are even implemented at all. This means that game developers are working to program great looking features into their games, knowing that only the minority of people able to afford the most high end hardware will ever see it! When was the last time you ran a game on full video settings? The majority of gamers do not have the hardware to do it. It must be frustrating for game developers to work hard on features that most of us never see!
DirectX 10 addresses this in the same way, with the same tighter standards. Unfortunately, these standards mean that it will be harder for manufacturers to make DirectX 10 cards. It will also mean there will be less models of cards on the market, and they may cost more. This will also mean that it will be a while until we see DX10 support in the low-end. This technology is for the cutting edge only - business office terminals need not apply! While this isn't something we can all be thrilled about, we can all look forward to the results of what a big help this is to game developers.
2) Unified Architecture
One of the big improvements in the code of DirectX 10 is the new way it looks at a video card. The move is to really consider a video card to be a processor. We've seen this shift start back with DirectX 8, which the idea of programmable shaders was introduced. Before that, specific effects had to be hard wired into the video cards. With programmable shaders, game developers could introduce their own effects. However, in DirectX 9 you still have dedicated processing units devoted to vertex and pixel drawing (making the shapes of the picture) and to the shading (making the picture more realistic). It is an increasing problem that a particular scene might need lots of vertex calculations, but not much shading, or vice versa. In those instances, the unused processors simply sit idle! DirectX 10 remedies this by simply having one operation -- a geometry shader. This performs both actions, which means that not only can it use all the processing units on the video card for whatever it needs, but it also means that the game developers can get the image they want with fewer requests...which means less overhead.
3) Reduced CPU Overhead
This reduction in overhead is a big deal. Any requests to the DirectX API translates into CPU overhead, so DirectX 10 takes aim at reducing the number of requests required. With DirectX 9, the overhead is somewhere around 40%. This means that a little less than half of your hardware is being used up just by the DirectX infrastructure! DirectX 10 is able to reduce this down to 20%, which is an impressive improvement. It means that games running DirectX 10 will only need half the CPU time for DirectX related calculations, freeing up the CPU to focus on other aspects of the game like AI.
Among other things, another feature introduced in DirectX 10 is called "Instancing." This is a feature that allows the same object to be rendered multiple times without all the overhead. Without it, game developers are limited to roughly 500 objects on the screen before the overhead gets ridiculous. With DirectX 10, you'll see a new ability to have virtually limitless numbers of objects -- the only limit is the speed of the hardware. This means bigger armies, more trees, even individually rendered blades of grass if the game developer chooses! In whatever way it ends up being used, Instancing will be a big part in bringing game detail to the next level.
What is needed to run DX10?
- Windows Vista
- A DirectX 10 video card
- DirectX 10 Games
What Video Cards are Available?
Which cards are available to you at this very moment? Any Nvidia 8000 series cards (8800GTX, 8800GTS), and THAT'S IT! This has been a real sore spot for ATI, but look for their R600 GPU for release in Q2 of this year. The spring GPU tech refresh for this year is going to be a key time in the graphics world to see whether ATI can steal back some spotlight, and DX10 is going to be a big part of the fuss.
What Games are Coming Out?
If you've got the necessary video card and have Vista, then you're ready to go. What's on the horizon for you to play on your new DirectX 10 ready rig? There's some great looking stuff in development:
A new FPS merging magic and technology with some interesting ideas for team multiplayer. Approx release date: June 2007.
Another FPS which has been recently highly acclaimed for its visuals, from the makers of Far Cry. Approx release date: June 2007.
A "psychological action thriller", from the makers of Max Payne which looks to be shaping up to be a good contender for game of the year. Release date not yet announced.
|Unreal Tournament 3|
The next iteration of the classic deathmatch shooter. Approx release date: Q2 2007.
|Flight Simulator X|
The culmination of nearly 25 years of the landmark Flight Simulator franchise. Available now, with a future patch to DX10.
Will be patched to support Direct X 10.
A futuristic hack-and-slash with demons, guns, and magic - what else do you need. Approx release date: Q2 2007.
A real-time strategy game, from the makers of Total Annihilation. Available now with DX9 support, and will be patched to DX10 later.
The multi-billion dollar gaming industry is a large driving force for hardware improvements, and DirectX 10 is a huge improvement to gaming software developers. We have to wait for those games to come out, but there's something for everyone in that list and every gamer out there has got to be drooling by now. The thing to remember though, is this: You have to have all the pieces of the puzzle to play those games the way the developers intended you to!
For information, including more screenshot comparisons between DirectX 9 and 10, you can also check out the DirectX 10 Whitepaper on the Windows Vista Team Blog.