着色器是运行在GPU上的小程序,负责图形渲染管线的特定部分,把输入转化为输出。
着色器开头应该说明版本,输入输出变量,uniform和main函数
顶点着色器的输入变量叫做顶点属性,由硬件来决定属性个数上限,通常情况下为16个
当在顶点着色器内想输入数据时,使用layout(location = 0,1,2...),当然数据大部分使用VAO VBO来设定编号和内容,使用glVertexAttribPointer函数更新顶点格式
片段着色器需要一个vec4类型输出变量,通过控制输出颜色,默认为黑色或白色
当要从一个着色器向另一个着色器发送数据时,需要使用out typeName name,在另一个着色器内使用相同的类型和名字
如果想在应用程序中像着色器中传值,使用uniform,uniform是全局变量,保证在所有着色器程序对象中都是唯一的,使用方法也一样uniform typeName name。如果想在uniform变量中填值的话,使用shader.setTypeName来传值