0

在几何着色器中使用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_Positionand访问它gl_in[1].gl_Position

4

0 回答 0