DirectX 11 Features Explored
There are a multitude of new features and capabilities being ushered in by DirectX 11, but there are a certain few that have significant importance as they relate to the new Radeon HD 5800 series. Tessellation and multi-threading support, and DirectCompute 11, Shader Model 5, and Texture Compression in particular...
Tessellation is something we have written about in the past. In fact, Tessellation has been available in Radeon GPU's dating back to the R600 GPU found on the Radeon HD 2900 XT.
Tessellation works by taking a basic polygon mesh and recursively applying a subdivision rule to create a more complex mesh on the fly. It's best used for amplification of animation data, morph targets, or deformation models. And it gives developers the ability to provide data to the GPU at a coarser resolution. This saves artists the time it would normally take to create more complex polygonal meshes and reduces the data's memory footprint. The Tessellation support built into the Radeon HD 5800 series, however, is different than what was offered in previous Radeon GPUs, and now programmable via two newDX11 features dubbed domain and hull shaders.
The images above give an example of how Tessellation works. As the images show, the simpler polygon meshes are increasingly subdivided, which in turn increases the level of detail. While Tessellation is not a new technology, the implementation in the Radeon HD 5800 series is, and now that it is part of the DirectX specifications and not a proprietary mechanism, we expect it to be more widely supported in the future.
We also reference multi-threading above. With DirectX 11's multi-threading capabilities applications--i.e. games, the DirectX runtime, and DirectX drivers can each run in separate threads to potentially increase performance. Tasks like loading a texture or compiling a shader, for example, can execute in parallel with the main rendering thread.
In addition to multi-threading support, DX11's DirectCompute 11 capabilities will also enable heterogeneous computing, that leverages the power of the CPU and GPU in tandem. So what, you say. That' s been happening with NVIDIA's CUDA and ATI's Stream for quite a while. The difference is, DirectCompute 11 is part of a cross platform, industry standard, so developers won't have to use proprietary tools or program for only a particular GPU type.
A couple of other interesting featured offered by the Radeon HD 5800 series are Order Independent Transparency and High-Definition Ambient Occlusion.
Order Independent Transparency, or OIT, enhances the quality of images rendered with overlapping transparent objects. Rendering transparent objects correctly requires sorting and blending is an order dependent operation. DirectCompute 11 enables OIT by making it possible to sort transparent pixels in one pass through the shaders. The image above gives an example of how OIT can enhance an image. Without it, parts of the robot appear to be floating inside its body, but with OIT, each parts appears to be in the correct position.
HD Ambient Occlusion
High-Definition Ambient Occlusion is a means to render more realistic shadows on objects. Objects that are in the path of a light source will cast shadows, which affects the lighting of other objects in the scene. HDAO improves the quality of the cast shadows by accounting for the dimming caused by objects that block out ambient light. The effect of HDAO is subtle, but does enhance the realism of a scene. The image above is of an AMD-created demo of HDAO in action. The left portion of the image is the HDAO buffer, which shows the parts of the scene being affected by ambient lighting that blocked by parts of the model.
There are dozens of other features offered by DirectX and DirectCompute 11 and the Radeon HD 5800 series by extension, that we won't be covering here. Above is a list of just few of them and how they differ from their DX10 counterparts.