图形 0 渲染流水线的简单了解

0.渲染流水线
  目标:生成(或渲染)一张二维纹理
  三个阶段:
  0.1.应用阶段
    0.1.1.把数据加载到显存中
      硬盘 --> 数据内存 -->(网格、纹理)--> 显存
    0.1.2.设置渲染状态
      着色器、光源、材质等
    0.1.3.调用DrawCall
      ·CPU调用图像编程接口
      ·DrawCall:cpu调用一个渲染命令,告诉gpu开始渲染。
        -- 其中包含须要被渲染的图元列表,再也不包含任何材质信息
  0.2.几何阶段
    ·几何阶段的主要工做就是“变换三维顶点坐标”和“光照计算”。
    0.2.1.顶点着色器
      BIG:可编程
      坐标变换、逐定点光照
      ·输出:每一个顶点对应的纹理坐标
    0.2.2.曲面细分着色器
    0.2.3.几何着色器
    0.2.4.裁剪
      摄像机视野范围
    0.2.5.屏幕映射
      -- 输出网格顶点
  0.3.光栅化阶段
    ·计算每一个图元覆盖了那些像素,为这些像素计算他们的颜色
    3.1.三角形设置
      计算光栅化一个三角形网格的信息
    0.3.2.三角形遍历
      扫描变换
      ·输出:片元序列
    0.3.3.片元着色器(像素着色器)
      BIG:可编程
      纹理采样等
    0.3.4.逐片元操做
      BIG:高度可配置性
      0.3.4.1.决定每一个片元的可见性
        模板测试
        深度测试
      0.3.4.2.片元的颜色和已经存储在颜色缓冲区的颜色进行合并(混合)
   0.4.CPU\GPU的并行工做
      CPU -- 命令缓冲区(命令队列) -- GPU
      每次调用前,CPU须要准备不少的内容(数据、状态、命令),同时有检查渲染状态等不少准备工做
      ·GPU的渲染能力很强,可是CPU会花时间在提交命令(DrawCall)上,形成CPU过载
    0.4.1.减小DrawCall
      4.1.1.静态物体的批处理。
      4.1.2.避免使用大量很小的网格
      4.1.3.避免使用过多的材质
    0.4.2.shader
      ·GPU流水线上可高度编程的阶段
      ·特定类型:顶点着色器、片元着色器等
      ·依靠着色器能够用来控制流水线中渲染的细节编程

相关文章
相关标签/搜索