Directx Development History

  • Tags : directx
  • time :

The Development History of DirectX and DirectX10.0

If PC users are familiar with the Windows operating system, then game users are also familiar with the name of DirectX. I believe everyone still remembers Microsoft's release of DirectX3.0 in 1996, along with classic games such as Red Alert and FIFA96. At that time, DirectX appeared in the form of a software development toolkit called GameSDK. But to everyone's surprise, after several years of development, DirectX has become an extremely important part of the Windows operating system and a deadly weapon for Microsoft to restrain many hardware manufacturers. DirectX integrates the Direct3D interface, making the Glide3D interface that 3DFX has been working hard on for many years disappear. After Microsoft withdrew from the OpenGL organization, Direct3D quickly became the absolute mainstream of 3D interfaces. For display chip manufacturers and game developers, following DirectX API has become a default dead command, and now we have entered the era of DirectX 10.

1. The competitive stage for DirectX hardware manufacturers .

Before the popularization of DirectX, most games were developed under DOS because DOS could directly access hardware, and developers had almost no need to consider the compatibility of various hardware platforms with games. However, Windows protects the underlying access permissions of many systems, making it difficult for many developers to adapt. Microsoft is acutely aware that if it cannot fully open up the entertainment market under Windows, Windows will never be able to replace the classic DOS. To this end, they proposed two standards: HAL (Hardware Extraction Layer) and HEL (Hardware Simulation Layer).

Hardware extraction allows developers to program without considering hardware characteristics at all, as it implements basic interfaces of various hardware and truly achieves hardware platform independence. This is very important, and it shares similarities with the currently popular Java language. In fact, before HAL, Microsoft had also advocated GDI and MCI, but relatively speaking, HAL is undoubtedly more advanced and easy to accept. The hardware simulation function of HEL has taken games under Windows to a new level, because even if we don't have a 3D accelerator card, we can use simulation to achieve pseudo 3D, which is much better than plain 2D graphics.

From the current perspective, it seems that HAL and DEL are not a big deal, but they have indeed helped DirectX stand firm and laid a solid foundation for its future vigorous development. Of course, just having these is far from enough, and in the subsequent DirectX, Microsoft also grasped the lifeline of hardware vendors. The downfall of 3DFX is certainly due to the rise of NVIDIA, but another major factor should be the opposition between 3DFX and Microsoft. As is well known, Glide3D is the 3D acceleration interface that 3DFX is proud of, and it was indeed much more advanced than Microsoft's Direct3D at that time. However, due to 3DFX's insistence on patents and refusal to fully open them, it has caused strong dissatisfaction from Microsoft. Hehe, think about Netscape, 3DFX and his fate are the same. At that time, everyone said how good the performance of Lunix was because Voodoo2 was much faster than uake3 on this operating system compared to Windows. But have you ever thought about why this is? Is it that Windows is not as big as Lunix? Absolutely not. After 3DFX went bankrupt and sued Microsoft, we found out that Microsoft had tampered with 3DFX in DirectX. In fact, I am saying these things just to make everyone pay attention to DirectX, because if any game related hardware manufacturer is abandoned by Microsoft, the consequences will be unimaginable.

Review of DirectX APIs throughout history

DirectX has gone through multiple versions, from the earliest DirectX to the latest DirectX 10, and each version has led to the emergence of a large number of new games that support this new version of DirectX. But the version that really caught the attention of DirectX was 6.0, which was also the period when 3D games truly entered the peak of development.

1. The era of DirectX 6.0 .

At that time, the main representative graphics cards were NVIDIA's Riva TNT series and 3DFX's Voodoo3 series. The feature of DirectX 6.0 is its ability to render 32-bit color 3D effects at high resolution, which was also the most sought after feature of GPUs at that time. However, the Voodoo3 series, which insisted on using 16 bit color rendering and rejected AGP bus technology, failed, while NVIDIA initially used advanced AGP bus architecture and 32-bit color rendering, laying the foundation for a new dynasty with high specifications and new technology.

