QVector3D를 사용하여 OpenGL에서 점 그리기
문제
다음 목록이 있습니다. 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,??);
아니면 이 문제를 해결하기 위해 사용할 수 있는 다른 방법은 무엇입니까?
해결책
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), 정점, GL_STATIC_DRAW);
이것은 정확하지만 다음과 같이 constData 외부에서 QVector와 같은 보다 지능적인 컨테이너를 사용하는 것이 좋습니다.
glBufferData(GL_ARRAY_BUFFER, data.size() * sizeof(QVector3D), myVector.constData(), GL_STATIC_DRAW);
사용 방법에 대한 또 다른 공식적인 예는 다음과 같습니다. glBufferData
문맥 상에 QVector3D
:
공식 예제에 이어 또 다른 타사 예제를 찾을 수 있습니다.
그런 다음 다음과 같이 작성할 수 있습니다.
glDrawArrays(GL_POINTS, 0, data.size());
제휴하지 않습니다 StackOverflow