zoukankan      html  css  js  c++  java
  • DirectX 图形流水线

    Direct3D 的可编程流水线用来为实时游戏渲染图形(一个词概括——实时渲染)

    上面的图是Dx11的实时渲染流水线,Dx的几个版本都是向下兼容的。

    Input-Assembler Stage:  输入汇集阶段,将所有的数据(三角形,线,点)提供给流水线。

    Vertex-Shader Stage:顶点着色阶段,这一阶段主要处理顶点。主要的操作有:变换(transformation)、纹理?(skinning)、照明(lighting)。一个定点着色器永远接纳单一的顶点输入并产生单一的顶点输出。

    Geometry-Shader Stage:几何体着色器阶段,这一阶段处理整个原始基本几何体。输入是一个完整的基本几何体(三个顶点一个三角形、两个顶点一条线、一个顶点一个点)。除此之外,每一个基本元还包括邻近边的顶点数据,意味着三角形额外包含3个顶点,一条线额外包含两个顶点。几何体着色器还支持有限的几何体放大和缩小。给定一个输入基本元,几何体着色器可以忽略或放弃该基本元。

    Stream-Output Stage:将基本元数据从流水线中流进内存进行光栅化。流进内存的数据可以作为输入数据回环进流水线。

    Rasterizer Stage:  光栅器围绕基本元,为像素着色器准备基本元(片元?)。光栅器决定了如何调用像素着色器。

    Pixel-Shader Stage:像素着色器为一个基本元接收插值数据并产生每一个像素数据(比如颜色)。

    Output-Merger Stage: 输出合并阶段,根据渲染目标和深度/模板缓冲区的内容组合各种类型的输出数据,然后产生最后的流水结果。

    Hull-shader,曲面细分(Tessellator,镶嵌器),域着色器阶段,这些共同组成了tessellation阶段。曲面细分阶段将高阶的面(曲面,不在同一平面上)转化为三角形,来渲染。

  • 相关阅读:
    C++中头文件包含的问题
    linux环境变量
    win32进程和线程
    断言
    win32中的常用类型转换
    可变形参
    #define
    CString与char*互相转化
    extern
    手机CPU和GPU厂商
  • 原文地址:https://www.cnblogs.com/san-fu-su/p/5765961.html
Copyright © 2011-2022 走看看