OpenGL - 顶点数组对象和映射顶点缓冲区对象

时间:2013-06-08 21:41:24

标签: java opengl mapping lwjgl vbo

我正在使用VAO和Mapped VBO来获得尽可能多的性能。现在,我的VBO以VCVCVCVCVCVC格式交错,因此顶点为3个浮点数,然后是4个浮点数。

我的问题是,即使我有正确的步幅和偏移,它也无法识别颜色。当我实现VAO时,这个问题就开始发生了。

代码的导入部分: 映射VBO并创建VAO

绑定所有内容:

glBindVertexArray(vaoHandel);

glBindBuffer(GL_ARRAY_BUFFER, vboHandel);
glBufferData(GL_ARRAY_BUFFER, NumberOfIndecies << 2, GL_STATIC_DRAW);

glVertexAttribPointer(0, 3, GL_FLOAT, false, 7<<2, 0<<2);
glEnableVertexAttribArray(0);
glVertexAttribPointer(1, 4, GL_FLOAT, false, 7<<2, 3<<2);
glEnableVertexAttribArray(1);

映射部分:

ByteBuffer dataBuffer = glMapBuffer(GL_ARRAY_BUFFER, GL_WRITE_ONLY, NumberofIndecies << 2, null);
FloatBuffer vboData = dataBuffer.order(ByteOrder.nativeOrder()).asFloatBuffer();

Bulding VBO:

build(vboData);
vboData.flip();

取消映射:

glUnmapBuffer(GL_ARRAY_BUFFER);

解除绑定:

glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindVertexArray(0);

那就是构建和映射VBO和VAO。 渲染:

glBindVertexArray(vaoHandel);

glDrawArrays(GL_QUADS, 0,  capacity);                   

glDisableVertexAttribArray(0);
glDisableVertexAttribArray(1);

glBindVertexArray(0);

再次回顾一下我的问题是颜色不起作用,它们不显示。我正在绘制的 QUADS 显示但是 WHITE 。在检查了我输入的颜色后,显然 RED

0 个答案:

没有答案