OpenGL Android: ось X загадочно перевернута

1

Я показываю квадрат в псевдо-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};

Этот квадрат отображается как два треугольника (я избавляю вас от кода). Я также применяю текстуру, которая работает красиво. "Камера" определена до рендеринга квадрата так:

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], который должен быть центрирован в нижнем левом углу квадроцикла. Однако при рендеринге сцены это выглядит так:

Изображение 174551

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

Теги:
opengl-es
glulookat

1 ответ

3
Лучший ответ

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

"Камера" смотрит на заднюю часть квадроцикла. Назначение "0" для всех z-координат квада и "+1" для z-координаты окуляра в gluLookAt фиксировало его.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню