我正在尝试从opengl(c ++)中的高度图创建地形,并跟随this tutorial。
我也在尝试使用顶点缓冲对象加速它。在他们的示例中,他们创建了一个顶点对象,其中包含3个浮点数,用于x,y,z。然后,它们将指针传递给要复制到缓冲区对象的这些顶点对象的数组。我不明白的是为什么缓冲参数的大小会传递3个浮点数的大小(乘以顶点数)。
当然,传递给它的顶点对象大于3个浮点数的大小? glBufferDataARB函数以某种方式提取这些变量吗?对象的大小是否等于变量的大小?或者我错过了什么?
答案 0 :(得分:2)
VBOs存储字节。稍后gl*Pointer()
和/或glVertexAttrib()
调用告诉OpenGL如何解释这些字节。
要存储三个浮点数,您需要sizeof(float) * 3
个字节。
要存储N
三个浮点顶点,您需要sizeof(float) * 3 * N
个字节。