Как нарисовать полноэкранный в Android? - PullRequest
1 голос
/ 11 июля 2010

Я использую OpenGLES 2.0 на Android 2.2.Моя проблема здесь не с холстом или созданием полноэкранного вида андроида, который я уже понял.

Мне интересно, как бы вы задали координаты GL_QUAD или 2 GL_TRIANGLES для идеального покрытиявесь экран, для использования в качестве текстурирующей поверхности для 2D-игры, например.

В настоящее время у gluPerspective установлено значение:

float ratio = (float) width / height;
GLU.gluPerspective( gl, 45.0f, ratio, 1.0f, 100.0f );

внутри onSurfaceChanged, поэтому переменные ширины и высотыширина и высота экрана соответственно.

далее у меня координаты квадрата:

public static final float screenVerts[] = {
  -1f, -1f,
   1f, -1f,
   1f,  1f,
  -1f,  1f
};

однако отображаемый четырехугольник не пропорционален экрану, онпросто отображается в виде квадрата с координатами, по-видимому, относительно собственной геометрии opengl, а не высоты / ширины экрана.

как сделать переменную screenVerts (2D-точки для прямоугольника, на котором я рисую), чтобыбыть относительно самого экрана?Т.е. 1,0f составляет 100% высоты экрана в Y-координате одной из точек в квадрате.

И я действительно извиняюсь за то, что не сформулировал это хорошо, я не буду обижаться, если мне понадобитсяобъяснись еще раз.

1 Ответ

2 голосов
/ 12 июля 2010

Вы должны установить матрицу проекции вместо gluOrtho2D. Другое дело, что в OpenGL ES нет GL_QUAD, вам нужно пойти на два треугольника. И последнее - если вы хотите нарисовать выровненную по оси текстуру, это будет быстрее и проще с glDrawTexiOES, если устройство поддерживает расширение OES_draw_texture (которое широко поддерживается устройствами Android).

...