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;  // 成功傳入數據

 

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