OpenGL 着色器中使用的是着色语言GLSL。着色语言源自C语言,提供了丰富的原生类型,如向量、矩阵等,还有大量的内建函数,这在处理3D图形时可以更加高效、易用。下面是整理的是OpenGL ES2.0的GLSL语言。
基本数据类型
标量
GLSL中的标量含布尔、int和float,声明方法也跟一般的语言相似:
向量
由2,3或4维标量组成:
访问向量的某个分量可以通过数组下标v[0]访问,起始索引为0。也可以通过.+分量名来访问,根据目的GLSL中有三套分量名,分别为颜色r,g,b,a,坐标x,y,z,w和纹理坐标s,t,p,q,使用的时候三套分量名是相同作用的,只要同时使用时,保证为同一套即可:
矩阵
在3D场景中,矩阵是十分重要的,平移,旋转或者缩放都是靠矩阵运行实现的。所以GLSL中原生支持矩阵类型和相应的矩阵计算。
矩阵可以看成由多个列向量组成,类似于二维数组