分配顶点缓冲区对象

时间:2013-09-03 19:33:42

标签: c++ opengl vertex-buffer

我正在尝试从opengl(c ++)中的高度图创建地形,并跟随this tutorial

我也在尝试使用顶点缓冲对象加速它。在他们的示例中,他们创建了一个顶点对象,其中包含3个浮点数,用于x,y,z。然后,它们将指针传递给要复制到缓冲区对象的这些顶点对象的数组。我不明白的是为什么缓冲参数的大小会传递3个浮点数的大小(乘以顶点数)。

当然,传递给它的顶点对象大于3个浮点数的大小? glBufferDataARB函数以某种方式提取这些变量吗?对象的大小是否等于变量的大小?或者我错过了什么?

1 个答案:

答案 0 :(得分:2)

VBOs存储字节。稍后gl*Pointer()和/或glVertexAttrib()调用告诉OpenGL如何解释这些字节。

要存储三个浮点数,您需要sizeof(float) * 3个字节。

要存储N三个浮点顶点,您需要sizeof(float) * 3 * N个字节。