stringtranslate.com

Анизотропная фильтрация

Иллюстрация методов фильтрации текстур, показывающая текстуру с трилинейным мип-мэппингом (слева) и анизотропной фильтрацией текстур.

В 3D компьютерной графике анизотропная фильтрация (сокращенно AF ) [1] [2] — это метод повышения качества изображения текстур на поверхностях компьютерной графики, находящихся под наклонными углами обзора по отношению к камере, где проецируется текстура ( а не многоугольник или другой примитив , на котором он отображается) кажется неортогональным ( отсюда и происхождение слова: «an» для « не » , «iso» для « того же самого » и «тропик» от тропизма , относящегося к направлению; анизотропный) . фильтрация не фильтрует одинаково во всех направлениях).

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

Анизотропная фильтрация является относительно интенсивной (в первую очередь пропускной способностью памяти и, в некоторой степени, вычислительной , хотя применяются стандартные правила компромисса между пространством и временем ) и стала стандартной функцией видеокарт потребительского уровня только в конце 1990-х годов. [5] Анизотропная фильтрация теперь широко распространена в современном графическом оборудовании (и программном обеспечении видеодрайверов) и включается либо пользователями через настройки драйвера, либо графическими приложениями и видеоиграми через программные интерфейсы.

Улучшение изотропного MIP-картирования.

Пример хранения анизотропных MIP-изображений: основное изображение в левом верхнем углу сопровождается отфильтрованными, линейно преобразованными копиями уменьшенного размера.
Изотропное MIP-изображение того же изображения

С этого момента предполагается, что читатель знаком с отображением MIP .

Если бы нам пришлось исследовать более приблизительный анизотропный алгоритм, RIP-отображение, как расширение MIP-отображения, мы могли бы понять, как анизотропная фильтрация обеспечивает такое высокое качество отображения текстур. [6] Если нам нужно текстурировать горизонтальную плоскость, расположенную под косым углом к ​​камере, традиционная минификация MIP-карты даст нам недостаточное горизонтальное разрешение из-за уменьшения частоты изображения по вертикальной оси. Это связано с тем, что при отображении MIP каждый уровень MIP изотропен, поэтому текстура 256 × 256 уменьшается до изображения 128 × 128, затем изображения 64 × 64 и т. д., поэтому разрешение уменьшается вдвое по каждой оси одновременно, поэтому текстура карты MIP зонд к изображению всегда будет выбирать изображение, имеющее одинаковую частоту по каждой оси. Таким образом, при дискретизации во избежание наложения на высокочастотной оси другие оси текстуры будут аналогичным образом субдискретизированы и, следовательно, потенциально размыты.

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

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

С точки зрения непрофессионала, анизотропная фильтрация сохраняет «резкость» текстуры, которая обычно теряется из-за попыток текстуры карты MIP избежать наложения. Таким образом, можно сказать, что анизотропная фильтрация сохраняет четкую детализацию текстур при всех ориентациях просмотра, обеспечивая при этом быструю фильтрацию сглаженных текстур .

Поддерживаемая степень анизотропии

Во время рендеринга могут применяться различные степени или коэффициенты анизотропной фильтрации, и текущие реализации аппаратного рендеринга устанавливают верхнюю границу этого коэффициента. [7] Эта степень относится к максимальному коэффициенту анизотропии, поддерживаемому процессом фильтрации. Например, анизотропная фильтрация 4:1 (произносится как «4-к-1») продолжит повышать резкость более наклонных текстур за пределами диапазона, в котором резкость составляет 2:1. [8]

На практике это означает, что в ситуациях с сильно наклонным текстурированием фильтр 4:1 будет в два раза резче, чем фильтр 2:1 (он будет отображать частоты в два раза больше, чем фильтр 2:1). Однако для большей части сцены фильтр 4:1 не потребуется; только более наклонные и обычно более удаленные пиксели потребуют более четкой фильтрации. Это означает, что по мере того, как степень анизотропной фильтрации продолжает удваиваться, снижается качество видимого изображения, затрагивается все меньше и меньше отображаемых пикселей, и результаты становятся менее очевидными для зрителя.

Если сравнивать результаты рендеринга сцены с анизотропной фильтрацией 8:1 со сценой с фильтрацией 16:1, то только относительно небольшое количество сильно наклоненных пикселей, в основном на более удаленной геометрии, будут отображать заметно более резкие текстуры в сцене с более высокой степенью анизотропии. фильтрации, и информация о частоте этих нескольких пикселей, отфильтрованных с соотношением 16:1, будет только вдвое больше, чем с фильтром 8:1. Снижение производительности также уменьшается, поскольку меньшее количество пикселей требует выборки данных с большей анизотропией.

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

Выполнение

Настоящая анизотропная фильтрация анизотропно исследует текстуру на лету попиксельно на предмет любой ориентации анизотропии.

В графическом оборудовании, как правило, когда выборка текстуры анизотропна, берется несколько проб ( выборок текселей ) текстуры вокруг центральной точки, но на образец образца, отображаемый в соответствии с проецируемой формой текстуры в этом пикселе, [9] хотя более ранние программные методы использовали таблицы суммированных площадей . [10]

Каждый зонд анизотропной фильтрации сам по себе часто представляет собой отфильтрованную выборку карты MIP, что добавляет к процессу дополнительную выборку. Для шестнадцати трилинейных анизотропных выборок может потребоваться 128 выборок из сохраненной текстуры, поскольку для трилинейной фильтрации карт MIP необходимо взять четыре выборки, умноженные на два уровня MIP, а затем для анизотропной выборки (при 16 касаниях) необходимо взять шестнадцать таких проб с трилинейной фильтрацией.