In addition to high-resolution rendering, another major feature of DirectX 6.0 is its support for standard texture compression algorithms. Microsoft obtained the S3TC license from S3 (previously acquired by VIA) and added it to DirectX 6.0. For 3D games at that time, improving texture effects was a headache because the accompanying 3D graphics card could not meet the performance requirements of a large number of textures. Therefore, using compression technology was naturally a shortcut.

2. The era of DirectX 7.0 .

The release of DirectX 7.0 has once again reorganized the graphics card market, and the biggest feature of DirectX 7.0 is its support for T& L. The Chinese name is "Coordinate Conversion and Light Source", which has also contributed to the glory of NVIDIA GeForce 256 and ATI Radeon 256, completely withdrawing 3DFX from market competition. In other words, having T& After using DirectX 7.0 in conjunction with the L graphics card, even without a high-speed CPU, it still achieves relatively smooth speed performance. However, to this day, some integrated graphics cards still do not have hardware T& L unit, completely relying on CPU for simulation.

3. DirectX 8.0 Era .

DirectX 8.0 once again led a revolution in graphics cards, introducing the concept of "pixel rendering" for the first time, while also featuring vertex rendering engines Vertex Shader and Pixel Shader, which are reflected in dynamic lighting effects. Through the rendering of Vertex Shader and Pixel Shader, it is easy to create a realistic dynamic ripple light and shadow effect on the water surface, resulting in an unprecedented improvement in the quality of 3D game graphics. However, the road to widespread adoption of DirectX 8.0 has not been smooth, which is closely related to the enormous cost pressure. NVIDIA's Geforce3 Ti series has yet to become popular in the mainstream market, and subsequent upgrades to DirectX 8.1's Geforce4 Ti4200 and Radeon 8500 series have also fallen short in terms of cost. Since the release of DirectX 8.0 in early 2001, this technology was not popularized until the end of 2003!

4. DirectX 9.0 Era .

Its main feature is the improved versions of Vertex Shader and Pixel Shader, thereby demonstrating more powerful performance. DirectX 9.0 also includes two key techniques, NURBS and Displacement Mapping. NURBS is very common in 3Dmax, but when applied to 3D games, the visuals we see will be closer to reality. Simply put, NURBS is a modeling method specifically designed for curved objects, which can be used to create various complex surface shapes and express special effects, such as human skin, facial features, or streamlined sports cars. And with the help of adding some data to flat polygons, Display Mapping technology can add visual effects of depth, height, and contour to the material. Overall, DirectX 9.0 is a supplement to DirectX 8.1, and this phenomenon is due to the lagging development of 3D graphics card technology compared to the DirectX interface.

From a technical perspective, there are still many changes in DirectX 9.0c compared to DirectX 9.0b, but Microsoft is quite cautious about version upgrades, so many users refer to DirectX 9.0c as a quasi DirectX 10. In the DirectX 9.0c architecture, the ultimate improvement is to introduce version 3.0 of Pixel/Vertex Shader and support ATI's 3Dc texture compression technology and NVIDIA led HDR technology.

Amazing Transformation: Analyzing DirectX 10

1. Continue to strengthen the Shader function .

Many users are complaining that the graphics in 3D games are always difficult to present a movie like rendering effect, and the main culprit at this time is not only the graphics card and CPU, but also the rendering method itself, which is an important reason for low efficiency. In the era of DirectX 10, all graphics card GPU pipelines will be equipped with more comprehensive Shader functionality for computation. Taking ShaderModel 3.0, which we have seen frequently recently, as an example, this can only be demonstrated in some scenarios, and game developers dare not apply it extensively. When Direct X10 requires all GPU pipelines to add rich Shader function calculations, the so-called Shader will no longer be some special function of the graphics card, but a basic function, and the texture effect will also be greatly improved.

Undoubtedly, this will give all graphics cards and even integrated graphics cards designed according to the DirectX 10 API standard on the market powerful Shader computing power. Once they have such a strong "mass base", game developers dare to use these 3D special effects in large quantities. At the same time, Microsoft has also added the programmable syntax structure of DirectX, making it easier to implement various special effects, which will have a huge share in improving the visual effects of 3D games. In addition, Direct X10 also supports Shader Model 4.0, which means its rendering performance will be further improved. In fact, DirectX 10 has made many other contributions to image quality, among which "Geometry Shader" is the most significant one. By introducing a new rendering model, developers can accelerate graphic operations using overall polygon rendering. The new shading mode will significantly improve the efficiency of many 3D stereo drawing functions, and will also allow the GPU to complete data loop work independently of the CPU, completely freeing the system from CPU constraints.

2. Microsoft promotes a unified rendering architecture .

For industry giants like Microsoft, mastering application interfaces is a top priority. At that time, 3DFX, which was not obedient, persisted in promoting the Glide3D interface and completely replaced it with the Direct3D interface advocated by Microsoft. Even with the powerful OpenGL organization, Microsoft can confront it head-on by exiting and promoting Direct3D, and gain an overwhelming advantage in the civilian market. Now, DirectX 10 clearly hopes to end the awkwardness of the DirectX 9 era.

Microsoft introduced three versions of Vertex Shader (Vertex Shader Engine) and Pixel Shader (Pixel Shader Engine) in DirectX 9: 2.0/2. X/3.0. This may seem like a technological advancement, but in fact, Microsoft is building a competitive stage for NVIDIA and ATI, and the internal friction directly leads to a slowdown in the speed of technology popularization and a decrease in utilization, which makes software developers hesitant. After entering the era of DirectX 10, Microsoft is eager to use a unified rendering architecture to lead the way.

The so-called unified rendering architecture can be intuitively understood as the unified encapsulation of Vertex Shader, Pixel Shader, and GeometryShader introduced by DirectX 10. At this point, the GPU in the graphics card will not open up independent pipelines, but all computing units can handle any type of Shader operation at will. For example, in the game "Elder Scrolls 4 Buried", the requirements for Vertex Shaders are very high, and at this time, a large number of Pixel Shaders on graphics cards are idle, making Vertex Shaders unbearable. Under Microsoft's unified rendering architecture, since all computing units can handle any type of operation, this unreasonable allocation phenomenon can be effectively avoided.

However, it is still too early to popularize a unified rendering architecture. On the one hand, NVIDIA is not buying it, and ATI is not interested in it either. In addition, even if Microsoft forces the popularization of a unified rendering architecture in the future, it will require new research and development by graphics card GPU manufacturers. At present, mainstream GPUs have entered the development stage two years ago, so it is almost impossible to adopt a unified rendering architecture, and even the execution efficiency of DirectX 10 cannot be guaranteed. Of course, we do not deny the technological leadership of Microsoft's unified rendering architecture, but objectively acknowledge the current situation.

3. Understanding the true concept of assembly lines: PixelShader; TMU; ROP .

Before discussing the assembly line of graphics card GPUs, we would like to introduce you to the production process of 3D games, which will be of great help in understanding the subsequent assembly line concepts. In fact, the early development of 3D games is like a movie: game planning, script writing, character delineation, etc. After determining the protagonist's styling style, the manufacturer will hand over the original artwork to the 3D modeling department. At this point, 3D work officially begins, which involves processing textures, post blending, and more. The specific tasks include constructing vertices, performing geometric transformations, lighting, setup, rasterizing, and more.

For traditional graphics chips, all of the above tasks are performed by the CPU. In the 3D era, GPUs as graphics processing units began to take on more work, so we also began to explore concepts such as texture mapping and pixel rendering. However, to this day, GPUs have developed more comprehensively, with their so-called pipelines existing as a complete processing unit, and almost every GPU has multiple built-in pipelines.

