Всем привет! Сегодня разберем, какая фильтрация лучше — билинейная или трилинейная, в чем отличия между ними, какие преимущества и недостатки у каждой, насколько сильно проявляется их влияние в играх и почему.
Алгоритмы отображения 3D объектов
Все объекты трехмерной графики, в том числе в видеоиграх, состоят из каркаса, то есть трехмерной объемной модели, на который натянута текстура, двухмерная картинка с нарисованными характерными деталями.
Например, у дома это будет рисунок кирпичной кладки с несколькими окнами, а у танка ֫ — рисунок брони с заклепками, побитой ржавчиной.
Элементарная минимальная частица текстуры называется текселем. Его размер зависит от разрешения и качества прорисовки. Из таких разноцветных текселей составлены все предметы в виртуальных мирах.
Однако трехмерная картинка отображается на плоском двухмерном мониторе, где базовой единицей разрешения является пиксель. Их количество ограничено разрешением матрицы. При этом текселей, которые должны отобразить доступные пиксели, может быть намного больше.
Фильтрация — механизм преобразования текселей в пиксели в удобном для пользователя виде. Влияние этой технологии огромно: при отключенной технологии адекватного изображения на экране вы не увидите и такое качество вам вряд ли понравится. Далее рассмотрим, в чем разница между билинейной и трилинейной фильтрацией.
Билинейная фильтрация
Из исходной текстуры извлекается несколько пикселей, их значения усредняются и результат выводится на пиксель монитора. Технология применима только к двухмерным текстурам.
Обычно берется 4 текселя, которые не дают необходимой гибкости настроек, а переходы на следующий уровень масштабирования не маскируются. На значительном удалении или под большим углом обзора изображение получается сильно размытым, а на текстурах со сложным рисунком отчетливо проявляются линии стыков.
Трилинейная фильтрация
Более продвинутый вариант. Цвет пикселя высчитывается как среднее арифметическое 8 текселей, попадающих в зону обзора, а точнее по 4 на 2 соседних текстуры. Для предотвращения малой резкости изображения используют своеобразный «костыль» — берут картинки с более детальным разрешением, чем они нужны без этой технологии.
Требования к объему оперативной памяти возрастают, а качество отображения удаленных объектов не превосходит возможностей билинейной фильтрации. На ближнем же расстоянии границы объектов не столь явно различимы, а текстуры имеют более плавные переходы.
Также для вас может быть полезно почитать «Что такое анизотропная фильтрация». Буду признателен всем, кто расшарит этот пост в социальных сетях. До завтра!
С уважением, автор блога Андрей Андреев.