Disegna punti in OpenGL con QVector3D
Domanda
Ho un elenco di QVector3D
, che è un elenco di punti, voglio disegnare un elenco di punti con 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,??);
.
o quale altro metodo posso usare per affrontare questo?
Soluzione
.GLBUFFERDATA (GL_ARRAY_BUFFER, DATA.SIZE () * Sizeof (QVector3D), Verici, GL_static_Draw);
Questo è corretto, ma ti suggerirei di utilizzare contenitori più intelligenti come QVector al di fuori di Allora ConstData come segue:
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), myVector.constData(), GL_STATIC_DRAW);
.
Ecco un altro esempio ufficiale Come utilizzare glBufferData
nel contesto di QVector3D
:
geometryengine.cpp file di esempio .
Qui puoi trovare un altro esempio di terze parti in seguito all'esempio ufficiale:
Allora, potresti scrivere:
glDrawArrays(GL_POINTS, 0, data.size());
. Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow