Вопрос просмотра Android opengl-es. Таким образом, в openGL положение камеры и вида по умолчанию равно 0,0. Как настроить вид и камеру так, чтобы они действовали в основном так же, как координаты экрана компьютера с 0,0 вверху. Я вызвал gl.glOrthof(-screenWidth/2, ScreenWidth/2, -ScreenHeight/2, ScreenHeight/2). Но я думаю, что это неправильно. Мне также нужно настроить камеру для просмотра всего поля. Я не знаю, как использовать gl.glFrustumf для выполнения этой задачи.
Координаты OpenGL для соответствия координатам экрана?
Ответы (1)
Чтобы использовать координаты вершин в качестве экранных координат, просто используйте glOrtho(0, width, height, 0, -1, 1)
в матрице проекции и сохраните идентичность матрицы представления модели (по умолчанию). Обратите внимание, что я перевернул низ и верх, так как в GL (0,0) находится внизу слева, а вы хотите, чтобы он был вверху (но имейте в виду, что это также переворачивает каждый объект и, следовательно, порядок треугольников). Вы также забыли установить ближнюю и дальнюю плоскости (все, что находится вне этого интервала, отображаться не будет). Но когда теперь вы рисуете все свои объекты с z=0 (по умолчанию при рисовании только двухмерных вершин), все должно быть в порядке.
glFrustum
— это просто альтернатива glOrtho
. Где glOrtho
строит орфографический (параллельный) вид, glFrustum
строит вид в перспективе. Так что вам не нужно glFrustum
.
glOrtho
: Обратите внимание, что я перевернул низ и верх, так как в GL (0,0) находится внизу слева, а вы хотите, чтобы он был вверху. .
- person Christian Rau; 21.11.2013