Я показываю квадрат в псевдо-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], который должен быть центрирован в нижнем левом углу квадроцикла. Однако при рендеринге сцены это выглядит так:
Это, по-видимому, правый нижний угол, но это не так. Я проверил его, и оказалось, что ось X перевернута. Я что-то делаю с gluLookAt? Или я что-то пропустил?
Хорошо, что немного глупо, но я нашел ответ через несколько минут после написания этого вопроса (часы после его появления):
"Камера" смотрит на заднюю часть квадроцикла. Назначение "0" для всех z-координат квада и "+1" для z-координаты окуляра в gluLookAt фиксировало его.