Настройка рендерера OpenGL ES для 2D? - PullRequest
2 голосов
/ 25 декабря 2011

Я пытаюсь настроить рендерер таким образом, чтобы независимо от устройства вид представлял собой простое 2D-поле с верхней частью экрана на 1.0f и нижней на -1.0f.Я не могу понять, что это правильно, я использовал метод ниже в методе onSurfaceChanged () и играл с параметрами в gluPerspective для достижения желаемого эффекта, но, кажется, невозможно сделать совершенным.Конечно, есть альтернативный способ сделать это, чтобы добиться того, что я после.Я также играл со значениями Z нарисованных ячеек, чтобы попытаться привести их в соответствие.

Снова я пытаюсь настроить его так, чтобы экран был определен в диапазоне от -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 ]

2 голосов
/ 25 декабря 2011

Создайте Орто Матрицу вместо:

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

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

Смотри также: https://github.com/Chrise55/Llama3D

1 голос
/ 25 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...