在几何着色器中使用layout(points) in
时,我可以通过使用vec4
提供gl_Position来简单地通过顶点着色器转发数据:
// 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
和gl_in[1].gl_Position
来访问它?