GLSL的in、out存储限制符使用错误

在GLSL中用in修饰的变量表示传入的数据,用out修饰的变量表示传出的数据,通过这样可以实现顶点着色器向片段着色器传递数据,但要注意这个变量的命名要相同,不相同的话,片段着色器是获取不到从顶点着色器传入的数据的。

1.顶点着色器

#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec3 aColor;
layout (location = 2) in vec2 aTexCoord;

out vec3 ourColor;
out vec2 texCoord;  // 从顶点着色器中传出数据

2.片段着色器

#version 330 core
out vec4 FragColor;

in vec3 ourColor;
in vec2 TexCoord;  // 和顶点着色器中传出的变量的命名不同,因此他的值为0
in vec2 texCoord;  // 成功传入数据

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章