我是jogl的新手,并尝试使用VBO渲染矩形。 有两个数组:第一个arrey是
float vertex[] = {-2.0f, -2.0f, -2.0f,
2.0f, -2.0f, -2.0f,
-2.0f, -2.0f, 2.0f,
2.0f, -2.0f, 2.0f
};
第二个数组是
float colors[] = {1.0f, 0.0f, 0.0f,
0.0f, 1.0f, 0.0f,
0.0f, 0.0f, 1.0f,
1.0f, 1.0f, 0.0f
};
然后我尝试初始化顶点缓冲区
pointsbf = Buffers.newDirectFloatBuffer(vertex.length);
colorsbf = Buffers.newDirectFloatBuffer(colors.length);
pointsbf.put(vertex);
colorsbf.put(colors);
pointsbf.rewind();
colorsbf.rewind();
上面的代码是用INIT()函数编写的; 下面的代码是用DISPLAY()函数编写的;
gl.glEnableClientState(GL2.GL_VERTEX_ARRAY);
gl.glEnableClientState(GL2.GL_COLOR_ARRAY);
gl.glVertexPointer(3, GL.GL_FLOAT, 0, pointsbf);
gl.glColorPointer(3, GL.GL_FLOAT, 0, colorsbf);
gl.glDrawArrays(GL.GL_TRIANGLES, 0, totalNumVerts);
gl.glDisableClientState(GL2.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL2.GL_COLOR_ARRAY);
但运行后的代码只显示黑屏((
答案 0 :(得分:0)
您是否修改了投影矩阵和模型视图矩阵?如果您的顶点不在视锥体中,您将看不到它们。
您可以使用我的示例并将其修改为使用VBO: http://en.wikipedia.org/wiki/Java_OpenGL#Code_example
请记住,the official JogAmp forum是获取JOGL答案的更好地方。