opengl

OpenGL ES 图形管线解析

2019-06-02  本文已影响0人  盾子

OpenGL ES 3.0实现了具有可编程着色功能的图形管线,如下图所示顶点着色器和片元着色器是OpenGL ES 3.0中管线的可编程阶段。


OpenGL ES 图形管线

顶点着色器

attribute vec4 position;
attribute vec2 textCoordinate; 
uniform mat4 rotateMatrix; 
varying lowp vec2 varyTextCoord; 
void main()
{
    varyTextCoord = textCoordinate; 
    vec4 vPos = position;
    vPos = vPos * rotateMatrix;
    gl_Position = vPos;
}

图元装配

顶点着⾊器之后,下一个阶段就是图元装配。
图元(Primitive): 点,线,三⻆形等几何对象。
图元装配: 将顶点数据计算成一个个图元.在这个阶段会执行裁剪、透视分割和Viewport变换操作。
图元类型和顶点所确定将被渲染的单独图元。对于每个单独图元及其对应的顶点,图元装配阶段执行的操作包括:将顶点着⾊器的输出值执行裁剪、透视分割、视⼝变换后进⼊光栅化阶段。

光栅化

在这个阶段绘制对应的图元(点/线/三角形). 光栅化就是将图元转化成一组二维片段的过程.⽽这些转化的片段将由片元着⾊器处理.这些二维片段就是屏幕上可绘制的像素.

⽚段着⾊器/⽚元着⾊器

总结: 它可以用于图片/视频/图形中每个像素的颜色填充(比如给视频添加滤镜,实际上就是将视频中每个图片的像素点颜色填充进行修改.)

varying lowp vec2 varyTextCoord; 
uniform sampler2D colorMap; 
void main()
{
    gl_FragColor = texture2D(colorMap, varyTextCoord);
}

逐片段操作

逐片段操作
上一篇下一篇

猜你喜欢

热点阅读