Я схожу с ума. Все, что я хочу сделать, это рисовать простой линейный цикл. Но все, что я получаю, это диагональная линия от начала до (-0,5, 0,0, -0,5). Что я делаю не так?Попытка нарисовать простую линейную петлю
@interface Frustum : NSObject {
GLuint _vertexArray;
GLuint _vertexBuffer;
GLfloat left_side[4][3];
}
- (id) init;
- (GLuint) getVertexArray;
- (void) render;
@end
@implementation Frustum
- (id) init {
left_side[0][0] = -0.5f; left_side[0][1] = 0.0f; left_side[0][2] = -0.5f;
left_side[1][0] = 0.5f; left_side[1][1] = 0.0f; left_side[1][2] = -0.5f;
left_side[2][0] = 0.5f; left_side[2][1] = 0.0f; left_side[2][2] = -0.5f;
left_side[3][0] = -0.5f; left_side[3][1] = 0.0f; left_side[3][2] = -0.5f;
glGenVertexArraysOES(1, &_vertexArray);
glBindVertexArrayOES(_vertexArray);
glGenBuffers(1, &_vertexBuffer);
glBindBuffer(GL_ARRAY_BUFFER, _vertexBuffer);
// SOMETHING IS WRONG IN HERE, BUT I DON'T KNOW WHAT!!!!!
glBufferData(GL_ARRAY_BUFFER, sizeof(GLfloat)*12, left_side, GL_STATIC_DRAW);
glEnableVertexAttribArray(GLKVertexAttribPosition);
glVertexAttribPointer(GLKVertexAttribPosition, 3, GL_FLOAT, GL_FALSE, sizeof(left_side), NULL);
glBindVertexArrayOES(0);
}
return self;
}
- (void) render {
glLineWidth(2.0f);
glDrawArrays(GL_LINE_LOOP, 0, 4);
}
Не могу поверить, что я провел много времени и не видел, что я просто рисую одну и ту же строку дважды. Спасибо что подметил это. Кстати, я не упоминал, но моя камера была повернута, чтобы смотреть вниз по оси х. Спасибо! – Alex
На самом деле зеленая галочка является синонимом «спасибо» – bobobobo
Невозможно нажать на нее в течение 10 минут. – Alex