关闭

Direct3D 10 & Direct3D 11 Pipeline Stages

502人阅读 评论(0) 收藏 举报
分类:

Pipeline Stages(DX11)

The Direct3D 11 programmable pipeline is designed for generating graphics for realtime gaming applications. This section describes the Direct3D 11 programmable pipeline. The following diagram shows the data flow from input to output through each of the programmable stages.

Diagram of the data flow in the Direct3D 11 programmable pipeline

The graphics pipeline for Microsoft Direct3D 11 supports the same stages as the Direct3D 10 graphics pipeline, with additional stages to support advanced features.

You can use the Direct3D 11API to configure all of the stages. Stages that feature common shader cores (the rounded rectangular blocks) are programmable by using the HLSL programming language. As you will see, this makes the pipeline extremely flexible and adaptable. The following list specifies the purpose of each of the stages.

  • Input-Assembler Stage - The input-assembler stage supplies data (triangles, lines and points) to the pipeline.
  • Vertex-Shader Stage - The vertex-shader stage processes vertices, typically performing operations such as transformations, skinning, and lighting. A vertex shader always takes a single input vertex and produces a single output vertex.
  • Geometry-Shader Stage - The geometry-shader stage processes entire primitives. Its input is a full primitive (which is three vertices for a triangle, two vertices for a line, or a single vertex for a point). In addition, each primitive can also include the vertex data for any edge-adjacent primitives. This could include at most an additional three vertices for a triangle or an additional two vertices for a line. The geometry shader also supports limited geometry amplification and de-amplification. Given an input primitive, the geometry shader can discard the primitive, or emit one or more new primitives.
  • Stream-Output Stage - The stream-output stage streams primitive data from the pipeline to memory on its way to the rasterizer. Data can be streamed out and/or passed into the rasterizer. Data streamed out to memory can be recirculated back into the pipeline as input data or read-back from the CPU.
  • Rasterizer Stage - The rasterizer clips primitives, prepares primitives for the pixel shader, and determines how to invoke pixel shaders.
  • Pixel-Shader Stage - The pixel-shader stage receives interpolated data for a primitive and generates per-pixel data such as color.
  • Output-Merger Stage - The output-merger stage combines various types of output data (pixel shader values, depth and stencil information) with the contents of the render target and depth/stencil buffers to generate the final pipeline result.
  • Hull-shader, tessellator, and domain-shader stages, which comprise the tessellation stages - The tessellation stages convert higher-order surfaces to triangles for rendering within the Direct3D 11 pipeline.

The Direct3D 11 programmable pipeline is also designed for providing high-speed computing tasks. A compute shader expands Direct3D 11 beyond graphics to support general purpose GPU computing.

Related topics

Programming Guide for Direct3D 11




Pipeline Stages(DX10)


The Direct3D 10 programmable pipeline is designed for generating graphics for realtime gaming applications. The following diagram shows the data flow from input to output through each of the programmable stages.

Diagram of the data flow in the Direct3D 10 programmable pipeline

All of the stages can be configured using the API. Stages featuring common shader cores (the rounded rectangular blocks) are programmable using the HLSL programming language. As you will see, this makes the pipeline extremely flexible and adaptable. The purpose of each of the stages is listed below.

  • Input-Assembler Stage - The input-assembler stage is responsible for supplying data (triangles, lines and points) to the pipeline.
  • Vertex-Shader Stage - The vertex-shader stage processes vertices, typically performing operations such as transformations, skinning, and lighting. A vertex shader always takes a single input vertex and produces a single output vertex.
  • Geometry-Shader Stage - The geometry-shader stage processes entire primitives. Its input is a full primitive (which is three vertices for a triangle, two vertices for a line, or a single vertex for a point). In addition, each primitive can also include the vertex data for any edge-adjacent primitives. This could include at most an additional three vertices for a triangle or an additional two vertices for a line. The Geometry Shader also supports limited geometry amplification and de-amplification. Given an input primitive, the Geometry Shader can discard the primitive, or emit one or more new primitives.
  • Stream-Output Stage - The stream-output stage is designed for streaming primitive data from the pipeline to memory on its way to the rasterizer. Data can be streamed out and/or passed into the rasterizer. Data streamed out to memory can be recirculated back into the pipeline as input data or read-back from the CPU.
  • Rasterizer Stage - The rasterizer is responsible for clipping primitives, preparing primitives for the pixel shader and determining how to invoke pixel shaders.
  • Pixel-Shader Stage - The pixel-shader stage receives interpolated data for a primitive and generates per-pixel data such as color.
  • Output-Merger Stage - The output-merger stage is responsible for combining various types of output data (pixel shader values, depth and stencil information) with the contents of the render target and depth/stencil buffers to generate the final pipeline result.

Related topics

Programming Guide for Direct3D 10

 





1
0
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

Direct3D 11教程2:绘制一个三角形

概览 在前面的教程中,我们创建了一个最小化的Direct3D 11程序在平面上输出了单一的颜色。 本教程中,我们会在屏幕上绘制一个三角形。我们会学习设置三角形数据结构的方法。 源代码 (...
  • jake2012
  • jake2012
  • 2014-04-23 15:23
  • 1772

Direct3D 11 渲染状态

从本质上讲,Direct3D是一个状态机(state machine)。在我们改变它的状态之前,驻留在状态机内的当前状态是不会改变的。例如,我们在6.1节、6.2节和6.3节中看到,当顶点缓冲和索引缓...
  • pizi0475
  • pizi0475
  • 2015-07-08 11:40
  • 2270

Direct3D基础概念和模型整理

模型主要是物理组成,数据传输和固定图形管道模型;概念主要包括IDirect3D, Adapter, Device, swap chain,surface后台缓存、前台缓存、深度和模板缓存,资源,资源类...
  • Blues1021
  • Blues1021
  • 2014-11-14 00:32
  • 2094

Direct3D Graphics Pipeline 电子书及源代码

  • 2016-06-15 19:02
  • 13.04MB
  • 下载

Direct3D 12 尝鲜(三): Pipeline State Object

简答介绍Direct3D12中的渲染管线状态对象: Pipeline State Object
  • dustpg
  • dustpg
  • 2015-03-31 23:07
  • 2747

Direct3D11深蓝色窗口演示demo

  • 2012-07-09 06:02
  • 16.25MB
  • 下载

Practical Rendering and Computation with Direct3D 11.pdf

  • 2012-12-08 20:56
  • 36.68MB
  • 下载

Practical Rendering and Computation with Direct3D 11

  • 2016-11-19 16:29
  • 39.89MB
  • 下载

Practical Rendering and Computation with Direct3D 11

  • 2015-01-27 21:41
  • 48B
  • 下载

Direct3D11——树

  • 2013-08-15 17:43
  • 1.13MB
  • 下载
    个人资料
    • 访问:683426次
    • 积分:9497
    • 等级:
    • 排名:第2218名
    • 原创:205篇
    • 转载:156篇
    • 译文:8篇
    • 评论:183条
    博客专栏
    最新评论