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

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

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

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

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

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

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

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

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

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

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

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

Билинейная фильтрация текстур

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

Анизотропная фильтрация текстур

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

Фильтрация текстур с использованием MIP-карт

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

 

Текстуры