OpenGL Android: ось X загадочно перевернута - PullRequest
1 голос
/ 21 марта 2012

Я отображаю четырехугольник на псевдо-2D холсте через OpenGL.Для этого я использую ортографическую проекцию через:

gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
gl.glOrthof(-ratio, ratio, -1, 1, 0, 10000);

Координаты отображаемого четырехугольника:

float[] quadCoords = {-10.0f, -10.0f, 5.0f, 
                       10.0f, -10.0f, 5.0f, 
                       10.0f,  10.0f, 5.0f, 
                      -10.0f,  10.0f, 5.0f};

Этот четырехугольник отображается как 2 треугольника (я избавляю вас от кода),Я также применяю текстуру, которая работает хорошо.«Камера» определяется перед рендерингом четырехугольника следующим образом:

gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
GLU.gluLookAt(gl, -10.0f, -10.0f, -5, -10.0f, -10.0f, 0f, 0f, 1.0f, 0.0f);

Как вы можете видеть, окно просмотра центрируется в [-10, -10, 0], которое должно быть центрировано в левом нижнем углу.из четырехОднако при рендеринге сцены это выглядит следующим образом:

OpenGL Screenshot

Похоже, что это правый нижний угол, но это не так.Я проверил это, и оказалось, что ось X перевернута.Я делаю что-то не так с gluLookAt?Или я что-то пропустил?

1 Ответ

3 голосов
/ 21 марта 2012

Хорошо, это немного глупо, но я нашел ответ через несколько минут после написания этого вопроса (через несколько часов после того, как он произошел):

"Камера" смотрит на заднюю сторону квадроцикла.Присвоение «0» для всех z-координат квадра и «+1» для z-координаты точки зрения в gluLookAt это исправило.

...