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

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

Программисту разрешено указывать текстурные координаты вершин, большие чем 1.0. В этом случае картинка текстуры заполняет часть плоскости с текстурными координатами от 0 до 1.0, а при больЩих значениях выполняется сплошная заливка грани или циклическое повторение картинки в прямом или зеркальном отображении.

Буфер с кодами цвета и картинкой текстуры удобно хранить в двух экземплярах, когда один экземпляр имеется в основном ОЗУ, а другой - в видеопамяти. Графический ускоритель накладывает на грани только те текстуры, которые находятся в видеопамяти. Но объем видеопамяти ограничен, и если ее не хватает для хранения суммарного объема применяемых текстур, необходимо выполнять диспетчирование текстур, опираясь на назначенные им приоритеты. В этом случае неиспользуемые текстуры стираются и на их место записываются новые. Текстура в видеопамяти может быть стерта также другим одновременно работающим приложением. В этом случае, чтобы не загружать заново картинку из файла и не восстанавливать все настройки, удобно восстанавливать текстуру в видеопамяти из ее копии, хранящейся в ОЗУ.

$mz Инициализация


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