2013-02-24 2 views
4

Я еще не видел, чтобы кто-нибудь отвечал на этот вопрос. Все, что я вижу, это люди, которые говорят им, что что-то перевернуто, а затем кто-то еще говорит им перевернуть свой код. Но что мне интересно, почему OpenGL переворачивает Y-координаты? Это не имеет никакого смысла.Почему OpenGL рисует вещи вверх дном?

ответ

4

OpenGL принимает координаты Y, идущие снизу вверх. Если ваш код предполагает противоположное, он будет показывать что-то перевернутое.

Для получения дополнительной информации Google для OPENGL системе координат

+0

Здесь: http://bit.ly/LtcqeW –

1

Это все зависит от того, как вы настроите вашу сцену. Есть много вещей, которые могут вызвать этот эффект.

Например, положение камеры влияет на то, как вы видите финальную сцену.

gluLookAt(camera[0], camera[1], camera[2], /* look from camera XYZ */ 
        0,   0,   0, /* look at the origin */ 
        0,   1,   0); /* positive Y up vector */ 

При работе с текстурами, указав неправильные координаты текстуры может перевернуть рисунок.

Но самое общая проблема могут быть люди забывают, что OpenGL определяет координат (0, 0), чтобы быть в левом нижнем углу дисплея (с Y идти вверх).

1

OpenGL работает с декартовыми координатами. В декартовой системе координат 0,0 находится в центре, причем положительные коорды распространяются вверх и вправо. Любые координаты могут быть отображены или преобразованы в соответствии с пожеланиями программиста, но это значение по умолчанию. Когда вы даете координаты текстуры, OpenGL ожидает, что это будут координаты Catresian, а не координаты сверху вниз. Эти координаты могут быть преобразованы программой, но самое быстрое исправление - просто перевернуть текстуру.

enter image description here

Смежные вопросы