glDrawElements рисует только половину четверки

Вот моя функция:

void Object::draw2()
{

if(!mIsInitialised) { return; }

//Tell OpenGL about our vertex and normal data
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &Vertices.front());

glEnableClientState(GL_NORMAL_ARRAY);
glNormalPointer(GL_FLOAT, 0, &Temp2.front());

//draw the .txt-file
glDrawElements(GL_TRIANGLES, Indices.size(), GL_UNSIGNED_INT, &Indices.front());

//restore the state GL back
glDisableClientState(GL_VERTEX_ARRAY);
glDisableClientState(GL_NORMAL_ARRAY);
}

Мой индекс-вектор содержит: 1 2 3 1 3 4

Мой вершин-вектор содержит: -1 -1 0
1 -1 0
1 1 0
-1 1 0

Когда я запускаю программу, она рисует только половину квадрата — т.е. треугольник.

Результат -> http://i.stack.imgur.com/jZALG.png

3

Решение

Ваш индексный вектор должен содержать:

0 1 2 0 2 3

В противном случае вы никогда не дотронетесь до номера вершины 0 и в конечном итоге с половиной четырехугольника.

7

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

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

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