OpenGL растянутые формы - соотношение сторон

Я получил свой openGL вид в размере (допустим...) 800(ширина)x600(высота). Затем я получил 2D объект с координатами:

0.0 , 0.0
0.1 , 0.0
0.1 , 0.1
0.0 , 0.1

это, как вы понимаете, должен быть квадрат (по аналогии). Но на моем openGL представлении он растягивается. Теперь я понимаю, почему это происходит. В основном потому, что я работаю с матрицей по умолчанию -1,1. И поскольку мое разрешение 800x600 не имеет соотношения сторон 1, моя форма растягивается.

Теперь меня больше интересует, как это исправить. Я читал о таких функциях, как glFrustum, glOrtho, glViewPort, которые работают с матрицей проекции и могут решать подобные проблемы. Дело в том, что я не уверен в их использовании. В основном я хочу, чтобы при создании квадрата сохранялись вышеуказанные координы, и он действительно отображался как квадрат в моем представлении.

Какой правильный способ решения этой проблемы?

10
задан genpfault 30 January 2012 в 22:58
поделиться