Direct3D-管道
引用自wiki
Direct3D 10 API定义了vertices(顶点), textures(纹理), buffers(缓冲区),以及state组群转换到屏幕上的流程。这样的流程被描述成rendering pipeline(渲染流水线),其中有着许多不同的阶段. Direct3D 10 渲染流水线的各阶段包括:
1、输入组装(Input Assembler):从程序里读取顶点,并将程序提供的数据装进流水线。
2、顶点着色引擎(Vertex Shader): 每次处理一个顶点,比如变换、贴图、光照。
3、几何着色器(Geometry Shader): Shader Model 4.0引进了几何着色器,使用Shader资源来处理点、线、面的几何坐标变换,一次最多处理六个点,快速地将模型类似的顶点结合起来进行运算。此一过程无需CPU参与。
4、流输出(Stream Output):将Vertex Shader和Pixel Shader处理完成的数据输出给用户。
5、光栅化(Rasterizer): 把算完的顶点转成像素,再将像素(pixels)输出给pixel shader. 这里亦可运行其他工作,像是切割非视觉性的像素,或者对顶点进行插值以得到像素数据。
6、像素着色引擎(Pixel Shader):决定最后要往渲染目标(render targe)写入的像素颜色,同时也可以计算一个准备写到深度缓冲区的深度值。
7、输出混合(Output Merger):接收来自于pixel shader的slice,进行传统的Stencil测试和Depth测试,整并各种不同的输出数据,用以创建最后之结果。