GS 是位于 VS和PS之间的一个可选可编程阶段。以下引用 http://gad.qq.com/program/translateview/7166528
★ IA——输入组装器(Input Assembler)。用于读取索引和顶点数据并进行组装。
★ VS——顶点着色器(Vertex Shader)。获取输入的顶点数据,将处理完毕的顶点数据写入下一个阶段。
★ PA——图元装配器(Primitive Assimbly)。读取顶点数据,组装成图元并继续沿着管线传递。
★ HS——外壳着色器(Hull Shader)。接收装配好的图元,将变换过的(或者没变换的)装配控制点写入域着色器(Domain Shader),再加上经过细分的额外数据。
★ TS——细分阶段(Tessellator Stage)。创建顶点并连通细分的直线或三角面。
★ DS——域着色器(Domain Shader)。取出已着色的控制点、外壳着色器中的额外数据以及细分阶段中的细分位置,并把它们再次变换成顶点。
★ GS——几何着色器(Geometry Shader)。输入图元,有时候可以附加邻接信息,然后输出成不同的图元。对于图元中心也是如此。。。
★ SO——输出流(Stream-Out)。将几何着色器的输出(如变换后的图元)写入内存缓冲中去。
★ RS——光栅器(Rasterizer)。对图元进行光栅化。
★ PS——像素着色器(Pixel Shader)。将经过插值的顶点数据输出像素颜色。还可以写入到无序访问视图。
★ OM——输出混合器(Output Merger)。从像素着色器得到着色后的像素,做半透明混合处理并把它们写回渲染缓冲区。
★ CS——计算着色器(Compute Shader)。它自己有一套独立的管线。输入只有常量缓冲区和线程ID。可以写入到缓冲区和无序访问视图。。
其实上面的之前的章节也写过上面各个阶段的说明,这里贴一下回忆一下。
for(UINT i = 0; i < numTriangles; ++i)
Output