Билинейная, трилинейная и анизотропная фильтрация, а также антиалиасинг: от понимания к применению

Январь 18, 2011 by i16.ru | Filed under 2011, Архив, Про компьютеры.

Введение

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

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

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

Давайте сначала рассмотрим, как же формируются все трехмерные объекты в играх… Сначала создаются объекты без текстур, затем на них накладываются двухмерные текстуры и придают им реалистичный вид. Но при этом расстояние от камеры(наблюдателя) до объекта может быть различным, например герой 3D-Action’а может подойти поближе или отойти подальше от какого-нибудь объекта. Размеры объекта соответственно будут изменяться – увеличиваться или уменьшаться, в зависимости от действий игрока. В таком случае на объект накладывается одна и та же текстура, только с разным разрешением – если игрок подошел близко к объекту, то на него(объект, не подумайте, что игрока ;) накладывается текстура большего разрешения, а если он удалился от объекта, то соответственно, на объект будет наложена текстура с меньшим разрешением.
Этот прием получил название «MIP-текстурирование», а текстуры, используемые при MIP-текстурировании, называются MIP-уровнями. С одной стороны он имеет много плюсов, но не обошлось и без минусов.

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

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

Для лечения второго артефакта используется трилинейная фильтрация(trilinear filtering). При использовании трилинейки, как ее называют в народе, цвета пикселов двух соседних текстур усредняются, и заметная граница текстур исчезает.

Проблема четкости текстур на наклонных плоскостях, анизотропная фильтрация

Но и на этом артефакты изображения не заканчиваются. Если посмотреть на объект под острым углом, будет заметна ужасная размытость текстуры. Данную проблему позволяет решить анизотропная фильтрация(anisotropic filtering), самая ресурсоемкая из всех технологий фильтрации текстур. Рассказывать принципы работы анизотропной фильтрации я не стану, так как это очень долго и занудно для читателя, но один момент надо знать обязательно – реализуется анизотропия двумя методами – MIP-мэппинг(MIP-mapping) и RIP-мэппинг(RIP-mapping). Первый метод используют ускорители компании NVIDIA, второй применяется в видеокартах ATI, и реализуется анизотропия в этих двух технологиях совершенно по-разному.

Анизотропная фильтрация бывает делиться на уровни, и чем выше уровень анизотропной фильтрации, тем лучшего качества получаются текстуры, и тем сильнее падает производительность. Так, как NVIDIA и ATI используют разные методы анизотропии, то и обозначение уровня фильтрации у них разное. Например, у NVIDIA максимальный уровень анизотропии – 8X, у ATI 16X, но это вовсе не значит, что 16X RIP-mapping от ATI будет показывать качество выше, чем 8X MIP-mapping от NVIDIA – сравнивать цифры просто некорректно, так как реализация анизотропии абсолютно разная, и обозначение уровней соответственно тоже.

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

Антиалиасинг (Antialiasing, AA)

Вернемся к процессу рендеринга. Результирующая картинка представляет собой двухмерную матрицу(сетку) пикселов, в которую фактически втискиваются все наклонные грани объектов. Если сделать скриншот из любой игры или бенчмарка и посмотреть его под увеличением, на гранях объектов будет хорошо заметна лесенка из зазубрин. Этот неприятный артефакт получил название «алиасинг(aliasing)». Для борьбы с алиасингом применяется технология антиалиасинга, самая ресурсоемкая из всех технологий улучшения качества изображения, более ресурсоемкая, чем даже анизотропная фильтрация.

Суть антиалиасинга в создании плавного цветового перехода на границах объекта, что и создает эффект сглаженности линий.

Сегодня существуют два метода реализации антиалиасинга – суперэмплинг(Supersampling) и мультисэмплинг(Multisampling).

Суперсэмплинг стал самой первой и простой, а в то же время и самой ресурсоемкой реализацией антиалиасинга. Каждый кадр просчитывается при разрешении, в несколько раз превышающим номинальное. Затем полученное изображение сжимается до номинального разрешения, и вуаля, – готово. Такой метод антиалиасинга является крайне нерациональным из-за огромного падения производительности, и более не используется в современных видеокартах. Ему на смену пришел намного более продвинутый и интеллектуальный метод антиалиасинга — мультисэмплинг.

Суть мультисэмплинга заключается в обработке только границ объектов, что намного уменьшает объем нагрузки GPU и видеопамяти. Эта интеллектуальная технология антиалиасинга получила повсеместное распространение и используется всеми современными 3D-ускорителями.

Антиалиасинг, также как и анизотропия, бывает нескольких уровней – 2X, 4X, 6X, и чем выше уровень FSAA(Full Screen Antialiasing – полноэкранное сглаживание – другое название антиалиасинга), тем выше получается качество результирующего изображения соответственно.

Заключение

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


Tags: ,

Comments are disabled