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


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


{

 

Переходим к коду построения текстур. Если построить текстуры не удалось по какой-либо причине, то возвращаем значение FALSE. Это позволит нашей программе узнать, что произошла ошибка, и программа изящно завершится.

 

       if (!LoadGLTextures()) // Переходим к загрузке текстуры

       {

              return FALSE;   // Если текстура не загрузилась - возвращаем FALSE

       }

 

Если ошибок не было, переходим к коду построения шрифта. Т.к. ничего не может случиться при построении шрифта, поэтому проверку ошибок не включаем.

 

       BuildFont();  // Создаем шрифт

 

Теперь делаем обычную настройку GL. Мы установим черный цвет фона для очистки, зададим значение глубины в 1.0. Выбираем режим проверки глубины вместе со смешиванием. Мы разрешаем сглаженное заполнение и, наконец, разрешаем 2-мерное текстурирование.

 

       glClearColor(0.0f, 0.0f, 0.0f, 0.0f); // Очищаем фон черным цветом

       glClearDepth(1.0);                    // Очистка и сброс буфера глубины

       glDepthFunc(GL_LEQUAL);               // Тип теста глубины

       glBlendFunc(GL_SRC_ALPHA,GL_ONE);     // Выбор типа смешивания

 

       glShadeModel(GL_SMOOTH);              // Сглаженное заполнение

       glEnable(GL_TEXTURE_2D);              // 2-мерное текстурирование

 

       return TRUE;                          // Инициализация прошла успешно

}

 

Следующая секция кода создает сцену. Мы рисуем сначала 3-х мерный объект и потом текст, поэтому текст будет поверх 3-х мерного объекта, вместо того, чтобы объект закрывал текст сверху. Причина, по которой я добавил 3-х мерный объект, заключается в том, чтобы показать, что перспективная и ортографическая проекции могут быть использованы одновременно.

 

int DrawGLScene(GLvoid)                             // Здесь мы рисуем все объекты

{

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Очистка экрана и буфера глубины

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




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



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