OpenGL Vertex Buffer Object не работает

У меня есть bunny.h, который содержит следующие данные:

bunny[] | vertex coordinates xyz

NUM_TRIANGLES | the amount of triangles for the bunny

normals[] | the normals for each triangle

triangles[] | indices for the triangles

Я хочу использовать данные для объекта буфера вершин.

вот как я пытаюсь загрузить данные

GLfloat values[NUM_TRIANGLES*3];
for(int i = 0; i < NUM_TRIANGLES*3; i++)
values[i] = bunny[i];

//  init and bind a VBO (vertex buffer object) //
glGenBuffers(1, &bunnyVBO);
glBindBuffer(GL_ARRAY_BUFFER, bunnyVBO);//  copy data into the VBO //
glBufferData(GL_ARRAY_BUFFER, sizeof(values), &values, GL_STATIC_DRAW);

// init and bind a IBO (index buffer object) //
glGenBuffers(1, &bunnyIBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bunnyIBO);

//  copy data into the IBO //
glBufferData(GL_ELEMENT_ARRAY_BUFFER, sizeof(triangles), &triangles, GL_STATIC_DRAW);
// unbind active buffers //
glBindVertexArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);

Позже в программе я хочу визуализировать буферы, используя этот код:

glBindBuffer(GL_ARRAY_BUFFER, bunnyVBO);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, bunnyIBO);
glEnableClientState(GL_VERTEX_ARRAY);
glDrawElements(GL_TRIANGLES, NUM_TRIANGLES, GL_UNSIGNED_INT, triangles);
glDisableClientState(GL_VERTEX_ARRAY);

OpenGL работает нормально, но я не вижу кролика … (данные не повреждены или что-то в этом роде, ошибка в моем коде)
Кто-нибудь может мне помочь?

0

Решение

Я не вижу ни одного звонка glVertexPointer, И если вы хотите использовать элементы из VBO, это должно быть

glDrawElements(GL_TRIANGLES, NUM_TRIANGLES, GL_UNSIGNED_INT, 0);
2

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

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

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