Я только начал использовать openGL, которому я учу себя из книги. В моей книге мне говорят строить квадрицепсы, используя треугольные полосы, потому что это более эффективно. В книге эти вершины используются для создания четырехугольника.
vertices.push_back(-0.5f);
vertices.push_back(0.0f);
vertices.push_back(0.0f);
vertices.push_back(0.5f);
vertices.push_back(0.0f);
vertices.push_back(0.0f);
vertices.push_back(-0.5f);
vertices.push_back(0.0f);
vertices.push_back(-1.0f);
vertices.push_back(0.5f);
vertices.push_back(0.0f);
vertices.push_back(-1.0f);
Я не понимаю, почему ось z непостоянна, кажется, что ось z должна оставаться постоянной, а ось y должна изменяться, чтобы квадрат отображался в 2d. Я не понимаю, почему используется ось Z.
Вот остальная часть кода
Чтобы загрузить вершины в буфер
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat) * vertices.size(), &vertices[0], GL_STATIC_DRAW);
Отобразить квадрат
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
gluLookAt(0.0, 5.0, 0.1, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, vertexBuffer);
glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_TRIANGLE_STRIP, 0, 4);
glDisableClientState(GL_VERTEX_ARRAY);
Несмотря на то, что я этого не понимаю, квадрат по-прежнему отображается правильно, поэтому он должен работать.