【发布时间】:2015-11-03 07:36:13
【问题描述】:
所以我一直在学习一些 OpenGL,需要学习的内容很多,我只是一个初学者,但我不了解 GLSL 中的“布局限定符”。
所以是这样的:
layout (location = 0) in vec3 position;
在一个简单的顶点着色器中,例如:
#version 330 core
layout (location = 0) in vec3 position; // The position variable has attribute position 0
out vec4 vertexColor; // Specify a color output to the fragment shader
void main()
{
gl_Position = vec4(position, 1.0); // See how we directly give a vec3 to vec4's constructor
vertexColor = vec4(0.5f, 0.0f, 0.0f, 1.0f); // Set the output variable to a dark-red color
}
例如,我了解 out vec4(因为那是进入片段着色器)。例如,vertexColor 是有意义的。
但也许我不理解“位置”以及在这个意义上这究竟意味着什么?有人愿意解释吗? opengl wiki 老实说并没有帮助我。
但也许我误解了什么是顶点着色器(我当然还是有点不确定管道)。但据我了解,顶点规范是我们做正确的第一件事吗? (顶点/索引,如果需要)并将它们存储到 VAO 中。
所以顶点着色器与每个单独的顶点交互? (我希望)因为我就是这么理解的?
【问题讨论】: