Я пытаюсь настроить средство визуализации так, чтобы независимо от устройства, представление представляет собой простое 2D-поле с верхней частью экрана в 1.0f и снизу на -1.0f. Я не могу понять, что это правильно, я использовал метод ниже в методе onSurfaceChanged() и играл с параметрами gluPerspective для достижения желаемого эффекта, но кажется невозможным сделать идеальный. Конечно, есть альтернативный способ сделать это, чтобы достичь того, что мне нужно. Я также играл с значениями Z в сетках, чтобы попытаться их сопоставить.Настройка рендеринга OpenGL ES для 2D?
Снова я пытаюсь настроить его так, чтобы экран был определен в диапазоне от -1.0f до 1.0, так что, если вы нарисовали квадрат со сторонами равными 2.0f, он заполнил бы весь экран независимо от аспекта соотношение. Что мне нужно изменить, чтобы сделать это? (Включает в себя стоимость я должен использовать для Z размерности сетки вершин)
(Не пугайтесь странными параметрами в gluperspective(), я ковырялся, чтобы посмотреть, что происходит.)
@Override
public void onSurfaceChanged(GL10 gl, int width, int height) {
if(height == 0) { //Prevent A Divide By Zero By
height = 1; //Making Height Equal One
}
gl.glViewport(0, 0, width, height);
gl.glMatrixMode(GL10.GL_PROJECTION);
gl.glLoadIdentity();
GLU.gluPerspective(gl, 90.0f, (float) width/(float) height,
0.0000001f, 100.0f);
gl.glMatrixMode(GL10.GL_MODELVIEW);
gl.glLoadIdentity();
}