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_Positionおよびを使用してアクセスできるように、ジオメトリ シェーダーにライン データを提供するにはどうすればよいでしょうgl_in[1].gl_Positionか?

4

0 に答える 0