美文网首页
管线绘制

管线绘制

作者: AL009 | 来源:发表于2018-01-04 14:11 被阅读0次

    概念流水线

    应用阶段

    把数据加载到显存:把顶点、纹理、法线等数据准备好。

    设置渲染状态:使用哪些着色器、光源属性、材质等。

    调用DrawCall:告诉GPU开始渲染工作。

    几何阶段

    顶点着色器把顶点坐标从模型空间转换成齐次裁剪空间。

    硬件做透视除法,得到归一化的设备坐标(NDC)。

    屏幕映射转换成屏幕坐标系。

    光栅化阶段

    说明

    几何阶段 + 光栅化阶段 = GPU流水线。

    简化的GPU流水线

    1. 逐顶点操作

    使用顶点着色器操作顶点,比如进行坐标变换、顶点光照、生成纹理坐标

    2. 图元装配

    将顶点连成相应的图形

    3. 光栅化

    找到图元覆盖的像素点,并对属性值进行插值

    (片元 = 像素 + 属性)

    4. 片元处理

    使用片元着色器来操作片元

    5. 逐片段操作

    该阶段也叫输出合并阶段

    决定每个片元的可见性:深度测试、模板测试等。

    将通过测试的片元与颜色缓冲区的颜色进行混合。

    (源颜色指片元着色器得到的颜色,目标颜色指已存在于颜色缓冲区的颜色)

    其他:提前测试

    在逐片段操作阶段,可能会把辛辛苦苦计算出来的片元直接丢弃,十分浪费,因此有时候会使用Early-Z技术把深度测试提前执行。但是只有在片元着色器与提前测试没有冲突时才会执行,如果片元着色器进行了丢弃片元等操作,则不能提前测试。(所以透明度测试会导致性能下降)

    总述

    前一个阶段的输出是下一个阶段的输入,因此管线的速度取决于最慢的那个阶段。因为采用的是流水线的工作方式,因此某个阶段完成当前的任务后,可以接手下一个渲染的任务。

    作者:Kaima_Chen

    链接:https://www.jianshu.com/p/4911763b626d

    來源:简书

    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    相关文章

      网友评论

          本文标题:管线绘制

          本文链接:https://www.haomeiwen.com/subject/lmsrnxtx.html