![](https://img.haomeiwen.com/i1644810/72781ba89a3be740.png)
![](https://img.haomeiwen.com/i1644810/2da3359b7348ee71.png)
顶点着色器
顶点着色器输入:
着⾊器程序:描述顶点上执行操作的顶点着⾊色器程序源代码/可执⾏文件
顶点着⾊器输入(属性) :用顶点数组提供每个顶点的数据
统一变量(uniform):顶点/片元着色器使用的不变数据
采样器—代表顶点着⾊器使用纹理的特殊统一变量类型.
![](https://img.haomeiwen.com/i1644810/371b3c4a48c19575.png)
顶点着色器的业务
矩阵变换位置
计算光照公式生成逐顶点颜色
⽣成/变换纹理坐标
总结: 它可以用于执行自定义计算,实施新的变换,照明或者传统的固定功能所不允许的基于顶点的效果.
代码示例:
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;
}
图元装配
顶点着色器之后,下一个阶段就是图元装配.
光栅化
在这个阶段绘制对应的图元(点/线/三⻆角形). 光栅化就是将图元转化成一组⼆维片段的过程.而这些转化的片段将由⽚元着⾊器处理.这些二维片段就是屏幕上可绘制的像素.
![](https://img.haomeiwen.com/i1644810/6519d63400c46dde.png)
片段着⾊器/⽚元着⾊器
⽚元着⾊器/⽚着⾊器 输⼊:
- 着⾊器程序:描述⽚段上执行操作的顶点着⾊器程序源代码/可执⾏文件。
- 输⼊变量:光栅化单元用插值为每个片段⽣成的顶点着⾊器输出。
- 统一变量(uniform):顶点/⽚元着⾊器使⽤的不变数据。
- 采样器:代表⽚元着⾊器使用纹理的特殊统一变量类型。
![](https://img.haomeiwen.com/i1644810/cb70a2aa26770d5d.png)
⽚元着⾊器 业务:
计算颜⾊
获取纹理值
往像素点中填充颜色值(纹理值/颜色值);
总结: 它可以用于图⽚/视频/图形中每个像素的颜色填充(比如给视频添加滤镜,实际上就是将视频中每个图片的像素点颜色填充进行修改.)
网友评论