Moving Forward, While Others Catch Up
Only a few years ago, Microsoft was drumming up hype for DirectX 10, the new API that shipped with Vista. It was a significant re-design, meant to make coding easier for game developers while at the same time adding new features that would make DirectX 10 games look better than anything prior. Because it was such a major change, Direct X 10 was announced as Vista-only. Those using Windows XP cannot and will never be able to use DirectX 10. This seemed a bold move at the time, but in practice it hasn’t had the impact that was predicted. The main reason for this is that DirectX 10 games require some fairly serious hardware in order to run smoothly. As a result, DirectX 10 is often not used even by those who have Vista. DirectX 9 is still important, and seems to get the lion’s share of support from many game developers.
But Microsoft, perhaps wisely, is continuing to move forward even as the developers play catch-up. Windows 7 promises to bring DirectX 11 along with it. The big questions are what Direct X11 entails, and whether or not it will be compatible with Vista.
DirectX 11 adds new stages to the graphics pipeline. These new stages are called the Hull Shader, the Tessellator, and the Domain Shader.
The Hull Shader and Domain Shader basically operate in support of the Tessellator. The Tessellator itself is a way of increasing scalability of game characters, as it aids in chopping up a character being rendered into smaller pieces which can be rendered or not rendered, depending on the level of detail needed. The use of character models that scale in terms of detail depending on how they close are to the player and the graphics hardware the game is running on has been a popular topic for years now, but the potential of scaling character models is far from exhausted. The inclusion of a tessellator in the graphics pipeline of DirectX 11 will give developers more tools for scaling their character models, and this should in turn make DirectX 11 games more capable of presenting acceptable graphics when used on low-end hardware while at the same time presenting appealing graphics when used on high-end hardware.
Also added by DirectX 11 is the compute shader. There has been much talk recently about using the large amount of computing power available in graphics hardware for tasks other than rendering graphics, and the compute shader is aimed to help developers harness that compute power for non-graphical tasks, a job that is currently supported by both Nvidia and ATI, but using their own proprietary systems. DirectX 11 should make standardization possible, which in turn should make the use of video card compute power for non-graphics tasks more common. If developers know that they can use DirectX 11 to harness GPU compute power, and that this will work on any DirectX11 compatible hardware, they will be much more inclined to use GPU compute power of their own volition, rather than because ATI or Nvidia is pushing some extra cash or marketing deals their way.
While DirectX 11 adds many new features, just as any other new version of DirectX would, it will be compatible with Vista. The reason DirectX 10 could only be used on Vista was because it significantly changed the way DirectX worked. It made less graphical features optional for developers and it made significant charges to the graphics pipeline which were incompatible DirectX 9 coding. In the long run these changes were probably needed, but it caused short-term compatibility shock which developers (and Windows XP or pre DX 10 hardware users) are still dealing with. DirectX 11 does not include such major changes, and so it will be fully compatible with Vista. Of course, Windows XP users will still be stuck with DirectX 9.
There are still issues with hardware compatibility, however. Tessellation is not supported by all graphics hardware, and it may also turn out that current graphics hardware won’t be compatible with the DirectX 11 compute shader. It is a good bet that no matter what kind of video card you have in your PC today, it won’t be able to fully support DirectX 11. Normally, this wouldn’t be a large problem, as graphics hardware used to require constant replacement. However, a Radeon 4870 can be purchased today for well under $200 dollars, and when supported by a decent processor it can run any game available today at high detail settings on a 22" monitor. As a result, many users will probably not have DirectX 11 compatible hardware even years after DirectX 11 is released.
The Changes You Will See
Although DirectX 11 makes important changes, don’t expect to see them result in any instant revolutions in the ways graphics are rendered. Changes to the ways that developers need to code graphics tend to be adopted very slowly. That does not mean those changes are not needed, but it does mean that the chances of DirectX 11 being viewed as revolutionary are very slim. DirectX 11 is a smaller evolutionary change than DX 10 was, but some parts of the API will still take years to be adopted. Appropriately, Microsoft’s hype for DirectX 11 has been less intense, and as a result users will not be expecting the massive leap forward that was looked for in DirectX 10. Make no mistake, however - the addition of Tessellation and Compute Shader support is important, and will lead to significant changes in how GPU power is used in the future.