Как добавить объекты в буфер? OpenGL

В этой программе я хочу рисовать полигоны.

Сначала я сделал что-то вроде этого:

GLuint VertexArrayID;

Пример рисования полигона:

if (figure == RECTANGLE)
{
data[0][0] = px1;   data[0][1] = py1;
data[1][0] = px2;   data[1][1] = py1;
data[2][0] = px2;   data[2][1] = py2;
data[3][0] = px1;   data[3][1] = py2;
vertex_count = 4;
}
vbo_create(vertex_count);

А вот vbo создающая функция

void vbo_create(int vertex_count)
{
if (vertex_count > 0)
{
glGenBuffers(3, VertexArrayID);
glBindBuffer(GL_ARRAY_BUFFER, VertexArrayID[0]);
glBufferData(GL_ARRAY_BUFFER, 2 * sizeof(float), data, GL_STATIC_DRAW);
//GLfloat* data = (GLfloat*)glMapBuffer(GL_ARRAY_BUFFER, GL_READ_WRITE);

glVertexPointer(2, GL_FLOAT, 0, NULL);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawArrays(GL_TRIANGLE_FAN, 0, vertex_count);
glDisableClientState(GL_VERTEX_ARRAY);
}
}

Дело в том, что я хочу сохранить все созданные объекты в одном буфере, но понятия не имею, как это сделать. Я пытался создать массив VertexArrayID, но он не работал правильно.
Какие-либо предложения?

0

Решение

Допустим, у вас есть 10 треугольников. Затем вы просто поместите 30 вершин в этот буфер и визуализируете все это с помощью GL_TRIANGLES. Вы также можете добавить четыре вершины и использовать GL_QUADS. Хорошей идеей будет иметь довольно мало буферов вершин, если это работает для вас.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]