Использование OpenGL

3 РАЗРАБОТКА АЛГОРИТМОВ

3.3 Генерирование координат текстуры для произвольной 3D геометрии

В компьютерной графике текстурой называется детализация структуры поверхности. Разновидность детализации, называемая иногда детализацией цветом, заключается в нанесении некоторого узора на поверхность. Библиотека OpenGL, как обычно, предоставляет очень широкие возможности для задания разнообразных режимов текстурирования а также для автоматического расчёта координат текстуры.

На последней возможности необходимо остановиться особо. Дело в том, что, как правило, в достаточно простых случаях, таких как текстурирование полигонов, можно непосредственно поставить в соответствие каждой вершине координату текстуры и таким образом получить достаточно правдоподобно текстурированный полигон. Однако при использовании сложной 3D-геометрии гораздо проще задать некоторую функцию для автоматического расчёта координат текстуры.

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

Последовательность команд OpenGL приведена в приложении Б.