0

インスタンス化されたレンダリングを機能させようとしていますが、glBufferSubDataで1281例外(無効な値)が発生する理由がわかりません。

これが私のコードです:

FloatBuffer square_vertices_fb = BufferUtils.createFloatBuffer(16);
     square_vertices_fb.put(square_vertices);
     square_vertices_fb.rewind();

     FloatBuffer instance_colors_fb = BufferUtils.createFloatBuffer(instance_colors.length);
     instance_colors_fb.put(instance_colors);
     instance_colors_fb.rewind();

     FloatBuffer instance_positions_fb = BufferUtils.createFloatBuffer(instance_positions.length);
     instance_positions_fb.put(instance_positions);
     instance_positions_fb.rewind();
    glBufferData(GL_ARRAY_BUFFER, square_vertices.length + instance_colors.length + instance_positions.length, GL_STATIC_DRAW);
    System.out.println(Integer.toString(glGetError()));
    glBufferSubData(GL_ARRAY_BUFFER, 0, square_vertices_fb);
    System.out.println(Integer.toString(glGetError()));
    glBufferSubData(GL_ARRAY_BUFFER, square_vertices.length, instance_colors_fb);
    glBufferSubData(GL_ARRAY_BUFFER, square_vertices.length + instance_colors.length, instance_positions_fb);

最初のエラーチェックで0(エラーなし)が返されますが、最初のglBufferSubDataの直後に1281エラーが発生します。

ここで何が問題なのかについてのアイデアはありますか?

4

1 に答える 1

0

わかりました、LWJGL の glBufferSubData がオフセットをバイト単位で必要としていることがわかりました。問題は修正されました。

于 2012-12-19T16:47:48.897 に答える