The Direct3D 11 programmable pipeline
2015-06-09 13:54
375 查看
Graphics Pipeline
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.
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 HLSLprogramming
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.
Programming Guide for
Direct3D 11
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.
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 HLSLprogramming
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 forDirect3D 11
相关文章推荐
- Java多区域部署时能自动升级的一个小演示程序
- Magento使用phpexcel导出 商品订单 /订单条目表sales_flat_order_item
- POJ 1298
- POJ 1287
- POJ 1274
- h264视频编码的MP4格式视频无法在网页中的adobe flash player中播放
- oracle11g分区表
- python 抽象方法 抽象类实现
- 命令jps
- Ubuntu change default sh from dash to bash
- 判断listview滚动,点击回到顶部
- java线程间的协调
- Spring-data-jpa+Hibernate 各种缓存的配置
- 【Android】ListView动态视图显示不全
- HTML5 Canvas Tutorial
- POJ 1270
- POJ 1260
- POJ 1273
- iOS开发常用快捷键
- 【资料整理】cisco [cli, static, rip, eigrp, ospf]