Текстурирование. Фильтрация текстур.



Текстурирование:

Для придания большей реалистичности при прорисовке примитивов на экране, прибегают к помощи текстур. Текстура представляет собой двумерное растровое изображение, которое накладывается на поверхность объекта. Текстуры, как правило, хранятся в графических файлах, формата.jpg,.gif. Процесс наложения текстуры называется текстурирование. Текстуры накладываются на объект с помощью, так называемых текстурных координат, которые представляют собой пару чисел (u, v) изменяющихся в пределах от (0,1) и определяются в своей системе координат. Ось u направлена горизонтально вправо, ось v – вертикально вниз. Пара величин u, v однозначно указывает на элемент текстуры, называемый текселом.

Для каждой вершины треугольника, определяются текстурные координаты, тем самым происходит связывание с некоторой треугольной областью, на текстуре. Затем происходит загрузка текстуры из графического файла, например direct 3D – это действие осуществляется с помощью функции D3DхCreateTextureFromFile с тремя параметрами. Первый параметр определяет указатель на устройство вывода, второй параметр содержит строку, содержащий путь к файлу структур, третий определяет переменную, в которых будет хранится указатель на текстуру. Последний шаг при работе с текстурами, заключается в активации нужной текстуры, перед выводом примитивов.

Фильтрация текстур:

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

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

Анизотропная фильтрация. Форма текстурированных объектов как при билинейной и трилинейной фильтрации может искажаться, так как обе эти фильтрации являются изотропными, т.е. изображение фильтруется в определенной форме – форме квадрата. Большинство формируемых объектов образуют неопределенную форму. Анизотропная операция оперирует не менее чем 8-ю текселами, во все стороны мип-уровней. В результате, убираются шумы и искажение объектов, и изображение получается более качественным. При использовании анизотропной фильтрации устранение неровности текстур получается более качественным, чем при трилинейной, за счет гораздо большего количества блоков для сравнения.

 


Дата добавления: 2015-12-17; просмотров: 22; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!