2011-12-25 5 views
2

Я пытаюсь настроить средство визуализации так, чтобы независимо от устройства, представление представляет собой простое 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(); 
    } 

ответ

2

Сформировать орто Matrix вместо:

Matrix.orthoM(projectionMatrix,0,-yourdisplayWidth/2,+yourdisplayWidth/2,-yourdisplayHeight/2,+yourdisplayHeight/2,0f,2f); 

Итак, вы можете разместить свои квадраты изображения на расстоянии 1f перед камерой. Вы также должны определить размер своих квадратиков так же сильно, как в пикселях. Таким образом вы можете визуализировать pixelperfect.

См. Также: https://github.com/Chrise55/Llama3D

1

Вы можете попробовать поэкспериментировать с использованием glOrtho или glFrustum вместо glPerspective

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