3.GPU流水线

作者: 一壶开心酒 | 来源:发表于2017-08-13 14:28 被阅读43次

当GPU从CPU那里得到渲染命令后,就会进行一系列流水线操作,最终把图元渲染到屏幕上。
GPU渲染流水线接收顶点数据作为输入,这些数据是由应用阶段加载到显存中,再由drawcall指定的,随后传递给顶点着色器。

渲染流水线步骤:
  1. 顶点数据作为输入,
进入几何阶段
  1. vertexshader顶点着色器,通常用于实现顶点的的空间变换,顶点着色。
  2. tessellation shader曲面细分着色器,可选,细分图元
  3. geometry shader几何着色器,可选,被用于执行逐图元着色
  4. clipping裁剪,这一阶段将那些不在摄像机视野内的顶点裁剪掉,
  5. screen mapping屏幕映射 ,不可配着或编程,把每个图元的坐标转换到屏幕坐标系中去。
光栅化阶段
  1. 三角形设置固定函数阶段
  2. 三角形遍历固定函数阶段
  3. fragment shader片元着色器,实现逐片元操作
  4. per—fragment逐片元操作,例如修改颜色,深度缓冲,混合。
    最终输出到屏幕图像。

顶点着色器的输入来自于CPU,处理的单位是顶点,输入进来的每个顶点都会调用一次顶点着色器,主要完成坐标的变换把顶点坐标从模型空间转换到齐次裁剪空间和逐顶点光照。

裁剪:由于场景很大,摄像机视野范围不会覆盖到所有场景物体,那些不在摄像机视野范围内的就需要被裁剪掉,
屏幕映射:每个图元坐标转换到屏幕坐标系下
三角形设置:光栅化第一个阶段,上一阶段输出都是三角网格顶点,要得到整个三角网格覆盖情况。计算每条边上的像素坐标,为下一阶段做准备,
三角形遍历:检查每个像素是否被一个三角网格所覆盖,所过覆盖的话产生一个片元。
片元着色器:前面光栅化阶段实际上并不会影响屏幕上的像素颜色值,而是产生一系列数据,真正对象素产生影响的是下一个阶段。
逐片元:决定片元的可见性,涉及深度测试,模板测试等
如果一个片元通过所有测试就需要把该片元的颜色值和已经存在缓冲区的颜色进行合并混合。
点击关注我的微博,给大家带来欢乐

相关文章

  • 3.GPU流水线

    当GPU从CPU那里得到渲染命令后,就会进行一系列流水线操作,最终把图元渲染到屏幕上。GPU渲染流水线接收顶点数据...

  • Jenkins之声明式流水线语法

    1 流水线 1.1 简介 jenkins 有 2 种流水线分为声明式流水线与脚本化流水线,脚本化流水线是 jenk...

  • 【计算机体系结构】流水线的认识

    流水线的认识 1.流水线中的每个子过程及其功能部件称为流水线的级或段,段与段相互连接形成流水线。流水线的段数称为流...

  • Unity Shader学习-1.渲染流水线

    Unity Shader学习-1.渲染流水线 先了解一下什么是流水线:(下面是百度百科的定义) 流水线:流水线又称...

  • Unity Shader学习-1.渲染流水线【转】

    Unity Shader学习-1.渲染流水线 先了解一下什么是流水线:(下面是百度百科的定义) 流水线:流水线又称...

  • ECRS工时分析,视与视ECRS工时分析软件论述工业生产方式的发

    经过20多年的实践,日本的电器业已经彻底告别了流水线。从学习流水线,到改造流水线,再到告别流水线,这是一个生产方式...

  • 如何正确选择合适自己公司的流水线设备

    如何选择一台合适流水线设备?合适的流水线设备能有效的提高生产效率,选购流水线设备时,要注意流水线的形式是否符合生产...

  • Pipeline

    Pipeline(流水线):支持两种语法格式-------->声明式,脚本式流水线 声明式 脚本式流水线 TEST...

  • jenkins声明式流水线

    pipeline最简结构 pipeline:代表整条流水线,包含整条流水线的逻辑 agent:指定流水线的执行器 ...

  • 《流水线》舒婷

    在时间的流水线里 夜晚和夜晚紧紧相挨 我们从工厂的流水线撤下 又以流水线的队伍回家来 在我们头顶 星星的流水线拉过...

网友评论

    本文标题:3.GPU流水线

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