У меня есть задание OpenGL Graphics, и по какой-то причине я пытаюсь создать плоский квадрат на плоскости X, Z (Y - просто 1,0 для каждой вершины). Я попытался уменьшить проблему, просто пытаясь создать 2 плоские вершины вместо четырех, и по какой-то причине две вершины всегда кажутся уклончивыми в отрицательном направлении y.
glMaterialfv(GL_FRONT, GL_DIFFUSE, drone_mat_diffuseBUILDING);
glEnableClientState(GL_VERTEX_ARRAY);
float buildingsize = 8 * floors + 4;
GLfloat quadV[300];
quadV[0] = -6.5;
printf("%.5f", quadV[0]);
quadV[1] = 1.0;
printf("%.5f", quadV[1]);
quadV[2] = 8.5;
printf("%.5f", quadV[2]);
quadV[3] = -6.5;
printf("%.5f", quadV[3]);
quadV[4] = 1.0;
printf("%.5f", quadV[4]);
quadV[5] = -7.5;
printf("%.5f", quadV[5]);
glVertexPointer(3, GL_FLOAT, 0, quadV);
glDrawArrays(GL_POLYGON, 0, buildingsize);
glDisableClientState(GL_VERTEX_ARRAY);here
Вот как это выглядит при запуске:
Красная линия должна быть плоской линией на плоскости X Z.
Для большей простоты я пытаюсь преобразовать этот код:
glBegin(GL_POLYGON);
glVertex3f(firstCubeXPOS - firstCubeXSCALE/2.0, 1.0, firstCubeZPOS + firstCubeZSCALE/2.0);
glVertex3f(firstCubeXPOS - firstCubeXSCALE / 2.0, 1.0, firstCubeZPOS - firstCubeZSCALE / 2.0);
glVertex3f(firstCubeXPOS + firstCubeXSCALE / 2.0, 1.0, firstCubeZPOS - firstCubeZSCALE / 2.0);
glVertex3f(firstCubeXPOS + firstCubeXSCALE / 2.0, 1.0, firstCubeZPOS + firstCubeZSCALE / 2.0);
glEnd();
glFlush();
В массив вершин, чтобы я мог добавлять новые элементы / изменять элементы для каждой вершины. Потому что на данный момент код прямо над мной показывает то, что мне нужно увидеть (2-мерное построение квадрата на плоскости XZ).