【发布时间】:2016-10-25 19:41:02
【问题描述】:
您好,我无法弄清楚为什么传递 GLfloat 位置 (xyz) 数组的第一个元素会突然给缓冲区提供该数组的所有元素。
glBufferData(GL_ARRAY_BUFFER, sizeof(Vertex) * vertices.size(), &vertices[0], GL_STATIC_DRAW);
这里 data 的参数是 &vertices[0] ,在调试过程中只有一个 xyz 向量,但是当整个对象被渲染时,它肯定不能只有这个向量。
明智的做法是将整个向量 &vertices 传递到我的脑海中,不是吗?
也许我对 OpenGL 缓冲区的工作方式有误解?
我一直在关注这里的教程:http://learnopengl.com/#!Model-Loading/Mesh
总结一下:为什么用 &vertices[0] 而不是 &vertices
【问题讨论】:
-
如果你使用 C++11,
vertices.data()比&vertices[0]更清晰。