OpenGL:布局限定符?

时间:2015-11-03 07:36:14

标签: opengl glsl

所以我一直在学习一些OpenGL,这是一个很好的内容,我只是一个初学者,但我不理解GLSL中的“布局限定符”。

这样的事情:

{{1}}

在一个简单的顶点着色器中,例如:

{{1}}

我理解out vec4例如(因为那会转到片段着色器)。例如,vertexColor是有意义的。

但也许我不理解“位置”,这究竟意味着什么呢?有人关心解释吗? opengl维基老实说没有帮助我。

但也许我误解了什么是顶点着色器(我当然还有点不确定管道)。但根据我的理解,顶点规范是我们做的第一件事吗? (如果需要,可以使用顶点/索引)并将它们存储到VAO中。

那么顶点着色器是否与每个顶点相互作用? (我希望),因为那是我如何理解的?

1 个答案:

答案 0 :(得分:17)

你是对的,为每个顶点执行顶点着色器。

顶点由或几个属性(位置,法线,纹理坐标等)组成。

在创建VAO时,在CPU端,通过说“此缓冲区中的此数据将属性为0,其旁边的数据将为属性1等”来描述每个属性。请注意,VAO仅存储此信息的人员。实际的顶点数据存储在VBO中。

在顶点着色器中,具有布局和位置的线只是说“获取属性0并将其放入名为position的变量”( location 表示属性的编号)。

如果两个步骤都正确完成,你应该在名为position的变量中找到一个位置:)它更清楚吗?