GLSL ES
1 | varying vec2 vUv; |
main()函数是GLSL ES程序的入口,一个着色器程序有且仅有一个main函数,并且不能接受任何参数。
强类型语言
声明变量时,必须指明变量类型。
在定于函数时,必须指明函数的返回值。如上main前的void就是表示函数不返回任何值。
基本数据类型
- 数值类型 (整型数和浮点数)
- 布尔值类型
没有字符串类型
其他数据类型
- 矢量
- 矩阵
矢量和矩阵类型是由多个基本数据类型组成。
声明变量
前面说到的GLSL ES是强类型语言,那么就不能像js那样申明任何变量都用一个关键词var。而是通过不同的关键词来申明不同类型的变量:
foat a;
申明浮点类型变量a;int b = 1;
申明整行类型变量b,赋值为1;bool c = false;
声明布尔类型变量c,赋值为false。
赋值符号=右侧的数据类型必须为左边指明的数据类型,否则会报错。
对于声明非基本数据类型的变量,也有相应的关键词:
- vec2 | vec3 | vec4 具有2,3,4个浮点数元素的矢量
- ivec2 | ivec3 | ivec4 具有2,3,4个整型数元素的矢量
- bvec2 | bvec3 | bvec4 具有2,3,4个布尔值元素的矢量
- mat2 | mat3 | mat4 22,33,4*4的浮点数元素的矩阵
在给非基本数据类型的变量赋值时,会调用与申明该变量所用关键词同名的构造函数,例如:
vec3 point = vec3(1.0, 0.0, 0.8);
在用矩阵构造函数来构造矩阵时,必须按列主序的顺序来传入每一个值。
Comments