3D Graphics Improvements In Direct3D 11
Direct3D 11 addresses limitations in the performance and visual quality of today’s graphics. It supports the new and improved features for the following :
- Use of multiple CPU cores.
- Tessellation.
- High-level shading language.
- Cross-platform development with the XBox 360 platform.
Use Of Multiple CPU Cores
Direct3D 11 increases the throughput of rendering calls by distributing the application, runtime, and driver workloads across multiple cores. Parallel application threads can generate precompiled rendering commands without synchronization.
In addition, background threads can efficiently create and initialize device objects such as textures. On a multicore CPU, multithreading can significantly improve end-user frame rates and 3D graphics application performance.
The multithreading feature is also available on Direct3D 10 hardware. The Direct3D 11 runtime communicates with existing Direct3D 10 drivers to enable this feature. Although Direct3D 11 supports multithreading on all Direct3D 10 drivers, users should obtain updated Direct3D 10 drivers that are fully optimized for multithreading.
Tessellation
Direct3D 11 implements tessellation on the GPU to calculate a smoother curved surface from a coarse (less detailed) input patch. Tessellation subdivides each quad or triangle patch face into smaller triangular faces that better approximate the desired surface.
By using tessellation, an application can render a single model at several levels of detail, which shrinks the gap between higher quality offline content creation and faster real-time rendering. For example, a model that is far away can be rendered with low detail, but when seen up close, the same model can be refined to be smoother and more attractive, while maintaining consistent frame rates.
In effect, tessellation acts as a form of compression. The coarse base model results in faster load times from disk to main memory and from main memory to the GPU.
Direct3D 11 hardware supports tessellation of geometry and higher-order surfaces such as non-uniform rational B-spline (NURBS), N-patches, bicubic patches, and Catmull-Clark subdivision, which are used commonly used by digital content creators. Even more specifically, Direct3D 11 tessellation supports :
- Triangle and quad patch primitives
- Adaptive and/or continuous refinement of the domain topology
- Programmable evaluation of higher-order surfaces with displacement
By using tessellation in these models, DirectX 11 enables applications to render graphics that are truer to the original artist’s creative vision.
High-Level Shading Language
The high-level shading language (HLSL) has new subroutines and better support for double-precision floating-point computation. These features provide a more expressive, more flexible programming model that enables independent software vendors (ISVs) to better express their vision in code.
Software developers sometimes design programmable shaders by combining multiple subroutines. This approach often results in a large number of custom shaders, each of which uses a combination of subroutines to realize slight variations. However, these custom shaders have the penalty of expensive state changes.
The alternate approach, sometimes called “one shader to rule them all”, uses flow control statements to choose the optimal shader. However, a single shader causes unnecessary register pressure because the compiler must allocate registers based on the worst-case path. Poor register allocation can seriously reduce runtime performance.
To address this problem, subroutines extend the Direct3D 11 runtime with a simple, expressive programming model that provides an abstract layer over the combinatoric complexity but still achieves the performance of the custom precompiled shaders. As a result, programming complexity migrates from the application level to the driver level.
Cross-Platform Development With Xbox 360
Many Direct3D 11 features also improve cross-platform development between PC games and Xbox 360 games. In particular, multithreading and tessellation use and extend the existing functionality of Xbox 360. The increased ease of cross-platform development helps vendors more easily create games that are available on both Xbox 360 and the PC.
Support Tech ARP!
If you like our work, you can help support out work by visiting our sponsors, participate in the Tech ARP Forums, or even donate to our fund. Any help you can render is greatly appreciated!
<<< Supported Configurations & Target Apps For The Compute Shader : Previous Page | Next Page : Additional Direct3D 11 Features >>>