Система координат OpenGL ES на Android? - PullRequest
0 голосов
/ 05 апреля 2011

Я новичок в разработке для Android и в настоящее время я играю с OpenGL ES 1, используя NDK.К сожалению, у меня возникла проблема с системой координат.В официальном примере следующий код используется для получения ширины и высоты поверхности Opengl.

eglQuerySurface(display, surface, EGL_WIDTH, &w);
eglQuerySurface(display, surface, EGL_HEIGHT, &h);

Теперь, когда я хочу настроить область просмотра с помощью

glViewport( 0, 0, w ,h );

, и явизуализируйте квад, тогда квад не является квадратом, это деформированный прямоугольник с центром.

Как правильно настроить окно просмотра и систему координат?

1 Ответ

2 голосов
/ 05 апреля 2011

Правильно настроен видовой экран;вам нужно настроить матрицу проекции (или эквивалент, если вы используете ES 2.0, а не 1.x).Например,

glMatrixMode(GL_PROJECTION);
glFrustumf(-(float)w/h, (float)w/h, -1, 1, 1, 500);

OpenGL не делает никаких предположений о соотношении сторон ваших пикселей или области просмотра - вам нужно организовать себя.

...