1

lwjgl (Java OpenGL バインディング) を使用して基本モデルをレンダリングしようとしています。私は、私が覚えているものを使用して、できるだけ自分の知識からこれをやろうとしています. 次のような vbo を作成しました。

    int verticesVBO = GL15.glGenBuffers ( );
    vboIDs.add ( verticesVBO );
    FloatBuffer verticesData = bufferFromData ( vertices );// Custom Method
    GL15.glBindBuffer ( GL15.GL_ARRAY_BUFFER , verticesVBO );
    GL15.glBufferData ( GL15.GL_ARRAY_BUFFER , verticesData , GL15.GL_STATIC_DRAW );
    GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0);// Binds the vbo to the bound vao
    if(( error = GL11.glGetError()) != GL11.GL_NO_ERROR) System.err.println(GLU.gluErrorString(error));

ここまでは、インデックス バッファ オブジェクトを使用して取得しました。

    int indicesVBO = GL15.glGenBuffers ( );
    vboIDs.add ( verticesVBO );
    IntBuffer indicesData = bufferFromData ( indices );
    GL15.glBindBuffer ( GL15.GL_ELEMENT_ARRAY_BUFFER , indicesVBO );
    GL15.glBufferData ( GL15.GL_ELEMENT_ARRAY_BUFFER , indicesData , GL15.GL_STATIC_DRAW );
    //Problem Here
    if(( error = GL11.glGetError()) != GL11.GL_NO_ERROR) System.err.println(GLU.gluErrorString(error));

私が抱えている問題は、インデックス バッファを vao にバインドするために使用する方法がわからないということです。使用することがわかっている頂点データを含む vbo については、GL20.glVertexAttribPointer(0, 3, GL11.GL_FLOAT, false, 0, 0);インデックス バッファーの動作が異なることを覚えています。これは学習プロセスですので、批判は建設的に行ってください。

4

1 に答える 1