Улучшение изотропного отображения MIP
Пример хранения анизотропных изображений MIP-карты: основное изображение в верхнем левом углу сопровождается отфильтрованными,
линейно преобразованными
копиями уменьшенного размера. (щелкните, чтобы сравнить с предыдущими изотропными MIP-картами того же изображения)
С этого момента предполагается, что читатель знаком с отображением MIP .
Если бы мы исследовали более приближенный алгоритм анизотропии, отображение RIP, как расширение от отображения MIP, мы могли бы понять, как анизотропная фильтрация обеспечивает такое высокое качество отображения текстуры. Если нам нужно текстурировать горизонтальную плоскость, которая находится под косым углом к камере, традиционная минификация карты MIP даст нам недостаточное разрешение по горизонтали из-за уменьшения частоты изображения по вертикальной оси. Это связано с тем, что при отображении MIP каждый уровень MIP изотропен, поэтому текстура 256 × 256 уменьшается до изображения 128 × 128, затем до изображения 64 × 64 и т. Д., Поэтому разрешение уменьшается вдвое по каждой оси одновременно, поэтому текстура карты MIP Зонд к изображению всегда будет отбирать изображение с одинаковой частотой по каждой оси. Таким образом, при дискретизации, чтобы избежать наложения спектров на высокочастотной оси, другие оси текстуры будут аналогично субдискретизированы и, следовательно, потенциально размыты.
С помощью анизотропной фильтрации карты MIP, в дополнение к понижающей дискретизации до 128 × 128, изображения также дискретизируются до 256 × 128 и 32 × 128 и т. Д. Эти анизотропно субдискретизированные изображения можно исследовать, когда частота изображения с отображением текстуры различается для каждой оси текстуры. Следовательно, одна ось не должна размываться из-за экранной частоты другой оси, и наложения спектров все же можно избежать. В отличие от более общей анизотропной фильтрации, отображение MIP, описанное для иллюстрации, ограничено только поддержкой анизотропных зондов, выровненных по оси в пространстве текстуры , поэтому диагональная анизотропия по-прежнему представляет проблему, даже несмотря на то, что реальные случаи использования анизотропной текстуры обычно имеют такие сопоставления экранного пространства. .
Хотя реализации могут свободно изменять свои методы, отображение MIP и связанные с ним ограничения по осям означают, что это неоптимально для истинной анизотропной фильтрации и используется здесь только для иллюстративных целей. Ниже описана полностью анизотропная реализация.
С точки зрения непрофессионала, анизотропная фильтрация сохраняет «резкость» текстуры, которая обычно теряется из-за попыток текстуры карты MIP избежать наложения спектров. Таким образом, можно сказать, что анизотропная фильтрация поддерживает четкие детали текстуры при всех ориентациях просмотра, обеспечивая быструю фильтрацию текстуры со сглаживанием .
Выполнение
Истинная анизотропная фильтрация исследует текстуру анизотропно на лету на попиксельной основе для любой ориентации анизотропии.
В графическом оборудовании, как правило, при анизотропной выборке текстуры несколько проб (тексель образцы) текстуры вокруг центральной точки, но на образце шаблона, отображенном в соответствии с проецируемой формой текстуры в этом пикселе, хотя более ранние программные методы использовали таблицы суммированных площадей.
Каждый зонд с анизотропной фильтрацией часто сам по себе является отфильтрованной выборкой карты MIP, которая добавляет больше выборок к процессу. Для шестнадцати трилинейных анизотропных выборок может потребоваться 128 выборок из сохраненной текстуры, так как для фильтрации трехлинейной карты MIP необходимо четыре выборки, умноженные на два уровня MIP, а затем для анизотропной выборки (при 16-кратной выборке) необходимо взять шестнадцать из этих трилинейных фильтрованных зондов.
Однако такой уровень сложности фильтрации требуется не всегда. Существуют общедоступные методы уменьшения объема работы, которую должно выполнять оборудование для рендеринга видео.
Метод анизотропной фильтрации, наиболее часто реализуемый на графическом оборудовании, представляет собой композицию отфильтрованных значений пикселей только из одной строки образцов карты MIP. В общем, способ построения фильтра текстуры, полученного в результате того, что несколько зондов заполняют спроецированную выборку пикселей в пространство текстуры, называется «сборкой посадочного места», даже если детали реализации различаются.
Что это такое?
Каждому компьютерному игроку хочется, чтобы на экране разворачивалась красочная картина виртуального мира, чтобы, взобравшись на вершину горы, можно было обозревать живописные окрестности, чтобы, нажимая до отказа кнопку ускорения на клавиатуре, до самого горизонта можно было увидеть не только прямую трассу гоночного трека, а и полноценное окружение в виде городских пейзажей. Объекты, отображаемые на экране монитора, только в идеале стоят прямо перед пользователем в самом удобном масштабе, на самом деле подавляющее большинство трёхмерных объектов находится под углом к линии зрения. Более того, различное виртуальное расстояние текстур до точки взгляда также вносит коррективы в размеры объекта и его текстур. Расчётами отображения трёхмерного мира на двумерный экран и заняты различные 3D-технологии, призванные улучшить зрительное восприятие, в числе которых не последнее место занимает текстурная фильтрация (анизотропная или трилинейная). Фильтрация такого плана относится к числу лучших разработок в этой области.
Билинейная фильтрация
Используя вместе линейную фильтрацию и MIP-текстурирование, получаем билинейный алгоритм, который позволяет ещё лучше отображать удалённые объекты и поверхности. Однако всё те же 4 текселя не дают технологии достаточной гибкости, к тому же билинейная фильтрация не маскирует переходы на следующий уровень масштабирования, работая с каждой частью текстуры по отдельности, и их границы могут быть видны. Таким образом, на большом удалении или под большим углом текстуры сильно размываются, делая картинку неестественной, как будто для людей с близорукостью, плюс для текстур со сложными рисунками заметны линии стыка текстур разного разрешения. Но мы же за экраном монитора, не нужна нам близорукость и разные непонятные линии!
Производительность и оптимизация
Образец счетчик необходимости может сделать анизотропную фильтрацию чрезвычайно полосы пропускания -intensive. Часто встречается несколько текстур; каждый образец текстуры может иметь размер четыре байта или более, поэтому для каждого анизотропного пикселя может потребоваться 512 байтов из памяти текстур, хотя для уменьшения этого обычно используется сжатие текстур .
Устройство отображения видео может легко содержать более двух миллионов пикселей, а желаемая частота кадров приложения часто превышает 60 кадров в секунду. В результате требуемая полоса пропускания текстурной памяти может вырасти до больших значений. Диапазоны в сотни гигабайт в секунду полосы пропускания конвейера для операций визуализации текстур не являются чем-то необычным, когда задействованы операции анизотропной фильтрации.
К счастью, несколько факторов способствуют повышению производительности:
- Сами зонды совместно используют кэшированные образцы текстуры, как межпиксельные, так и внутрипиксельные.
- Даже при анизотропной фильтрации с 16 отводами не всегда нужны все 16 отводов, потому что только удаленные сильно наклонные пиксельные заливки имеют тенденцию быть сильно анизотропными.
- Сильно анизотропная пиксельная заливка имеет тенденцию покрывать небольшие области экрана (т.е. обычно менее 10%)
- Фильтры увеличения текстуры (как правило) не требуют анизотропной фильтрации.
Что такое анизотропная фильтрация?
Фильтрация анизотропная – это специализированный способ улучшения текстур на поверхностях, которые находятся под определенным углом относительно камеры. Точно так же, как трилинейная или же билинейная, анизотропная позволяет полностью устранить алиасинг на разных поверхностях, но при этом вносит минимум размытия, благодаря чему сохраняется предельная детальность изображения.
Для того чтобы понять, что представляет собой фильтрация анизотропная, нужно иметь определенные базовые знания в данной области. Конечно, сегодня каждый пользователь прекрасно понимает, что изображение на экране составляется из огромнейшего количества различных пикселей, количество которых непосредственно зависит от разрешения. Для того чтобы вывести изображение на экран, видеокартой должен быть обработан цвет каждого пикселя.
За что отвечает процессор
Каждый аспект происходящего на экране зависит от определённого компонента системы. Если упростить, процессор руководит тем, что «рисует» видеокарта, обеспечивает работу интерфейса, реализует искусственный интеллект и считает числовые показатели (например, траектории полёта пуль и урон от попадания).
В основном у пользователя нет возможности контролировать нагрузку на процессор — тут всё на совести разработчиков. В зависимости от оптимизации, игры могут использовать разное количество ядер, по-разному зависеть от частот. Эти параметры постоянны и либо не меняются совсем, либо улучшаются патчами.
Из всех настроек графики на процессор влияют только те, от которых зависит количество объектов на экране. Эти настройки есть не во всех играх, но до некоторых можно добраться через файлы игры (например, количество частиц в Fallout и The Elder Scrolls).
- Дальность прорисовки (в играх с открытым миром)
- Растительность
- Количество NPC (например, «размер отряда» в серии Total War)
- Частицы — этот параметр есть не во всех играх и может означать разные вещи например, пыль в воздухе
Настройки графики в Red Dead Redemption 2 | Ноутбук Dell G3 3500
Лучший способ «помочь» процессору — отключить фоновые задачи и запускать игру в полноэкранном режиме, а не в окне. Запущенный одновременно с игрой браузер, музыкальный плеер, мессенджеры и другие программы перетягивают на себя часть ресурсов процессора и забивают оперативную память.
Point Sampling
Point Sampling на сегодняшний день представляет собой наиболее простой вариант того, как определяется цвет пикселя. Данный алгоритм основывается на текстурном изображении, когда выбирается какой-нибудь единственный тексель, расположенный максимально близко к центру светового пятна
Несложно догадаться, что такой вариант является далеко не самым оптимальным, так как цвет пикселя должен определяться одновременно несколькими текселями, а выбирается в данном случае только один, при этом световое пятно может изменять свою форму, что алгоритм не принимает во внимание
Главным недостатком, которым отличается такая фильтрация анизотропная, является то, что при достаточно близком расположении к экрану количество пикселей будет значительно увеличиваться по сравнению с количеством текселей, вследствие чего изображение становится далеко не таким интересным. Так называемый эффект блочности многие часто наблюдают в «древних» компьютерных играх.
На пальцах
Чтобы понять, что даёт анизотропная фильтрация, нужно понимать основные принципы алгоритмов текстурирования. Все объёкты трёхмерного мира состоят из «каркаса» (трехмерной объёмной модели предмета) и поверхности (текстуры) — двумерной картинки, «натянутой» поверх каркаса. Малейшая часть текстуры — цветной тексель, это как пиксели на экране, в зависимости от «плотности» текстуры, тексели могут быть разных размеров. Из разноцветных текселей состоит полная картина любого объекта в трёхмерном мире.
На экране текселям противопоставлены пиксели, количество которых ограничено доступным разрешением. Тогда как текселей в виртуальной зоне видимости может быть практически бесконечное множество, пиксели, выводящие картинку пользователю, имеют фиксированное количество. Так вот, преобразованием видимых текселей в цветные пиксели занимается алгоритм обработки трёхмерных моделей – фильтрация (анизотропная, билинейная или трилинейная). Подробнее обо всех видах – ниже по порядку, так как они исходят одна из другой.
Начнём с простого
Можно взять любые трёхмерные игры-бестселлеры, выпущенные за последний год, и с уверенностью сказать, что все они имеют нечто общее: в них используются
текстурные карты
(или просто
текстуры
). Это настолько распространённый термин, что думая о текстурах, большинство людей представляет одинаковую картинку: простой плоский квадрат или прямоугольник, содержащий изображение поверхности (травы, камня, металла, ткани, лица и т.д.).
Но при многослойном использовании и комбинировании с помощью сложных вычислений такие простые изображения в 3D-сцене могут создавать поразительно реалистичные изображения. Чтобы понять, как такое возможно, давайте полностью их отключим и посмотрим, как будут выглядеть объекты 3D-мира без текстур.
Как мы видели из предыдущих статей, 3D-мир составлен из вершин — простых фигур, которые перемещаются, а затем раскрашиваются. Затем они используются для создания примитивов, которые в свою очередь сжимаются в двухмерную сетку пикселей. Так как мы не будем использовать текстуры, нам нужно раскрасить эти пиксели.
Один из способов, который можно применить, называется
плоским затенением
: берётся цвет первой вершины примитива, а затем этот цвет применяется ко всем пикселям, покрываемым фигурой в растре. Это выглядит примерно так:
Очевидно, что чайник выглядит нереалистично, и не в последнюю очередь из-за неправильных цветов поверхности. Цвета прыгают с одного уровня на другой, плавные переходы отсутствуют. Одно из решений проблемы может заключаться в использовании
затенения по Гуро
В этом процессе берутся цвета вершин, после чего вычисляется изменение цвета по поверхности треугольника. Для этого используется
линейная интерполяция
. Звучит сложно, но самом деле это значит, что если, например, одна сторона примитива имеет цвет в 0.2 красного, а другая в 0.8 красного, то середина фигуры будет иметь цвет посередине между 0.2 и 0.8 (т.е. 0.5).
Этот процесс выполняется достаточно просто, и это его основное преимущество, потому что простота означает скорость. Во многих старых 3D-играх использовалась эта техника, потому что выполняющее вычисления оборудование было ограничено в своих возможностях.
Баррет и Клауд во всём величии затенения по Гуро (Final Fantasy VII, 1997 год)
Но даже такое решение имеет проблемы — если свет падает прямо в середину треугольника, то его углы (и вершины) могут не передавать это свойство. Это означает, что создаваемый светом отблеск может быть совершенно потерян.
Хотя плоское затенение и затенение по Гуро заняли достойное место в инструментарии рендеринга, показанные выше примеры — явные кандидаты на улучшение при помощи текстур. А чтобы хорошо понять, что происходит, когда текстура накладывается на поверхность, мы вернёмся назад во времени… аж в 1996 год.
Зачем она нужна?
Многие считают, что анизотропная фильтрация используется исключительно для того, чтобы обеспечить более качественное изображение, однако на самом деле это просто конечный результат, который обеспечивается далеко не только за счет самой фильтрации.
При формировании образа определенной текстуры программистами задается два уровня фильтрации текстур, которые представляют собой фильтры минимальной и предельной дистанции, определяющие то, какая конкретно функция фильтрации будет использоваться в процессе формирования образа текстуры в том случае, если камера будет отдаляться или же приближаться к нему.
К примеру, можно рассмотреть, когда анизотропная или трилинейная фильтрация используется при сближении, то есть когда каждый тексель начинает иметь большие габариты, и уже покрывает одновременно несколько пикселей. Для того чтобы убрать в данной ситуации ступенчатость, и будет использована фильтрация. При этом нужно отметить, что в такой ситуации данное решение является далеко не оптимальным, так как фильтрация (анизотропная или трилинейная) немного смазывает изображение. Для того чтобы придать более реалистичный вид картинке, потребуется увеличение разрешения самой текстуры.
Поддерживаемая степень анизотропии [ править ]
Во время рендеринга могут применяться различные степени или соотношения анизотропной фильтрации, и текущие реализации аппаратного рендеринга устанавливают верхнюю границу этого соотношения. Эта степень относится к максимальному коэффициенту анизотропии, поддерживаемому процессом фильтрации. Например, анизотропная фильтрация 4: 1 (произносится как «4-к-1») продолжит повышать резкость более наклонных текстур за пределами диапазона, увеличенного до 2: 1.
На практике это означает, что в ситуациях с сильно наклонным текстурированием фильтр 4: 1 будет в два раза резче, чем фильтр 2: 1 (он будет отображать частоты в два раза выше, чем у фильтра 2: 1). Однако для большей части сцены фильтр 4: 1 не требуется; только более наклонные и обычно более удаленные пиксели потребуют более резкой фильтрации. Это означает, что по мере того, как степень анизотропной фильтрации продолжает удваиваться, уменьшается отдача с точки зрения видимого качества с уменьшением количества обработанных пикселей, и результаты становятся менее очевидными для зрителя.
Когда сравниваются результаты рендеринга сцены с анизотропной фильтрацией 8: 1 и сцены с фильтром 16: 1, только относительно небольшое количество сильно наклонных пикселей, в основном на более удаленной геометрии, будет отображать заметно более четкие текстуры в сцене с более высокой степенью анизотропии. фильтрации, и частотная информация для этих немногих отфильтрованных пикселей 16: 1 будет только вдвое больше, чем у фильтра 8: 1. Потеря производительности также уменьшается, потому что меньшее количество пикселей требует выборки данных с большей анизотропией.
В конце концов, это дополнительная сложность оборудования по сравнению с этой убывающей отдачей, которая заставляет устанавливать верхнюю границу анизотропного качества в конструкции оборудования. После этого приложения и пользователи могут свободно регулировать этот компромисс с помощью настроек драйвера и программного обеспечения до этого порога.
Производительность и оптимизация
Требуемый подсчет образцов может сделать анизотропную фильтрацию чрезвычайно пропускная способность-интенсивный. Часто встречаются несколько текстур; каждый образец текстуры может иметь размер четыре байта или более, поэтому для каждого анизотропного пикселя может потребоваться 512 байтов из текстурной памяти, хотя сжатие текстуры обычно используется, чтобы уменьшить это.
Устройство отображения видео может легко содержать более двух миллионов пикселей, а желаемая частота кадров приложения часто превышает 60 кадров в секунду. В результате требуемая полоса пропускания текстурной памяти может вырасти до больших значений. Диапазон в сотни гигабайт в секунду полосы пропускания конвейера для операций рендеринга текстур не является необычным там, где задействованы операции анизотропной фильтрации.
К счастью, несколько факторов способствуют повышению производительности:
- Сами зонды разделяют кешированный образцы текстур, как межпиксельные, так и внутрипиксельные.
- Даже при анизотропной фильтрации с 16 отводами не всегда нужны все 16 отводов, потому что только удаленная очень наклонный пиксельные заливки имеют тенденцию быть сильно анизотропными.
- Сильно анизотропная пиксельная заливка имеет тенденцию покрывать небольшие области экрана (т.е. обычно менее 10%)
- Фильтры увеличения текстуры (как правило) не требуют анизотропной фильтрации.
Зачем она нужна?
Многие считают, что анизотропная фильтрация используется исключительно для того, чтобы обеспечить более качественное изображение, однако на самом деле это просто конечный результат, который обеспечивается далеко не только за счет самой фильтрации.
При формировании образа определенной текстуры программистами задается два уровня фильтрации текстур, которые представляют собой фильтры минимальной и предельной дистанции, определяющие то, какая конкретно функция фильтрации будет использоваться в процессе формирования образа текстуры в том случае, если камера будет отдаляться или же приближаться к нему.
К примеру, можно рассмотреть, когда анизотропная или трилинейная фильтрация используется при сближении, то есть когда каждый тексель начинает иметь большие габариты, и уже покрывает одновременно несколько пикселей. Для того чтобы убрать в данной ситуации ступенчатость, и будет использована фильтрация. При этом нужно отметить, что в такой ситуации данное решение является далеко не оптимальным, так как фильтрация (анизотропная или трилинейная) немного смазывает изображение. Для того чтобы придать более реалистичный вид картинке, потребуется увеличение разрешения самой текстуры.
Зачем она нужна?
Многие считают, что анизотропная фильтрация используется исключительно для того, чтобы обеспечить более качественное изображение, однако на самом деле это просто конечный результат, который обеспечивается далеко не только за счет самой фильтрации.
При формировании образа определенной текстуры программистами задается два уровня фильтрации текстур, которые представляют собой фильтры минимальной и предельной дистанции, определяющие то, какая конкретно функция фильтрации будет использоваться в процессе формирования образа текстуры в том случае, если камера будет отдаляться или же приближаться к нему.
К примеру, можно рассмотреть, когда анизотропная или трилинейная фильтрация используется при сближении, то есть когда каждый тексель начинает иметь большие габариты, и уже покрывает одновременно несколько пикселей. Для того чтобы убрать в данной ситуации ступенчатость, и будет использована фильтрация. При этом нужно отметить, что в такой ситуации данное решение является далеко не оптимальным, так как фильтрация (анизотропная или трилинейная) немного смазывает изображение. Для того чтобы придать более реалистичный вид картинке, потребуется увеличение разрешения самой текстуры.
Производительность и оптимизация [ править ]
Образец счетчик необходимости может сделать анизотропную фильтрацию чрезвычайно полосы пропускания -intensive. Часто встречаются несколько текстур; каждый образец текстуры может иметь размер четыре байта или более, поэтому для каждого анизотропного пикселя может потребоваться 512 байтов из памяти текстур, хотя обычно для уменьшения этого используется сжатие текстур .
Устройство отображения видео может легко содержать более двух миллионов пикселей, а желаемая частота кадров приложения часто превышает 60 кадров в секунду. В результате требуемая полоса пропускания текстурной памяти может вырасти до больших значений. Диапазоны в сотни гигабайт в секунду полосы пропускания конвейера для операций визуализации текстур не являются чем-то необычным, когда задействованы операции анизотропной фильтрации.
К счастью, несколько факторов способствуют повышению производительности:
- Сами зонды совместно используют кэшированные образцы текстуры, как межпиксельные, так и внутрипиксельные.
- Даже при анизотропной фильтрации с 16 отводами не всегда нужны все 16 отводов, потому что только удаленные сильно наклонные пиксельные заливки имеют тенденцию быть сильно анизотропными.
- Сильно анизотропная заливка пикселей имеет тенденцию покрывать небольшие области экрана (то есть обычно менее 10%)
- Фильтры увеличения текстуры (как правило) не требуют анизотропной фильтрации.
Что это такое?
Каждому компьютерному игроку хочется, чтобы на экране разворачивалась красочная картина виртуального мира, чтобы, взобравшись на вершину горы, можно было обозревать живописные окрестности, чтобы, нажимая до отказа кнопку ускорения на клавиатуре, до самого горизонта можно было увидеть не только прямую трассу гоночного трека, а и полноценное окружение в виде городских пейзажей. Объекты, отображаемые на экране монитора, только в идеале стоят прямо перед пользователем в самом удобном масштабе, на самом деле подавляющее большинство трёхмерных объектов находится под углом к линии зрения. Более того, различное виртуальное расстояние текстур до точки взгляда также вносит коррективы в размеры объекта и его текстур. Расчётами отображения трёхмерного мира на двумерный экран и заняты различные 3D-технологии, призванные улучшить зрительное восприятие, в числе которых не последнее место занимает текстурная фильтрация (анизотропная или трилинейная). Фильтрация такого плана относится к числу лучших разработок в этой области.
Анизотропная фильтрация
Если просчитывать проекцию луча зрения каждого экранного пикселя на текстуре согласно углу обзора, получатся неправильные фигуры — трапеции. Вкупе с использованием большего количества текселей для расчётов итогового цвета это может дать гораздо лучший результат. Что даёт анизотропная фильтрация? Учитывая, что пределов количества используемых текселей в теории нет, такой алгоритм способен отображать компьютерную графику неограниченного качества на любом удалении от точки обзора и под любым углом, в идеале сравнимую с реальным видео. Фильтрация анизотропная по своим возможностям упирается лишь в технические характеристики графических адаптеров персональных компьютеров, на которые и рассчитаны современные видеоигры.
Опции и оптимизация
Управление типом и качеством фильтрации доступно благодаря специальному ПО, регулирующему драйвера графических адаптеров. Также расширенная настройка анизотропной фильтрации доступна в игровых меню. Реализация больших разрешений и использование нескольких мониторов в играх заставили производителей задуматься об ускорении работы своих изделий, в том числе за счёт оптимизации анизотропных алгоритмов. Производители карт в последних версиях драйверов представили новую технологию под названием адаптивная анизотропная фильтрация. Что это значит? Эта функция, представленная AMD и частично реализованная в последних продуктах Nvidia, позволяет снижать коэффициент фильтрации там, где это возможно. Таким образом, фильтрация анизотропная коэффициентом х2 может обрабатывать ближние текстуры, тогда как удалённые объекты пройдут рендеринг по более сложным алгоритмам вплоть до максимального х16-коэффициента. Как обычно, оптимизация даёт существенное улучшение за счёт качества, местами адаптивная технология склонна к ошибкам, заметным на ультранастройках некоторых последних трёхмерных видеоигр.
На что влияет анизотропная фильтрация? Задействование вычислительных мощностей видеоадаптеров, по сравнению с другими технологиями фильтрации, намного выше, что сказывается на производительности. Впрочем, проблема быстродействия при использовании этого алгоритма давно решена в современных графических чипах. Вместе с остальными трёхмерными технологиями анизотропная фильтрация в играх (что это такое мы уже представляем) влияет на общее впечатление о целостности картинки, особенно при отображении удалённых объектов и текстур, расположенных под углом к экрану. Это, очевидно, главное, что требуется игрокам.
Насколько это помогает?
Вам не следует ожидать того, что в конечном итоге после включения данной функции трехмерная графика сказочно улучшится, скорее на больших углах даже будет получена определенная смазанность, однако в общем результате вы получите более реалистичную картинку. В связи с этим каждый для себя самостоятельно решает, стоит ли ему использовать эту функцию и насколько она будет для него продуктивной.
Так как очень сильного улучшения качества картинки данная функция не обеспечивает, те люди, которые стараются обеспечить максимальную производительность игры на не самых сильных компьютерах, ищут, как отключить анизотропную фильтрацию. Требовательность данной функции является немного несоизмеримой по сравнению с тем, какой результат она обеспечивает, поэтому стоит задуматься о том, чтобы отключить ее в первую очередь.
Mip-mapping
Эта технология позволяет слегка оптимизировать прорисовку компьютерной графики. Для каждой текстуры создаётся определённое количество копий с разной степенью детализации, для каждого уровня детализации выбирается своя картинка, к примеру, для длинного коридора или обширной залы ближние пол и стены требуют максимально возможной детализации, тогда как дальние углы охватывают всего лишь несколько пикселей и не требуют значительной детализации. Эта функция трёхмерной графики помогает избежать размытия дальних текстур, а также искажения и потери рисунка, и работает вместе с фильтрацией, потому что видеоадаптер при расчёте фильтрации самостоятельно не в состоянии решить, какие тексели важны для полноты картины, а какие – не очень.
Производительность и оптимизация
Требуемый подсчет образцов может сделать анизотропную фильтрацию чрезвычайно пропускная способность-интенсивный. Часто встречаются несколько текстур; каждый образец текстуры может иметь размер четыре байта или более, поэтому для каждого анизотропного пикселя может потребоваться 512 байтов из текстурной памяти, хотя сжатие текстуры обычно используется, чтобы уменьшить это.
Устройство отображения видео может легко содержать более двух миллионов пикселей, а желаемая частота кадров приложения часто превышает 60 кадров в секунду. В результате требуемая полоса пропускания текстурной памяти может вырасти до больших значений. Диапазон в сотни гигабайт в секунду полосы пропускания конвейера для операций рендеринга текстур не является необычным там, где задействованы операции анизотропной фильтрации.
К счастью, несколько факторов способствуют повышению производительности:
- Сами зонды разделяют кешированный образцы текстур, как межпиксельные, так и внутрипиксельные.
- Даже при анизотропной фильтрации с 16 отводами не всегда нужны все 16 отводов, потому что только удаленная очень наклонный пиксельные заливки имеют тенденцию быть сильно анизотропными.
- Сильно анизотропная пиксельная заливка имеет тенденцию покрывать небольшие области экрана (т.е. обычно менее 10%)
- Фильтры увеличения текстуры (как правило) не требуют анизотропной фильтрации.
Ближний цвет
Самым простым алгоритмом фильтрации является отображение цвета ближайшего к точке зрения каждого пискеля (Point Sampling). Всё просто: луч зрения определённой точки на экране падает на поверхность трёхмерного объекта, и текстура изображений возвращает цвет ближайшего к точке падения текселя, отфильтровывая все остальные. Идеально подходит для однотонных по цвету поверхностей. При небольших перепадах цвета тоже даёт вполне качественную картинку, но довольно унылую, так как где вы видели трёхмерные объекты одного цвета? Одни только шейдеры освещения, теней, отражений и другие готовы раскрасить любой объект в играх как новогоднюю ёлку, что же говорить о самих текстурах, которые порою представляют собой произведения изобразительного искусства. Даже серая бездушная бетонная стена в современных играх — это вам не просто прямоугольник невзрачного цвета, это испещрённая шероховатостями, порою трещинами и царапинами и другими художественными элементами поверхность, максимально приближающая вид виртуальной стены к реальным или выдуманным фантазией разработчиков стенам. В общем, ближний цвет мог быть использован в первых трёхмерных играх, сейчас же игроки стали гораздо требовательнее к графике
Что немаловажно: фильтрация ближнего цвета практически не требует вычислений, то есть очень экономична в плане ресурсов компьютера
Выполнение
Истинная анизотропная фильтрация исследует текстуру анизотропно на лету на попиксельной основе для любой ориентации анизотропии.
В графическом оборудовании, как правило, при анизотропной выборке текстуры несколько проб (тексель образцы) текстуры вокруг центральной точки, но на образце шаблона, отображенном в соответствии с проецируемой формой текстуры в этом пикселе, хотя более ранние программные методы использовали таблицы суммированных площадей.
Каждый зонд с анизотропной фильтрацией часто сам по себе является отфильтрованной выборкой карты MIP, которая добавляет больше выборок к процессу. Для шестнадцати трилинейных анизотропных выборок может потребоваться 128 выборок из сохраненной текстуры, так как для фильтрации трехлинейной карты MIP необходимо четыре выборки, умноженные на два уровня MIP, а затем для анизотропной выборки (при 16-кратной выборке) необходимо взять шестнадцать из этих трилинейных фильтрованных зондов.
Однако такой уровень сложности фильтрации требуется не всегда. Существуют общедоступные методы уменьшения объема работы, которую должно выполнять оборудование для рендеринга видео.
Метод анизотропной фильтрации, наиболее часто реализуемый на графическом оборудовании, представляет собой композицию отфильтрованных значений пикселей только из одной строки образцов карты MIP. В общем, способ построения фильтра текстуры, полученного в результате того, что несколько зондов заполняют спроецированную выборку пикселей в пространство текстуры, называется «сборкой посадочного места», даже если детали реализации различаются.