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


Урок 15. Текстурные шрифты - часть 3


 

        SYMBOL_CHARSET,      // Идентификатор набора символов ( Модифицировано )

 

Следующие строки не изменились.

 

        OUT_TT_PRECIS,       // Точность вывода

        CLIP_DEFAULT_PRECIS, // Точность отсечения

        ANTIALIASED_QUALITY, // Качество вывода

        FF_DONTCARE|DEFAULT_PITCH, // Семейство и шаг

 

Теперь, когда мы выбрали идентификатор набора символов, мы можем выбирать wingdings шрифт!

 

        "Wingdings");       // Имя шрифта ( Модифицировано )

 

  SelectObject(hDC, font);  // Выбрать шрифт, созданный нами

 

  wglUseFontOutlines(  hDC, // Выбрать текущий контекст устройства (DC)

        0,                  // Стартовый символ

        255,                // Количество создаваемых списков отображения

        base,               // Стартовое значение списка отображения

 

Я устанавливаю большой уровень отклонения. При этом GL не будет точно отслеживать контур шрифта. Если Вы зададите отклонение равным 0.0f, Вы заметите проблемы с текстурированием на очень изогнутых поверхностях. Если Вы допустите некоторое отклонение, большинство проблем исчезнет.

 

        0.1f,        // Отклонение от истинного контура

 

Следующие три строки кода те же самые.

 

        0.2f,        // Толщина шрифта по оси Z

        WGL_FONT_POLYGONS, // Использовать полигоны, а не линии

        gmf);        // Буфер адреса для данных списка отображения

}

 

Перед ReSizeGLScene() мы собираемся добавить следующий раздел кода для загрузки нашей текстуры. Вы знаете этот код по прошлым урокам. Мы создаем память для хранения растрового изображения. Мы загружаем растровое изображение. Мы говорим OpenGL, сгенерировать 1 текстуру, и мы сохраняем эту текстуру в texture[0].


Я создаю мип-мап текстуру, так как она смотрится лучше. Имя текстуры - lights.bmp.

 

AUX_RGBImageRec *LoadBMP(char *Filename)     // Загрузка картинки

{

 FILE *File=NULL;          // Индекс файла

 




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



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