Я пытаюсь реализовать простую функцию выбора, используя glReadPixels, однако, когда я нажимаю на объект, который имеет 1 цвет, я получаю разные значения обратно в зависимости от того, где я нажал на этот объект? Там нет специального освещения и т. Д.? Что происходит? Иногда возвращаются все нули. Я отключил все (текстуры и т. Д.), Но до сих пор нет радости.iPhone OpenGL ES: glReadPixels не работает
Я думал, что эти функции возвращают цвет пикселя, на который вы нажимаете?
- (void)getPixelColour:(CGPoint)point {
Byte pixelColour[4];
glReadPixels(point.x, point.y, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixelColour);
NSLog(@"%d %d %d", pixelColour[0], pixelColour[1], pixelColour[2]);
}
Обновление: добавлено это исправить:
glGetIntegerv(GL_VIEWPORT, __viewport);
point.y = (float)__viewport[3] - point.y;
Являются ли ваши координаты CGPoint in Touch? Вы отдаете OpenGL upsidedown? Помните, что OpenGL отображает снизу вверх, а прикосновения - сверху вниз. –
Хорошая точка, да cgpoint - это точка касания, поэтому мне нужно как-то инвертировать ее? – Burf2000
Ed Опубликуйте свой комментарий в качестве ответа, поскольку вы помогли решить проблему! – Burf2000