Народный учебник по OpenGL


Урок 17 по OpenGL. Двухмерные шрифты из текстур - часть 9


 

       glDisable(GL_DEPTH_TEST);               // Отмена проверки глубины

 

Следующее несколько строк очень важны! Мы выбираем нашу матрицу проекции. Прямо после этого мы используем команду glPushMatrix(). glPushMatrix сохраняет текущую матрицу проекции. Похоже на кнопку "память" на калькуляторе.

 

       glMatrixMode(GL_PROJECTION);            // Выбираем матрицу проекции

       glPushMatrix();                         // Сохраняем матрицу проекции

 

Теперь, когда наша матрица сохранена, мы сбрасываем ее и устанавливаем плоский экран. Первое и третье число (0) задают нижний левый угол экрана. Мы можем сделать левую сторону экрана -640, если захотим, но зачем нам работать с отрицательными числами, если это не нужно. Второе и четвертое число задают верхний правый угол экрана. Неплохо установить эти значения равными текущему разрешению. Глубины нет, поэтому устанавливаем значения z в -1 и 1.

 

       glLoadIdentity();                       // Сбрасываем матрицу проекции

       glOrtho(0,640,0,480,-1,1);              // Устанавливаем плоский экран

 

Теперь выбираем нашу матрицу просмотра модели и сохраняем текущие установки, используя glPushMatrix(). Далее сбрасываем матрицу просмотра модели, так что можно работать, используя ортографическую проекцию.

 

       glMatrixMode(GL_MODELVIEW);             // Выбираем матрицу модели просмотра

       glPushMatrix();                         // Сохраняем матрицу модели просмотра

       glLoadIdentity();                       // Сбрасываем матрицу модели просмотра

 

Сохранив настройки перспективы и установив плоский экран, можно рисовать текст. Начнем с перемещения в позицию на экране, где мы хотим нарисовать текст. Используем glTranslated() вместо glTranslatef(), так как мы работаем с пикселами, поэтому точки с дробными значениями не имеют смысла. В конце концов, нельзя использовать половину пиксела :).

 

       glTranslated(x,y,0);                    // Позиция текста (0,0 - Нижняя левая)




Начало  Назад  Вперед



Книжный магазин