Я новичок в OpenGL, и я играл с рисовальными треугольниками с разными z-координатами. Из того, что я понимаю, ось z указывает на экран, а ось -z указывает на экран.Неподвижное поведение по оси Z при OpenGL при рисовании квадрата
Когда я нарисовать квадрат с 3 углами при 0,0 г-координату, а последний угол, скажем, -3,0 г-координату, я получаю это:
Я не понять, как это делает эту форму ... Я думал, что это будет что-то вроде этого, так как 4-я вершина просто «далека».
Может кто-нибудь объяснить?
Edit: Это мои вершинные данные
// vertex array
float vertices[] = {
-0.5f, 0.5f, 0.0f, 1.0f, 0.0f, 0.0f, // top left, first 3 are location, last 3 are color
0.5f, 0.5f, 0.0f, 0.0f, 1.0f, 0.0f, // top right
-0.5f, -0.5f, -2.0f, 0.0f, 0.0f, 1.0f, // bottom left
0.5f, -0.5f, 0.0f, 1.0f, 1.0f, 1.0f // bottom right
};
// element buffer array
GLuint elements[] = {
0, 1, 2,
2, 1, 3
};
И я звоню жеребьевку, как:
glDrawElements(GL_TRIANGLES, 6,GL_UNSIGNED_INT,0);
Какая проекция вы используете, и на что установлены ваши отсекающие плоскости? (Хотя я не думаю, что любой из них сделает ваш квадрат похожим на L-образ) – immibis
Я не применяю никаких преобразований к вершинам. Все, что я делаю, это передать необработанные данные вершин в шейдеры, а затем использовать эту программу. – Chara