Java と LWJGL を使用して OpenGL で VBO を使用する方法を練習しています (このチュートリアルを使用し、基本的にそのコードをコピーします: http://www.arcsynthesis.org/gltut/index.html )。
ウィンドウをセットアップしました。これが私の render() 関数で、メイン ループ内で呼び出されます。
public void render() {
FloatBuffer buffer = BufferUtils.createFloatBuffer(3 * 3);
buffer.put(-1);
buffer.put(-1);
buffer.put(0);
buffer.put(0);
buffer.put(1);
buffer.put(0);
buffer.put(1);
buffer.put(-1);
buffer.put(0);
buffer.flip();
int vbo = glGenBuffers();
glBindBuffer(GL_ARRAY_BUFFER, vbo);
glBufferData(GL_ARRAY_BUFFER, buffer, GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, false, 3 * 4, 0);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableVertexAttribArray(0);
}
ご覧のとおり、三角形を描画するのは非常に単純なコードです。しかし、Intel HD 4000 グラフィックスを実行している Mac OS X Mountain Lion ラップトップで得られるものは次のとおりです。
そして、AMD HD 6850 グラフィックスを実行している Windows 7 で得られるのは次のとおりです。
何故ですか?これが発生する理由は本当にわかりません。どちらのビデオ カードも OpenGL 2.0 をサポートしています。これは私が使用しているものですよね?