Direct3D

The key to the way Direct3D (D3D) allows the game developer to author games independently of PC’s hardware is its Hardware Abstraction Layer (HAL), which has the effect of making the software device independent. The HAL provides an interface to capabilities that are widely implemented in 3D graphics hardware and allows the manufacturers to produce drivers which link HAL to the hardware. This allows the D3D applications to exploit hardware features without having to be authored for that particular device.

Direct3D is generally regarded as being less flexible than OpenGL, despite offering a low-level programming mode intended to make it more equivalent to it rival, known as Intermediate Mode.

In the Direct3D rendering pipeline, the geometry of 3D objects is processed by the host CPU before the 3D accelerator kicks in to render a 3D scene onto the screen. During 1998 – as chip makers madly raced one another for bragging rights in terms of having the fastest 3-D accelerator – DirectX 5 quickly became a bottleneck in the 3D-rendering process. As the situation was about to even worse, with the advent of the third-generation 3D chips, Microsoft overhauled DirectX’s transform and lighting APIs to enhance the efficiency of the geometry processing and balance the system architecture. DirectX 6.0 (in fact, its fifth release), was released in the summer of 1998, and offered a host of new features to improve 3D rendering for games and modelling applications.

The version 6 Direct3D component supports the ability of newer graphics cards to perform multiple texture renders in a single pass, dramatically reducing the time needed to apply texture maps. It also includes newer techniques for adding realism to 3D scenes, such as anistropic filtering, which adds an element of depth to trilinear filtering, and bump mapping, which creates the illusion of real textures and light sources onto flat planes. The trend for the incorporation of OpenGL features has continued with support for stencil plane operations – the superimposition of images on a 3D scene, rather than textures applied to single 3D objects.

So, in the battle for dominance in the PC 3D graphics arena we have Direct3D in the one corner, a contender by virtue of Microsoft’s massive industry muscle, and OpenGL in the other, with less of a stranglehold on the Windows platform but with apparently the greater developer support. In the formative stages of DirectX V7.0 it appeared that this stand-off appeared to be headed for an eminently sensible outcome with the news that Microsoft and SGI had teamed up to produce something called Fahrenheit. However, by the time DirectX V7.0 came to market in 1999, despite it continuing the trend of incorporating OpenGL features, the prospects for Fahrenheit appeared to have dimmed.

As well as being optimised to run up to 20% faster than its predecessor, V7.0 included a number of new features. The most important of these is support for hardware-accelerated transformation and lighting (T&L) as supported by the majority of current-generation 3D cards – and notably those based on nVidia’s GeForce 256 and S3’s Savage 2000 chipsets. Since T&L represents one of the most CPU intensive tasks in modern day games, redirecting the job to a dedicated 3D accelerator frees up a significant amount of main processor capacity for other tasks – such as game AI – allowing games developers to incorporate greater rendering detail and more process-intensive special effects.

DirectX 8.0, released in late 2000, introduced a number of important changes in the following areas:

Further simplification of initialisation and the use of the Direct3D API, adaptation of the model offered by Direct3D to the capabilities of the latest hardware and elimination of legacy interfaces support

Expansion of the Direct3D interface into new 3D accelerator technologies such as volumetric textures, multisample rendering (including T-buffer support), etc.

Introduction of the new principles of data processing: shaders, both at the pixel level of rasterisation (pixel shaders) and at the level of geometry data (vertex shaders).

The changes in the area of programmable shaders will result in greater flexibility for the developer and improved image realism. There are two types of programmable shaders: vertex shaders and pixel shaders. Vertex shaders can be used for morphing/tweening animation, matrix palette skinning, user-defined lighting models, general environment mapping, procedural geometry and any other developer-defined algorithm. Programmable pixel shaders allow interesting effects, such as true reflective bump mapping.

The most important aspect of DirectX 9.0, released in January 2003, was the introduction of Microsoft’s High-Level Shader Language (HLSL).

Prior to DirectX 9.0, games developers would have to develop shaders using a low-level assembly language. HDSL changes that, introducing a developer-friendly programming environment that facilitates every aspect of development, from the creation of vivid art and animation to effects programming. Based on the C programming language, HLSL is compatible with all DirectX-compliant graphics processing units, and allows developers to define a similar visual effect across the widest range of platforms without needing to be aware of the intricate details of the particular graphics hardware.

Related

Latest Articles

AV Secure 2012
AV Secure 2012 is a malware client. These kinds of viruses pretend to be legit programs but they are far from it. AV Secure 2012 will scan you computer and show you false virus infections. Users will get constant warnings that they are infected and they need to purchase the AV Secure … [Read More...]

Photo CD has been specified by Kodak and Philips based on the CD-i Bridge specification. It comprises the following:
General Disc format including example of program area layout, index table, volume descriptor, data area, subcode Q-channel … [Read More...]

Modern-day motherboards have EEPROM BIOS chips that can be reprogrammed by software. These are also referred to as flash PROM or flash ROM, the process by which they're updated being known as flashing.
If your BIOS isn't flashable it's still possible to update it - provided it's housed in a … [Read More...]