Я использую векторов для хранения вершин и нормальные данныеglDrawArrays не рисует
vector<float> vertex;
vector<float> normal;
Например:
normal.push_back(-1);
normal.push_back(0);
normal.push_back(0);
vertex.push_back(BARRIER_RADIUS);
vertex.push_back(POLE_HEIGHT);
vertex.push_back(-POLE_RADIUS);
for (int i = POLE_POINTS, i >= 0; i--)
{
//add more vertex
}
glEnableClientState(GL_VERTEX_ARRAY);
glEnableClientState(GL_NORMAL_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, &vertex[0]);
glNormalPointer(GL_FLOAT, 0, &normal[0]);
glDrawArrays(GL_TRIANGLE_FAN, 0, vertex.size());
glDisableClientState(GL_NORMAL_ARRAY);
glDisableClientState(GL_VERTEX_ARRAY);
//Add some more + Draw some thing else the same way
То, что я получил от этого ничего. он ничего не рисует на экране.
предыдущая версия, которая работает, состоит в следующем:
glNormal3f(-1, 0, 0);
glBegin(GL_TRIANGLE_FAN);
glVertex3f(BARRIER_RADIUS, POLE_HEIGHT, -POLE_RADIUS);
for()
{
//add more vertex
glVertex3f(........);
}
glEnd();
//draw more the same way
Пойнт меня туда, где я не так.
Есть много вещей в трубопроводе, которые могут пойти не так. Данные, вызовы рендеринга, шейдеры и т. Д. Вы уверены, что проблема в коде, который вы опубликовали? –
Это единственная часть, о которой я могу думать. –
Есть определенно больше деталей. Какой оконный менеджер вы используете? Как вы начинаете свои данные? Когда вы называете ваши функции рендеринга? Как вы читаете и строите свои шейдеры? Как выглядят шейдеры? Вы вообще используете шейдеры? –