我正在制作这个需要渲染彩色四边形的程序。我为此使用 VBO。
这就是我存储顶点和颜色数据的方式:
渲染四边形:
buff.put(3 floats color)
render the quad (3 floats per vertex * 4 per face * 6 per quad)
现在,正如您所见,我的目标是使用交错的 VBO,但我无法确定步幅和偏移量。
这是我在渲染时的调用:
(注意我使用映射的 vbos,这就是为什么没有实际的数据绑定):
glBindBufferARB(GL_ARRAY_BUFFER_ARB, etn.getVboHandel());
glBufferDataARB(GL_ARRAY_BUFFER_ARB, etn.getVboData().capacity() << 2, GL_STATIC_DRAW_ARB);
glColorPointer(3, GL_FLOAT, /* stride **/6 << 2, /* offset **/0);
glVertexPointer(3, GL_FLOAT, /* stride **/6 << 2, /* offset **/0);
glDrawArrays(GL_QUADS, 0, etn.getVboData().capacity());
我无法让偏移量和步幅正确,所以当我渲染时,我看到了这个奇怪的伪影。