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?

È stato utile?

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:

fabscan100

Allora, potresti scrivere:

glDrawArrays(GL_POINTS, 0, data.size());
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top