This series mainly translates and references the book "Real-time 3D Rendering with DirectX and HLSL" (thanks to the author of the original book), with a little personal understanding or expansion.
Here is the code and resources in the book.
About DirectX
| DirectX is a series of API interfaces for developing game or graphics applications on many of the platforms offered by Microsoft, including the Windows,windows phone,xbox360 and the latest Xbox One. Since the end of the last century, DirectX has evolved and has been a leader in the field of modern graphics programming. As a 3D graphical interface in DirectX, Directx3d is also a key research object in this book. DirectX also includes 2D graphics, input, audio, text rendering, and multi-object GPU programming. This book provides an introduction to DirectX and DirectX11 Graphics rendering pipelines. |
#DirectX发展史
| The DirectX 1.0 release, released in September 1995, followed closely to Windows95. Obviously, before that, the game was developed in MS-DOS. Microsoft's release gives game developers the opportunity to try out new operating systems. A small percentage of users of DirectX are moving forward with this technology, which allows the development library of DirectX to develop rapidly. By February 2000, Microsoft had launched 6 major versions of DirectX and many smaller versions. DirectX has been steadily evolving, and in 2001 Microsoft released the first DirectX gaming platform Xbox, a hardware platform that supports the DIRECTX8 version. By that time, DirectX had a large number of powerful developers, which also enabled Microsoft to establish a leadership position in the field of game graphics development. |
| in the same period, 3D graphics hardware is also evolving at an approximate speed. Imagine that at the end of the last century, low-cost 3D graphics hardware for ordinary users did not exist. Earlier graphics cards provided only a separate set of interfaces for each video card, which could neither be modified nor extended by the developer. It was not until 2001 that the release of Xbox,nvidia GeForce 3 and DirectX8 made it possible for developers to have access to programmable shaders for the first time. The programmable shader allows developers to manipulate the 3D model as it is delivered to the GPU (or graphics graphics card) and define its output data in a pixel-wise manner. In the DIRECTX8 programming environment, Shader's writing also needs to use the assembly language, and by 2002 years, with the release of DirectX9, Microsoft launched the high-level shading Language, which is now very famous HLSL, A programming language similar to C language. |
| November 2005, Microsoft launched the Xbox 360, a game platform that lasted until November 2013 (which is by far the longest life cycle since the introduction of the game platform). The DIRECTX9 technology is used in Xbox 360. A year later, Microsoft released the new features of Windows Vista and DirectX10 in November 2006. But a number of reasons have suppressed the massive use of DirectX10, including numerous changes between DirectX9 and DirectX10 and the low utilization of Windows Vista systems. In July 2009, the Windows 7 system was released, and then DirectX11 was released successively. Compared to the early version iterations, this release only made minor changes relative to DirectX10. DIRECTX11 introduces parallel computing, GPGPU programming interfaces, subdivision surfaces support, and improved multithreading computing. Since then, the PC game market has ushered in a new boom, partly due to game distribution platforms like Valve's steam, and partly because of game control platforms (such as Xobx360 aging). And, of course, the growth of the growing army of new interface developers. Then, until the fall of 2012, Microsoft released Windows 8, Windows Phone 8, and DirextX11.1. DirextX11.1 will be the main focus of the book, and Microsoft's recent launch of the game platform, including Xbox One, also supports this version. |
| Although this book is mainly about DIREXTX, but still dare not ignore OpenGL, this is a development with the dirextx of the same growth period of the development of the library. OpenGL is a platform rendering interface that was first released in 1991. In the process of writing this book, the latest version of OpenGL is 4.4 (released in July 2013) and the Kronos Group is responsible for managing the API interface. Although the two render interfaces are very different in design, they all support the same rendering capability. Therefore, the choice of DirectX and OpenGL is closely related to the choice of the platform. DirectX is only for Microsoft-published platforms, and most of the card vendors support this interface, which is also due to the dominance of the Microsoft operating system in the desktop OS market. OpenGL, on the other hand, is not just about the flexibility of any platform that makes it popular in the mobile phone development market. |
Introduction to the first DirectX11 of "DirectX11"