1

我正在尝试从 opengl(c++) 中的高度图创建地形,并遵循本教程

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

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

4

1 回答 1

2

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

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

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

于 2013-09-03T19:36:40.777 回答