着色器:版本声明 输入输出变量 uniform和 main函数
glsl数据类型:int、 float、double、uint、bool、Vector和Matrix
vecn 包含n个float分量的默认向量
bvecn包含n个bool分量的默认向量
从一个着色器向另一个着色器发送数据,我们必须在发送方着色器中声明一个输出,在接收方着色器中声明一个类似的输入。当类型和名字都一样的时候,OpenGL就会把两个变量链接到一起,它们之间就能发送数据了(这是在链接程序对象时完成的)
为了定义顶点数据该如何管理,我们使用location
这一元数据指定输入变量,这样我们才可以在CPU上配置顶点属性。我们已经在前面的教程看过这个了,layout (location = 0)
。顶点着色器需要为它的输入提供一个额外的layout
标识,这样我们才能把它链接到顶点数据
Uniform 是从CPU中向GPU发送数据的方式。它是一个全局变量。
location这一元素指定输入变量
layout (location = 0) in vec3 aPos; // 位置变量的属性位置值为 0
layout (location = 1) in vec3 aColor; // 颜色变量的属性位置值为 1