Если желательно использовать только часть полного интервала изменения координат s и t, например (0.0, 0.5), нужно соответственно использовать и часть массива ту texels. Изменив значения аргументов вызова функций glVertex2f() в приведенном выше фрагменте программы, получим изображение, представленное на рис. 9.12,6. Исполнительная система OpenGL будет при выполнении программы интерполировать значения координат sut при закраске внутренней области четырехугольника и отображать интерполированные значения на

Соответствие между координатами текстуры и элементами массива хранения образца

Рис. 9.11. Соответствие между координатами текстуры и элементами массива хранения образца

Операции с изображением на уровне растрового представления

пространство индексов в массиве ту_сехе1з. Пример с наложением текстуры на внутреннюю область четырехугольника кажется тривиальным, поскольку способ совмещения координат текстуры с вершинами четырехугольника совершенно очевиден. В случае многоугольников другой формы выбор того или иного варианта ассоциирования вершин с координатами текстуры существенно изменяет вид сформированного изображения (рис. 9.13).

Наложение текстуры в виде шахматной клетки на четырехугольник

Рис. 9.12. Наложение текстуры в виде шахматной клетки на четырехугольник: а - использование всего массива текселей; б - использование части массива текселей

Наложение текстуры на многоугольники

Рис. 9.13. Наложение текстуры на многоугольники: а и б - наложение текстуры в виде шахматной клетки на треугольники; в - наложение текстуры в виде шахматной клетки на трапецию

В общих чертах методика программирования наложения текстуры выглядит очень просто. Сначала нужно сформировать массив текселей, описывающий образец текстуры. Элементы массива должны иметь формат представления цвета, поддерживаемый графической системой. Затем следует назначить значения нормированных координат текстуры формируемым вершинам графических объектов. Но в этой методике есть некоторые нюансы, без знания которых вы не сможете эффективно пользоваться наложением текстур. Как часто бывает в подобных случаях, перед программистом всегда стоит задача выбора между более высоким качеством изображения и высокой производительностью. В частности, существует проблема выбора формата представления образца текстуры (мы рассмотрим ее в разделе 9.5).


⇐ Предыдущая| |Следующая ⇒