1
私はJOGL OpenGLの問題がありますが、私はVertex Arraysを使用しようとしていますが、glArrayElementを使用するときはいつでも(注:glDrawElementsはどちらも動作しません)、ポイント0 、0,0。重要なコード。私は、ウィンドウが初期化され、再形状関数が指定されていると仮定しています。JOGL glArrayElement point 0,0,0
...
public void display(GLDrawable glDrawable) {
final GL gl = glDrawable.getGL();
gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(0, 0, -6);
gl.glBegin(GL.GL_TRIANGLES);
gl.glColor3f(1.0f, 0.0f, 0.0f);
gl.glArrayElement(4);
/*gl.glArrayElement(5); // These are what I'm trying to use, but they seem to return the point 0,0,0.
gl.glArrayElement(6);
gl.glArrayElement(5);
gl.glArrayElement(6);
gl.glArrayElement(7);*/
//gl.glVertex3f(1, 1, -1); // Replaced with uncommented glArrayElement above.
gl.glColor3f(0.0f, 1.0f, 0.0f);
gl.glVertex3f(-1, 1, -1);
gl.glVertex3f(1, -1, -1);
gl.glColor3f(0.0f, 0.0f, 1.0f);
gl.glVertex3f(-1, 1, -1);
gl.glVertex3f(1, -1, -1);
gl.glVertex3f(-1, -1, -1);
gl.glEnd();
}
...
protected final static float[] mesh = {1,1,1, -1,1,1, 1,-1,1, -1,-1,1,
1,1,-1, -1,1,-1, 1,-1,-1, -1,-1,-1};
protected static ByteBuffer stdMesh;
...
public void init(GLDrawable glDrawable) {
final GL gl = glDrawable.getGL();
gl.glShadeModel(GL.GL_SMOOTH);
gl.glClearColor(0.0f, 0.0f, 0.0f, 0.0f);
gl.glClearDepth(1.0f);
gl.glEnable(GL.GL_DEPTH_TEST);
gl.glDepthFunc(GL.GL_LEQUAL);
gl.glHint(GL.GL_PERSPECTIVE_CORRECTION_HINT, GL.GL_NICEST);
gl.glEnableClientState(GL.GL_VERTEX_ARRAY);
stdMesh = ByteBuffer.allocateDirect(mesh.length * 4);
stdMesh.asFloatBuffer().put(mesh);
gl.glVertexPointer(3, GL.GL_FLOAT, 0, stdMesh);
}
...
他の初期化機能/描画機能がありますか?それとも別の問題ですか? 何か助けていただければ幸いです。