zoukankan      html  css  js  c++  java
  • Directx11教程(17) D3D11管线(6)

          VS shader输出clip空间的顶点位置及参数信息(比如颜色)到一个FIFO中,之后PA(primitive assembly)会从该FIFO中取得顶点位置信息,并根据IA传来的primitive信息,把单独的顶点装配成点、线或者三角形。经过PA阶段后,我们不再是处理单个顶点,而是处理整个体元。

    参考资料:http://fgiesen.wordpress.com/2011/07/01/a-trip-through-the-graphics-pipeline-2011-part-5/

    image

      

    除了装配primitive外,PA阶段还会做一些其它的工作:

    多边形裁剪:通过clip长方体的六个面来裁剪体元,把长方体(frustum)外的部分裁剪掉。

    透视除法:(x/w,y/w,z/w,1),经过透视除法,把clip空间转化为归一化的clip空间,该空间依然是个长方体,但-1<=x<=1, –1<=y<=1, 0<=z<=1(注意:opengl的归一化裁剪空间-1<=z<=1)

    视口转化:把归一化的x,y坐标从(-1,1)转化到像素的窗口坐标。比如窗口为800*600,就要在它们之间做个映射关系。

    三角形背面剔除:主要是根据三角形的法向剔除背面渲染。

    计算体元的梯度:计算得到的梯度会在光栅化阶段使用。

    填充模式的处理

         PA阶段后,会进入光栅化阶段,primitive会被光栅化成fragment(通常是quad, 2*2像素), 在光栅化的过程中,RS block会访问depth block,以便判定是否需要把该fragment传入到PS shader中去,同时也会更新depth block(此时更新depth block称为early z)。

        光栅化算法不在这儿讨论了,有兴趣可以随便找一本计算机图像学的书看看。

  • 相关阅读:
    #455. 【UER #8】雪灾与外卖
    lmh's邻位交换总结
    [ARC088C] Papple Sort
    【模板】二次剩余
    P3241 [HNOI2015]开店
    P4248 [AHOI2013]差异
    P6640 [BJOI2020] 封印
    【笔记】牛客、产品笔试题
    【笔记】TX笔试-压缩算法
    【笔记】分组
  • 原文地址:https://www.cnblogs.com/mikewolf2002/p/2416016.html
Copyright © 2011-2022 走看看