在netbeans 7.4上运行jogl VBO

时间:2014-02-12 12:04:03

标签: jogl vbo

我是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);

但运行后的代码只显示黑屏((

1 个答案:

答案 0 :(得分:0)

您是否修改了投影矩阵和模型视图矩阵?如果您的顶点不在视锥体中,您将看不到它们。

您可以使用我的示例并将其修改为使用VBO: http://en.wikipedia.org/wiki/Java_OpenGL#Code_example

请记住,the official JogAmp forum是获取JOGL答案的更好地方。