在几何着色器中使用layout(points) in
时,我可以简单地通过顶点着色器转发数据,方法是为 gl_Position 提供一个vec4
:
// Vertex Shader
in vec2 position;
void main()
{
gl_Position = vec4(position, 0.0, 1.0);
}
// cpp file
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, sizeof(points), points, GL_STATIC_DRAW);
GLint posAttrib = glGetAttribLocation(shaderProgram, "position");
glEnableVertexAttribArray(posAttrib);
glVertexAttribPointer(posAttrib, 2, GL_FLOAT, GL_FALSE, 0, 0);
然后我可以gl_in[0].gl_Position
在几何着色器中访问它。
但是,如果我想将输入输入到几何着色器中layout(lines) in
呢?这可以通过顶点着色器转发值来完成,还是有其他方法?
简而言之:如何向几何着色器提供线数据,以便可以使用gl_in[0].gl_Position
and访问它gl_in[1].gl_Position
?