DirectX10: The Next Generation in Gaming

Wikipedia says DirectX is a collection of APIs for easily handling tasks related to game programming on the Microsoft Windows operating system. It is most widely used in the development of computer games for Microsoft Windows. The DirectX SDK is available free from Microsoft. The DirectX runtime was originally redistributed by computer game developers along with their games, but later it was included in Windows. Game developers still often include an updated version of DirectX that prompts installation automatically after the game installation to ensure proper program functionality.

Not just another version

DirectX’s popularity over the years has been steadily increasing. Classic games like Thief: The Dark Project, Max Payne, Grand Theft Auto III have used various versions of DirectX to support their graphics. In more recent times, we see top class games like Half-Life 2, Battlefield 2, World of Warcraft and Oblivion: The Elder Scrolls IV making use of DirectX 9.0b/c.

Suffice to say that the latest games use the newest available version of DirectX.

But hey, DirectX10 is not just another version of DirectX. This version has been re-built from the ground up to change the way applications think about material management and load balancing between the CPU and GPU. D3D10, as also DirectX10 is called, takes advantage of the improved communication between the CPU and GPU and efficiently manages the data transfer between them.

As a result of your graphics card becoming more powerful, not only do you get more pixels, but you get more materials and objects. The complexity of scenes and environments can increase exponentially without ever increasing CPU overhead. This means that the CPU handles all film-like (advanced) graphics effects, material management and so frees up CPU cycles to concentrate on AI and Physics.

Exclusivity to Windows Vista

DirectX10 is exclusive to Windows Vista and is not slated to be supported by any other platform. This will ensure that the next-gen games will be available on Windows Vista before any other platform.

The new display driver or graphics model in Windows Vista, WDDM (Windows Display Driver Model), is the main reason for DirectX10’s exclusivity to the operating system. It may come as a surprise to know that the graphics driver model hasn’t changed much since Windows NT4 – WDDM is the first major revamp of the system and is designed for scaling high-capability graphics.

DirectX10 depends on these improvements in the graphics model and so, it leverages the virtualization and architectural improvements of WDDM, in both the APIs as well as the underlying infrastructure.

Gamer Benefits

DirectX10 offers a wide variety of benefits to gamers. Let’s dive into the details now:

Greater detail, realistic shadows

Picture 1: DirectX9 (Halo: Combat Evolved)

Picture 2: DirectX10 (Crysis)

You can see the difference for yourself when we compare Picture 1, a screenshot taken from ‘Halo: Combat evolved’, a PC game which was among the best of its class at release to Picture 2, an image from ‘Crysis’, a PC game which is slated to release soon. Halo uses DirectX9.0b to support its graphics while Crysis makes use of DirectX10.

DX10 adds a new level of realism to games by making characters more life-like. You can see the incredible detail in the screenshot above. The facial expressions, pockmarks on the face, the handle-bar moustache and the glazed looking eyes all add to the realism.

In DirectX10, the next generation in graphics has arrived.

Greater detail, realistic shadows

Picture 3: DirectX9Picture 4: DirectX10

DirectX9 ‘simulates’ detail with techniques like normal mapping while DirectX10 actually increases the amount of detail in game characters and materials. Shown above are two fish, the first, in Picture 3, is rendered using DirectX9 while the second, super-cool looking fella in Picture 4 is rendered in DirectX10. Observe the spikes with respect to the white background (on the silhouette edges), you see that the bumps on the DX10 fish are a lot more pronounced than the ones on the DX9 fish.

DirectX10 also offers more realistic looking shadows. Showcased below, in Picture 5 is a character with its shadow’s volume accentuated. The green light shows just how the shadow is created (depending on the light source) and how the shadow is featured on the ground. On DirectX9, the shadow volume is generated on the CPU, reducing performance for every new shadowed character on-screen whereas in DirectX10, the shadow volume can be generated and rendered entirely on the more-capable GPU.

Picture 5: Shadow Volume (Realistic Shadows)

Richer scenes and complex environments

Picture 6: Windows Vista wallpaper rendered in DirectX9

Picture 7: Windows Vista wallpaper rendered in DirectX10

In Pictures 6 and 7, we see artist conceptions of one certain Windows Vista wallpaper with mountains overlooking a water body. The artist renderings were created using Microsoft Flight Simulator X in DirectX9 and DirectX10 respectively. The dramatic differences are apparent. On first glance, you observe that the water looks a lot more real with foam and waves. DirectX10 makes new ‘volumetric effects’ possible, which in turn make the clouds in Picture 9 look thicker and more prominent while the scattering of light adds a great effect to the dark side of each of the mountain tops. You’ll also notice that the edge of the forest looks a lot more prominent and contains greater detail in Picture 7. Finally, in Picture 7, you see that DirectX10 allows for accurate reflections of the mountain even in choppy water while in Picture 6, DirectX9 provides a more plastic reflection.

Dynamic in-game scenarios

Picture 8Picture 9

Picture 10Picture 11

Pictures 8 through 11 show a vines growing on and around a crypt as time passes while in a game. DirectX10 facilitates the game engine to dynamically change the appearance of the crypt with passing time. This enables the in-game levels/scenarios to evolve with time passed inside the game, thus replacing the static environment with a unique one by simulating natural growth.

DirectX9 is not capable of creating new geometry on the GPU. It is also not capable of storing intermediate geometric results, i.e. scenarios between Picture 8 and Picture 11 could not have been GPU-generated using DirectX9.

Motion blurring

Picture 12Picture 13

Seen above in Pictures 12 and 13 are examples of realistic motion blurring, which is made possible by DirectX10. In earlier versions of DirectX, game developers were required to smudge the final image to achieve motion blur. In DirectX10 however, motion blur can be performed in object-space, simulating a camera exposure of an object across multiple sub-frames.