glsl1.30着色器文件写法
时间: 2023-08-06 11:03:53 浏览: 46
以下是一个简单的 glsl1.30 着色器文件的写法,包含了一个顶点着色器和一个片段着色器:
```glsl
// 顶点着色器
#version 130
// 顶点属性:位置和颜色
in vec3 a_position;
in vec3 a_color;
// 输出到片段着色器的颜色
out vec3 v_color;
void main() {
// 设置顶点颜色
v_color = a_color;
// 设置顶点位置
gl_Position = vec4(a_position, 1.0);
}
// 片段着色器
#version 130
// 从顶点着色器传递过来的颜色
in vec3 v_color;
// 输出到屏幕的颜色
out vec4 frag_color;
void main() {
// 设置颜色为从顶点着色器传递过来的颜色
frag_color = vec4(v_color, 1.0);
}
```
顶点着色器中,我们定义了两个顶点属性:位置和颜色。使用 `in` 关键字声明输入变量,并且定义了一个输出变量 `v_color`,将它传递给片段着色器。
在 `main()` 函数中,我们将顶点颜色 `a_color` 赋值给 `v_color`,并将顶点位置 `a_position` 赋值给内置变量 `gl_Position`,它表示顶点的裁剪空间坐标。
片段着色器中,我们接收了从顶点着色器传递过来的颜色值 `v_color`,并且定义了一个输出变量 `frag_color`,它将被传递给屏幕显示。在 `main()` 函数中,我们将 `frag_color` 的颜色值设置为从顶点着色器传递过来的 `v_color`。