未使用的缓冲区数据会发生什么情况?

我有一个顶点结构有5 glm :: vec3但我的一些对象只使用2或3的成员。 所以我有两个问题:

1.)我创建的大缓冲区会发生什么,即使我不使用所有的数据。

Struct Vertex { glm::vec3 pos, color, UV, normal, tangent }; std::vector<Vertex> vertices; // will store the vertex data glBufferData(GL_ARRAY_BUFFER, vertices.size() * sizeof(Vertex), vertices.data(), GL_STATIC_DRAW); 

这会创建一个比需要更大的缓冲区。 额外的缓冲区数据是不是发送?

2.)如果我发送空的数据到缓冲区,是否导致任何性能问题?

 glVertexPointer(2, 3 , GL_FLOAT, GL_FALSE, size of(Vertex), reinterpret_cast<GLvoid*>(Offsetof(Vertex, unusedData)); 

感谢您的信息!