Dibujar puntos en OpenGL con QVector3D
Pregunta
tengo una lista de QVector3D
, que es una lista de puntos, quiero dibujar una lista de puntos 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 qué otro método puedo utilizar para solucionar esto?
Solución
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), vértices, GL_STATIC_DRAW);
Esto es correcto, pero sugeriría usar contenedores más inteligentes como QVector fuera de constData de la siguiente manera:
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), myVector.constData(), GL_STATIC_DRAW);
Aquí hay otro ejemplo oficial de cómo usar glBufferData
en el contexto de QVector3D
:
Archivo de ejemplo geometríaengine.cpp
Aquí puede encontrar otro ejemplo de terceros siguiendo el ejemplo oficial:
Entonces, podrías escribir:
glDrawArrays(GL_POINTS, 0, data.size());
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow