GLSL三种基本类型
**attribute:**
1)只在顶点着色器中使用。
2)一般用于表示顶点坐标、纹理坐标等。
3)使用bindAttributeLocation来设置变量在着色器程序中参数列表的索引。
4)使用glVertexAttribPointer来设置attribute的数值。
**uniform:**
1)uniform是由外部程序传递给顶点着色器和片元着色器的变量。
2)当顶点着色器和片元着色器声明了一个完全一样的unifrom变量,则两者都可以访问到数据,但不能修改,相当于只读全局变量。
3)一般情况下用于表示材质数据。
**varing:**
1)用于顶点着色器和片元着色器之间传递的变量。
2)由顶点着色器赋值,片元着色器只读。
3)二者的声明必须完全一直,外部程序不能使用该变量。