However, it is worth noting that the definition of assembly line varies completely in different eras. Nowadays, our definition of a pipeline is "PixelShader" TMU "ROP (Rasterization Engine, which ATI refers to as" render back end ") . Simply put, in terms of functionality, Pixel Shader completes pixel processing, TMU is responsible for texture rendering, and ROP is responsible for the final output of pixels. Therefore, a complete traditional pipeline means completing one Pixel Shader operation in one clock cycle, outputting one texture and one pixel. Taking GeForce 6600LE as an example, a traditional 4-pipelined graphics card (4X1) completes 4 Pixel Shader operations in one clock cycle, outputting 4 textures and 4 pixels.

When working in 3D games, the Pixel Shader, TMU, and ROP parts are actually very important. Let's recall the older generation of 3D games such as FIFA98 back then, where triangle generation was highly valued and was not applied to texture mapping or pixel coloring. The real working part was the unit that became the vertex generator, which could also be simulated and executed by the CPU. However, during the development of DirectX 6 and DirectX 7, a large number of 3D games began to pursue richer and more realistic surface effects. At this time, texture technology quickly became popular, and how to provide powerful texture filling rates became the key. As for the era after DirectX8, pixel processing emerged and demonstrated stunning image quality. Relatively speaking, the concept of ROP is difficult to understand. In fact, the pixel result output processor is responsible for the final output of pixels, performing pixel read/write operations, Z-buffer checks, color mixing, anti aliasing operations, and so on.

4. DirectX 10 Core: Pursuing Pixel Rendering .

After entering the era of DirectX 9, PixelShader technology began to be widely applied, and whether graphics cards could provide more pixel rendering pipelines became a key factor. Of course, the reason why GPUs are pursuing more pixel rendering pipelines is not only due to the widespread use of Pixel Shader in 3D games, but also due to the improvement of Pixel Shader's own version. It is reasonable to have a pixel rendering pipeline built into a single pipeline in the era of DirectX8 games, as DirectX8's Pixel Shader 1.3 allows for shorter shader programs, and multiple pixel rendering pipelines within a single pipeline cannot fully utilize the advantages of parallel work. However, the Pixel Shader 2.0/3.0 of the DirectX9 era is completely different, with longer shader program instructions giving multiple pixel rendering pipelines a place to use.

Of course, we are not simply denying the role of TMU texture filling units. However, it should also be clearly recognized that with the continuous maturity of texture compression and Z-caching technology, coupled with the increasingly excellent graphics memory bandwidth, TMUs have gradually overcome performance bottlenecks, and thus there is no need to integrate multiple TMU units in a single pipeline. At the same time, ROP is also sufficient in quantity to meet the needs of GPUs, so it does not continue to grow with the increasing number of pixel rendering pipelines.

According to ATI and NVIDIA's predictions for future 3D gaming technology, pixel rendering will be increasingly reused in the future. When graphics cards with pixel shaders first appeared in 2001, the ratio of arithmetic instructions to texture instructions in the pixel shader program of the game was around 1:1. Since then, the number of arithmetic instructions has significantly increased. In 2007, the average number of shader program instructions per pixel in the game was 30, and the average ratio of arithmetic instructions to texture instructions reached 5:1. This means that in pixel shader programs today, on average, only one texture instruction appears for every 5 arithmetic instructions, and this trend of rapid growth in the number of arithmetic instructions will continue.

At the end: Who are the ultimate beneficiaries of DirectX 10

DirectX has become a stage of competition in 3D technology, and any advanced hardware technology must be supported by the DirectX API to exert its power. From the perspective of future development trends, with the maturity of DirectX, the hardware utilization effect of 3D games will soon improve, and true movie level game effects may not be far from us. In the entire DirectX10 era, there was actually no victimized party, because even NVIDIA and ATI, constantly updating their products, would still bring them huge profits, and Microsoft is always doing a big business that guarantees profits without losses, consolidating the strong position of Windows Vista. For consumers, the DirectX 10 era will see even better 3D rendering effects, but we need to upgrade our graphics cards again.