官方文档
https://www.khronos.org/files/opengles_shading_language.pdf
优快云上也有一些翻译之后的文档.
着色语言非常类似于C和matlab语言, 所以跟C语言相同的部分, 就不写了, 它由两部分组成, 顶点处理器和片段处理器.
顶点处理器决定着色的几何位置, 片段处理器决定着色的颜色.
基本类型
类型 | 含义 |
---|---|
vec2/vec3/vec4 | 分别为2/3/4维的浮点数向量 |
bvec2/bvec3/bvec4 | 分别为2/3/4维的Bool值向量 |
mat2/mat3/mat4 | 分别为2x2, 3x3, 4x4的矩阵 |
sampler2D | 二维纹理的句柄 |
samplerCube | 我也没用过, 不知道怎么用 |
坐标系(x, y, z, w), 前三维很容易理解, 第4维w可以理解为远近. w=0时, 表示物体无限远. 越远的物体, 看起来越小, 越近的物体, 看起来越大
存储器修饰符
修饰符 | 含义 |
---|---|
const | 变量不允许被修改 |
attribute | 只能用于顶点着色器, 将GL API中的数据与shader中的变量进行关联 |