You are previewing Practical Rendering and Computation with Direct3D 11.
O'Reilly logo
Practical Rendering and Computation with Direct3D 11

Book Description

Direct3D 11 offers such a wealth of capabilities that users can sometimes get lost in the details of specific APIs and their implementation. While there is a great deal of low-level information available about how each API function should be used, there is little documentation that shows how best to leverage these capabilities. Written by active members of the Direct3D community, Practical Rendering and Computation with Direct3D 11 provides a deep understanding of both the high and low level concepts related to using Direct3D 11.

The first part of the book presents a conceptual introduction to Direct3D 11, including an overview of the Direct3D 11 rendering and computation pipelines and how they map to the underlying hardware. It also provides a detailed look at all of the major components of the library, covering resources, pipeline details, and multithreaded rendering. Building upon this material, the second part of the text includes detailed examples of how to use Direct3D 11 in common rendering scenarios. The authors describe sample algorithms in-depth and discuss how the features of Direct3D 11 can be used to your advantage.

All of the source code from the book is accessible on an actively maintained open source rendering framework. The sample applications and the framework itself can be downloaded from http://hieroglyph3.codeplex.com

By analyzing when to use various tools and the tradeoffs between different implementations, this book helps you understand the best way to accomplish a given task and thereby fully leverage the potential capabilities of Direct3D 11.

Table of Contents

  1. Preface
  2. What To Expect From This Book
  3. How This Book Is Organized
  4. Chapter 1. Overview of Direct3D
    1. 1.1 Direct3D Framework
    2. 1.2 Pipeline 4
    3. 1.3 Resources
    4. 1.4 Interfacing with Direct3D
    5. 1.5 Getting Started
  5. Chapter 2. Direct3D 11 Resources
    1. 2.1 Resources Overview
    2. 2.2 Resources in Detail
    3. 2.3 Resource Manipulations
  6. Chapter 3. The Rendering Pipeline
    1. 3.1 Pipeline State
    2. 3.2 Pipeline Execution
    3. 3.3 Input Assembler
    4. 3.4 Vertex Shader
    5. 3.5 Hull Shader
    6. 3.6 Tessellator
    7. 3.7 Domain Shader
    8. 3.8 Geometry Shader
    9. 3.9 Stream Output
    10. 3.10 Rasterizer
    11. 3.11 Pixel Shader
    12. 3.12 Output Merger
    13. 3.13 High-Level Pipeline Functions
  7. Chapter 4. The Tessellation Pipeline
    1. 4.1 Introduction
    2. 4.2 Tessellation and the Direct3D Pipeline
    3. 4.3 Parameters for Tessellation
    4. 4.4 Effects of Parameters
  8. Chapter 5. The Computation Pipeline
    1. 5.1 Introduction
    2. 5.2 DirectCompute Threading Model
    3. 5.3 DirectCompute Memory Model
    4. 5.4 Thread Synchronization
    5. 5.5 Algorithm Design
  9. Chapter 6. High Level Shading Language
    1. 6.1 Introduction
    2. 6.2 Usage Process
    3. 6.3 Language Basics
    4. 6.4 Constant Buffers
    5. 6.5 Resource Objects
    6. 6.6 Dynamic Shader Linkage
    7. 6.7 Intrinsic Functions
    8. 6.8 Shader Reflection
    9. 6.9 Using fxc.exe
  10. Chapter 7. Multithreaded Rendering
    1. 7.1 Introduction
    2. 7.2 Motivations for Multithreaded Rendering
    3. 7.3 Direct3D 11 Threading Model
    4. 7.4 Context Pipeline State Propagation
    5. 7.5 Potential Usage Scenarios
    6. 7.6 Practical Considerations and Tips
    7. 7.7 Conclusion
  11. Chapter 8. Mesh Rendering
    1. 8.1 Mesh Transformations
    2. 8.2 Vertex Skinning
    3. 8.3 Vertex Skinning with Displacement Mapping
  12. Chapter 9. Dynamic Tessellation
    1. 9.1 Terrain Tessellation
    2. 9.2 Higher-Order Surfaces
  13. Chapter 10. Image Processing
    1. 10.1 Image Processing Primer
    2. 10.2 Gaussian Filter
    3. 10.3 Bilateral Filter
  14. Chapter 11. Deferred Rendering
    1. 11.1 Overview
    2. 11.2 Classic Deferred Rendering
    3. 11.3 Light Pre-Pass Deferred Rendering
    4. 11.4 Optimizations
    5. 11.5 Anti-Aliasing
    6. 11.6 Transparency
  15. Chapter 12. Simulations
    1. 12.1 Water Simulation
    2. 12.2 Particle Systems
  16. Chapter 13. Multithreaded Paraboloid Mapping
    1. 13.1 Theory
    2. 13.2 Implementation Design
    3. 13.3 Multithreading Scenario
    4. 13.4 Conclusion
  17. Appendix A: Source Code
    1. The Hieroglyph 3 Engine
    2. Creating a New Direct3D 11 Project with Hieroglyph 3
    3. Source Code for This Book
  18. Appendix B: Direct3D 11 Queries
    1. Using Query Interfaces
    2. Predicated Rendering
  19. Appendix C: Tessellation Summary
    1. Summary of Tessellation Parameters
  20. Bibliography
  21. Index