Поделиться через


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

Фильтрация текстур создает цвет для каждого пикселя в 2D-отрисованном изображении примитива при отображении примитива путем сопоставления трехмерного примитива на 2D-экране.

Когда Direct3D отрисовывает примитив, он сопоставляет трехмерный примитив на 2D-экране. Если примитив имеет текстуру, Direct3D должен использовать такую текстуру для создания цвета для каждого пикселя в 2D-изображении отрисованного примитива. Для каждого пикселя в изображении на экране примитива он должен получить значение цвета из текстуры. Этот процесс называется фильтрацией текстур.

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

Direct3D упрощает сложный процесс фильтрации текстур. Он предоставляет три типа фильтрации текстур : линейную фильтрацию, анизотропную фильтрацию и фильтрацию MIP-карты. Если вы не выберете фильтрацию текстур, Direct3D использует метод, называемый выборкой ближайшей точки.

Каждый тип фильтрации текстур имеет преимущества и недостатки. Например, линейная фильтрация текстур может создавать рывчатые края или фрагментный внешний вид в окончательном изображении. Однако это вычислительный метод фильтрации текстур с низкой нагрузкой. Фильтрация с помощью MIP-карт обычно дает наилучшие результаты, особенно при сочетании с анисотропной фильтрацией. Однако для этого требуется большая память о методах, поддерживаемых Direct3D.

Типы фильтрации текстур

Direct3D поддерживает следующие подходы к фильтрации текстур.

В этом разделе

Раздел Описание

Выборка ближайшей точки

Приложениям не требуется использовать фильтрацию текстур. Direct3D можно задать таким образом, чтобы он вычислял адрес текселя, который часто не вычисляет целые числа и копирует цвет текселя с ближайшим целым числом. Этот процесс называется выборкой ближайшей точки.

Фильтрация билинейной текстуры

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

Фильтрация анисотропной текстуры

Анисотропия является искажением , видимым в текселях трехмерного объекта, поверхность которого ориентирована на угол относительно плоскости экрана. Когда пиксель из анисотропного примитива сопоставляется с текселями, его форма искажается.

Фильтрация текстур с помощью MIP-карт

MIP-карта — это последовательность текстур, каждая из которых является постепенно более низким разрешением одного изображения. Высота и ширина каждого изображения или уровня в mipmap — это мощность двух меньше, чем предыдущий уровень.

 

Текстуры