基本数据类型
void 函数
void 函数没有返回值必须声明为void。关键字void 不能⽤于其他声明,除了空形参列表外
bool
布尔值,只有2个取值,true,false
int
int 整型,OpenGL ES着⾊语⾔会把整数转化为浮点数来进⾏操作。
float 浮点型,GLSL没有double类型
float 浮点类型,⽤于广泛的标量计算。⽐如float a,b = 1.5;
vec2、vec3、vec4整型向量,bvec2 bvec3、bvec4布尔型向量,ivec2、ivec3、ivec4
OpenGL ES着⾊语言包含了像2-, 3-,4- 浮点数、整数、booleans型向量的泛型表示法。浮点型向量可以保存各种有用的图形数据,⽐如颜色、位置、纹理坐标等。 例如,vec2 texCoord1;
mat2、mat3、mat4 矩阵
矩阵是另⼀个在计算机图形中⾮常有用的数据类型。OpenGL ES着色语言⽀持2*2,3*3,4*4浮点数矩阵 例如,mat2 mat2D;
sampler2D ⽤于访问2D纹理的句柄
采样器类型,实际上是纹理的不透明句柄,他们用在内建的纹理函数来指明要访问那个纹理。他们只能被声明为函数参数或uniforms。
samplerCube 访问⽴方体映射纹理理的句柄
存储修饰符
常量修饰符 const
1.任何使用const声明的变量在其所属的着色器中均是只读的。
2.const 用来修饰任何基本数据类型
3.const不能用来修饰包含数组的数组、结构体
Attribute
⽤于修饰声明通过OpenGL ES应用程序传递顶点着⾊器的变量值,在其他任何非顶点着⾊器的着⾊器程序中声明attribute变量是错误的
Uniform
1.修饰用来修饰那些被整个图元在被处理过程中保持不变的全局变量
2.所有uniform变量都是只读的
3.uniform修饰符可以和任意基本数 据类型一起使⽤,或者包含基本数据 类型元素的数组和结构体
Varying
1.varying变量提供了顶点着⾊器,⽚元着⾊器和二者通讯控制模块之间的 接⼝
2.顶点着⾊器计算每个顶点的值(如 颜⾊,纹理坐标等)并将它们写到 varying变量中。顶点着⾊器也会从 varying变量中读值,获取和它写入 相同的值
3.⽚元着⾊器会读取varying变量的值,并且被读取的值将会作为插值器,作为图元中⽚元位置的⼀个功能信息。varying变量对于片元着⾊器来说是只读的。
精度修饰符
highp
浮点数的范围 (-2^62 - 2^62)
整型范围 (-2^16 - 2^16)
mediump
浮点数的范围 (-2^14 - 2^14)
整型范围 (-2^10 - 2^10)
lowp
浮点数的范围 (-2,2)
整型范围(-2^8 - 2^8)