Однако такой уровень сложности фильтрации требуется не всегда. Существуют общедоступные методы уменьшения объема работы, которую должно выполнять оборудование рендеринга видео.

Метод анизотропной фильтрации, наиболее часто реализуемый на графическом оборудовании, представляет собой композицию отфильтрованных значений пикселей только из одной строки образцов карты MIP. В общем, метод построения текстурного фильтра, возникающий в результате заполнения несколькими зондами выборки проецируемых пикселей в пространстве текстур, называется «сборкой посадочного места», даже если детали реализации различаются. [11] [12] [13]

Производительность и оптимизация

Требуемое количество выборок может сделать анизотропную фильтрацию чрезвычайно интенсивной по полосе пропускания . Обычно используется несколько текстур; Каждый образец текстуры может иметь размер четырех или более байтов, поэтому для каждого анизотропного пикселя может потребоваться 512 байт из памяти текстур, хотя для уменьшения этого объема обычно используется сжатие текстур .

Устройство отображения видео может легко содержать более двух миллионов пикселей, а желаемая частота кадров приложения часто превышает 60 кадров в секунду. В результате требуемая пропускная способность текстурной памяти может вырасти до больших значений. Диапазоны пропускной способности конвейера в сотни гигабайт в секунду для операций рендеринга текстур не являются чем-то необычным, когда задействованы операции анизотропной фильтрации. [14]

К счастью, несколько факторов смягчают ситуацию в пользу повышения производительности:

Смотрите также

Рекомендации

  1. ^ «Что такое анизотропная фильтрация? - Technipages» . 8 июля 2020 г.
  2. ^ Юинс, Джон П.; Уоллер, Маркус Д.; Уайт, Мартин; Листер, Пол Ф. (апрель 2000 г.). «Реализация анизотропного фильтра текстур - ScienceDirect». Компьютеры и графика . 24 (2): 253–267. дои : 10.1016/S0097-8493(99)00159-4.
  3. ^ Блинн, Джеймс Ф.; Ньюэлл, Мартин Э. (октябрь 1976 г.). «Графика и обработка изображений: текстура и отражение в компьютерных изображениях» (PDF) . Коммуникации АКМ . 19 (10): 542–547. дои : 10.1145/360349.360353. S2CID  408793 . Проверено 20 октября 2017 г.
  4. ^ Хекберт, Пол С. (ноябрь 1986 г.). «Обзор наложения текстур» (PDF) . IEEE Компьютерная графика и приложения . 6 (11): 56–67. дои : 10.1109/MCG.1986.276672. S2CID  6398235 . Проверено 20 октября 2017 г.
  5. ^ «Информационный документ Radeon» (PDF) . ATI Technologies Inc. 2000. с. 23 . Проверено 20 октября 2017 г.
  6. ^ «Глава 5: Текстурирование» (PDF) . CS559, осень 2003 г. Университет Висконсина-Мэдисона . 2003 . Проверено 20 октября 2017 г.
  7. ^ «Анизотропная фильтрация». Корпорация Нвидиа . Проверено 20 октября 2017 г.
  8. ^ abc «Сглаживание текстур». Видеокарта ATI Radeon 9700 Pro . Технический отчет . 16 сентября 2002 года . Проверено 20 октября 2017 г.
  9. ^ Олано, Марк; Мукерджи, Шриджит; Дорби, Ангус (2001). «Анизотропное текстурирование на основе вершин». Материалы семинара ACM SIGGRAPH/EUROGRAPHICS по графическому оборудованию (PDF) . стр. 95–98. CiteSeerX 10.1.1.1.6886 . дои : 10.1145/383507.383532. ISBN  978-1581134070. S2CID  14022450. Архивировано из оригинала (PDF) 14 февраля 2017 г. Проверено 20 октября 2017 г.
  10. ^ Кроу, Франклин К. (июль 1984 г.). «Таблицы суммированных площадей для наложения текстур». Материалы 11-й ежегодной конференции по компьютерной графике и интерактивным технологиям - SIGGRAPH '84 (PDF) . Том. 18. стр. 207–212. дои : 10.1145/800031.808600. ISBN 0897911385. S2CID  2210332 . Проверено 20 октября 2017 г.
  11. ^ Шиллинг, А.; Книттель, Г.; Штрассер, В. (май 1996 г.). «Texram: умная память для текстурирования». IEEE Компьютерная графика и приложения . 16 (3): 32–41. дои : 10.1109/38.491183.
  12. ^ Чен, Баоцюань; Дачилль, Фрэнк; Кауфман, Ари (март 2004 г.). «Выборочное текстурирование области следа» (PDF) . Транзакции IEEE по визуализации и компьютерной графике . 10 (2): 230–240. дои : 10.1109/TVCG.2004.1260775. PMID  15384648. S2CID  10957724 . Проверено 20 октября 2017 г.
  13. ^ Ленш, Хендрик (2007). «Компьютерная графика: теория фильтрации текстур и выборки» (PDF) . Институт информатики Макса Планка . Проверено 20 октября 2017 г.
  14. ^ Мэй, Синьсинь; Чу, Сяовэнь (8 сентября 2015 г.). «Анализ иерархии памяти графического процессора с помощью микробенчмаркинга». arXiv : 1509.02308 [cs.AR].Доступ 20 октября 2017 г.
  15. ^ Игехи, Хоман; Элдридж, Мэтью; Праудфут, Кекоа (1998). «Предварительная выборка в архитектуре кэша текстур». Семинар Eurographics/SIGGRAPH по графическому оборудованию . Стэндфордский Университет . Проверено 20 октября 2017 г.

Внешние ссылки