繁体   English   中英

渲染OpenGL VBO的For循环

[英]For loop for rendering OpenGL VBO

我设法使用VBO在OpenGL中渲染了一个多维数据集。 我的下一个目标实际上是创建一个for循环以创建多个多维数据集。 不过,我仍然停留在这部分上,请输入以下代码:

GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
    ARBVertexBufferObject.glBindBufferARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vertexBufferID);
    GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0);
    GL11.glDrawArrays(GL11.GL_QUADS, 0, 24);
    GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);

进入for循环? 我是否必须将某种glPopMatrix命令与转换函数一起使用? 我几乎不了解如何在VBO中创建一个多维数据集,所以很抱歉,如果它明显出了问题。

您可以使用以下方式:

GL11.glEnableClientState(GL11.GL_VERTEX_ARRAY);
ARBVertexBufferObject.glBindBufferARB(ARBVertexBufferObject.GL_ARRAY_BUFFER_ARB, vertexBufferID);
GL11.glVertexPointer(3, GL11.GL_FLOAT, 0, 0);

for (int i = 0; i < cubeCount; i++) {
  GL11.glPushMatrix();
  // do translation/rotation for cube no i
  GL11.glDrawArrays(GL11.GL_QUADS, 0, 24);
  GL11.glPopMatrix();
}

GL11.glDisableClientState(GL11.GL_VERTEX_ARRAY);

请注意,在较新的openGl版本中不建议使用glPushMatrix / glPopMatrix方法。 对您来说,它应该工作,因为您使用的是GL11

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM