1.uniform变量
uniform变量是外部application程序传递给(vertex和fragment)shader的变量。在(vertex和fragment)shader程序内部,uniform变量就像是C语言里面的常量(const ),它不能被shader程序修改。
Opengl中可以设置三种类型的精度(lowp,medium 和 highp),对于Vertex Shader来说,Opengl使用的是默认最高精度级别(highp)
eg:uniform highp mat4 proj;//高精度的proj矩阵。
2.attribute变量
只能在vertex shader中使用的变量。一般用attribute变量来表示一些顶点的数据,如:顶点坐标,法线,纹理坐标,顶点颜色等。
eg:TEXCOORD1 attribute vec4 texcoord1;
COLOR0 attribute vec4 diffuse;
POSITION attribute vec4 position;
3.varying变量
varying变量是vertex和fragment shader之间做数据传递用的。一般vertex shader修改varying变量的值,然后fragment shader使用该varying变量的值。所以vertex和fragment shader都得定义并且一致。
持续更新