Question

j'ai une liste de QVector3D, qui est une liste de points, je veux dessiner une liste de points avec 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,??);

ou quelle autre méthode puis-je utiliser pour résoudre ce problème ?

Était-ce utile?

La solution

glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), sommets, GL_STATIC_DRAW);

C'est correct, mais je suggérerais d'utiliser des conteneurs plus intelligents comme QVector en dehors d'un then constData comme suit :

glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), myVector.constData(), GL_STATIC_DRAW);

Voici un autre exemple officiel d'utilisation glBufferData dans le contexte de QVector3D:

exemple de fichier geometrieengine.cpp

Vous trouverez ici un autre exemple tiers suivant l'exemple officiel :

FabScan100

Ensuite, vous pourriez écrire :

glDrawArrays(GL_POINTS, 0, data.size());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top