限定符:
attribute表示修饰顶点属性的变量,这种类型的变量只能出现在vertex shader中,且为只读性性。
uniform表示修饰图元,帧的变量,这种类型的变量无论在vertex shader还是fragment shader中都是只读属性,不可写。
varying表示是可读可写的变量,在vertex shader只能写,在fragment shader中只能读,用于vertex shader与fragment shader传数据,并插值。
const是常量限定符,与c/c++中类似
数据类型:
包括c语言的基本类型,如:int, float, bool
C语言的结构体,如:
struct dirlight {
vec3 direction;
vec3 color;
};
C语言的数组,但声明的时候不能初始化。
向量:
vec{2,3,4} a vector of 2,3,or 4 floats
bvec{2,3,4} bool vector
ivec{2,3,4} vector of integers
矩阵:
mat{2,3,4} a matrix of 2, 3, 4
纹理相关类型:
sampler1D – for 1D textures
sampler2D – for 2D textures
sampler3D – for 3D textures
samplerCube – for cube map textures
sampler1DShadow – for shadow maps
sampler2DShadow – for shadow maps