我有一个QVector3D
列表,这是一个点列表,我想用glDrawArrays
绘制一个点列表。
initializeGLFunctions();
glGenBuffers(2, vbo);
//the vertices
QVector3D *vertices = &data[0];
glBindBuffer(GL_ARRAY_BUFFER, vbo[0]);
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), vertices, GL_STATIC_DRAW);
glDrawArrays(GL_POINTS,??);
或我可以使用什么其他方法来处理呢?
最佳答案
这是正确的,但是我建议在然后constData之外使用更智能的容器,例如QVector,如下所示:
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), myVector.constData(), GL_STATIC_DRAW);
这是另一个官方示例,如何在
glBufferData
的上下文中使用QVector3D
:geometryengine.cpp Example File
您可以在官方示例之后找到另一个第三方示例:
FabScan100
然后,您可以编写:
glDrawArrays(GL_POINTS, 0, data.size());