opengles的渲染管线

了解渲染管线的流程对我们学习opengles是有帮助的,下面一起来看看GPU到底是怎么渲染图像的吧;
opengles的渲染管线_第1张图片

  1. 为了提高渲染的效率,省去绘制每一帧图像时顶点数据的IO麻烦,我们可以把基本数据不变的顶点在初始化阶段将顶点数据经过基本处理后送入顶点缓冲对象。

  2. 在顶点着色器是一个可编程的处理单元,功能为执行顶点的变换、光照、材质的应用与计算等顶点的相关操作。

  3. 图元装配主要有两个任务:一个是图元组装,另一个是图元处理。图元组装是根据设置的绘制方式被结合成完整的图元,例如三角形绘制方式下需要3个顶点构成一个图元;图元处理最重要的工作是裁剪,其任务是消除位于半空间之外的部分几何图元,即消除多余的顶点数据。

  4. 光栅化是把投影结果为连续的图像离散化,离散化的小单元称为片元,每个片元对应帧缓冲中的一个像素,但由于片元也有深度,位于观察点较近的片元会覆盖距离远的片元。

  5. 片元着色器也是一个可编程单元,器可以执行纹理的采样、颜色的汇总、计算雾颜色等操作,每片元执行一次。片元着色器主要功能为通过重复执行将3D物体中的图元光栅化后产生的每个片元的颜色等属性计算出来送入后继阶段,如裁剪测试、深度测试及模板测试。

  6. 裁剪测试是检查每个片元在帧缓冲中对应的位置,若对应位置在裁剪窗口中将此片元送入下一阶段,不满足条件的片元则被丢弃。

  7. 深度测试是指输入片元的深度值与帧缓冲区中存储的对应位置片元的深度值进行比较,若输入片元的深度值小则将输入片元送入下一阶段准备覆盖帧缓冲中的原片元或与帧缓冲中的原片元混合,否则丢弃输入片元。模板测试主要功能将绘制区域限定在一定的范围内,一般用在湖面倒影、镜像等场合。

  8. 颜色缓冲混合,若开启了alpha 混合,则根据混合因子将上一阶段送来的片元与帧缓冲中对应位置的片元进行alpha混合;否则送入的片元将覆盖帧缓冲中对应位置的片元。

  9. 抖动允许只使用少量的颜色模拟出更宽的颜色显示范围,从而使颜色视觉效果更加地丰富。

你可能感兴趣的:(opengles)