На что влияет фильтрация текстур в играх. Настройки графики в играх: на что они влияют

Привет всем! Сегодня очень интересная статья о тонкой настройке видеокарты для высокой производительности в компьютерных играх. Согласитесь друзья, что после установки драйвера видеокарты вы один раз открыли «Панель управления Nvidia» и увидев там незнакомые слова: DSR, шейдеры, CUDA, синхроимпульс, SSAA, FXAA и так далее, решили туда больше не лазить. Но тем не менее, разобраться во всём этом можно и даже нужно, ведь от данных настроек напрямую зависит производительность . Существует ошибочное мнение, что всё в этой мудрёной панели настроено правильно по умолчанию, к сожалению это далеко не так и опыты показывают, правильная настройка вознаграждается весомым увеличением кадровой частоты. Так что приготовьтесь, будем разбираться в потоковой оптимизации, анизотропной фильтрации и тройной буферизации. В итоге вы не пожалеете и вас будет ждать награда в виде увеличения FPS в играх.

Настройка видеокарты Nvidia для игр

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

Итак, для того, чтобы попасть в меню управления видеодрайвером, кликайте правой кнопкой мыши по любому месту на рабочем столе и выбирайте в открывшемся меню «Панель управления Nvidia».

После чего, в открывшемся окне переходите во вкладку «Управление параметрами 3D».

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

Итак, первый пункт «CUDA – графические процессоры ». Здесь представлен список видеопроцессоров, один из которых вы можете выбрать, и он будет использоваться приложениями CUDA. CUDA (Compute Unified Device Architecture) – это архитектура параллельных вычислений использующаяся всеми современными графическими процессорами для увеличения вычислительной производительности.

Следующий пункт «DSR - Плавность » мы пропускаем, потому что он является частью настройки пункта "DSR - Степень”, а его в свою очередь нужно отключать и сейчас я объясню почему.

DSR (Dynamic Super Resolution) – технология позволяющая рассчитывать картинку в играх в более высоком разрешении, а затем масштабирующая полученный результат до разрешения вашего монитора. Для того чтобы вы поняли для чего эта технология вообще была придумана и почему она не нужна нам для получения максимальной производительности, я попробую привести пример. Наверняка вы часто замечали в играх, что мелкие детали, такие как трава и листва очень часто мерцают или рябят при движении. Связано это с тем, что, чем меньше разрешение, тем меньше число точек выборки для отображения мелких деталей. Технология DSR позволяет это исправить за счет увеличения числа точек (чем больше разрешение, тем больше число точек выборки). Надеюсь, так будет понятно. В условиях максимальной производительности эта технология нам не интересна так, как затрачивает довольно много системных ресурсов. Ну а с отключенной технологией DSR, настройка плавности, о которой я писал чуть выше, становится невозможна. В общем, отключаем и идем дальше.

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

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

Заранее подготовленные кадры виртуальной реальности . Функция для очков виртуальной реальности нам не интересна, так как VR еще далека до повседневного использования обычных геймеров. Оставляем по умолчанию – использовать настройку 3D приложения.

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

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

Максимальное количество заранее подготовленных кадров . Количество кадров, которое может подготовить ЦП перед их обработкой графическим процессором. Чем выше значение, тем лучше.

Многокадровое сглаживание (MFAA) . Одна из технологий сглаживания используемая для устранения "зубчатости” на краях изображений. Любая технология сглаживания (SSAA, FXAA) очень требовательна к графическому процессору (вопрос лишь в степени прожорливости). Выключаем.

Потоковая оптимизация . Благодаря включению этой функции приложение может задействовать сразу несколько ЦП. В случае, если старое приложение работает некорректно попробуй поставить режим "Авто” или же вовсе отключить эту функцию.

Режим управления электропитанием . Возможно два варианта – адаптивный режим и режим максимальной производительности. Во время адаптивного режима энергопотребление зависит напрямую от степени загрузки ГП. Этот режим в основном нужен для снижения энергопотребления. Во время режима максимальной производительности, как не трудно догадаться, поддерживается максимально возможный уровень производительности и энергопотребления независимо от степени загрузки ГП. Ставим второй.

Сглаживание – FXAA, Сглаживание – гамма-коррекция, Сглаживание – параметры, Сглаживание – прозрачность, Сглаживание - режим . Про сглаживание я уже писал чуть выше. Выключаем всё.

Тройная буферизация . Разновидность двойной буферизации; метод вывода изображения, позволяющий избежать или уменьшить количество артефактов (искажение изображения). Если говорить простыми словами, то увеличивает производительность. НО! Работает эта штука только в паре с вертикальной синхронизацией, которую, как вы помните, мы до этого отключили. Поэтому этот параметр тоже отключаем, он для нас бесполезен.

Технологии отображения 3D-объектов на экране мониторов персональных компьютеров развиваются вместе с выпуском современных графических адаптеров. Получение идеальной картинки в трёхмерных приложениях, максимально приближённой к реальному видео, является основной задачей разработчиков железа и главной целью для ценителей компьютерных игр. Помочь в этом призвана технология, реализованная в видеокартах последних поколений — анизотропная фильтрация в играх.

Что это такое?

Каждому компьютерному игроку хочется, чтобы на экране разворачивалась красочная картина виртуального мира, чтобы, взобравшись на вершину горы, можно было обозревать живописные окрестности, чтобы, нажимая до отказа кнопку ускорения на клавиатуре, до самого горизонта можно было увидеть не только прямую трассу гоночного трека, а и полноценное окружение в виде городских пейзажей. Объекты, отображаемые на экране монитора, только в идеале стоят прямо перед пользователем в самом удобном масштабе, на самом деле подавляющее большинство трёхмерных объектов находится под углом к линии зрения. Более того, различное виртуальное расстояние текстур до точки взгляда также вносит коррективы в размеры объекта и его текстур. Расчётами отображения трёхмерного мира на двумерный экран и заняты различные 3D-технологии, призванные улучшить зрительное восприятие, в числе которых не последнее место занимает текстурная фильтрация (анизотропная или трилинейная). Фильтрация такого плана относится к числу лучших разработок в этой области.

На пальцах

Чтобы понять, что даёт анизотропная фильтрация, нужно понимать основные принципы алгоритмов текстурирования. Все объёкты трёхмерного мира состоят из «каркаса» (трехмерной объёмной модели предмета) и поверхности (текстуры) — двумерной картинки, «натянутой» поверх каркаса. Малейшая часть текстуры — цветной тексель, это как пиксели на экране, в зависимости от «плотности» текстуры, тексели могут быть разных размеров. Из разноцветных текселей состоит полная картина любого объекта в трёхмерном мире.

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

Ближний цвет

Самым простым алгоритмом фильтрации является отображение цвета ближайшего к точке зрения каждого пискеля (Point Sampling). Всё просто: луч зрения определённой точки на экране падает на поверхность трёхмерного объекта, и текстура изображений возвращает цвет ближайшего к точке падения текселя, отфильтровывая все остальные. Идеально подходит для однотонных по цвету поверхностей. При небольших перепадах цвета тоже даёт вполне качественную картинку, но довольно унылую, так как где вы видели трёхмерные объекты одного цвета? Одни только шейдеры освещения, теней, отражений и другие готовы раскрасить любой объект в играх как новогоднюю ёлку, что же говорить о самих текстурах, которые порою представляют собой произведения изобразительного искусства. Даже серая бездушная бетонная стена в современных играх — это вам не просто прямоугольник невзрачного цвета, это испещрённая шероховатостями, порою трещинами и царапинами и другими художественными элементами поверхность, максимально приближающая вид виртуальной стены к реальным или выдуманным фантазией разработчиков стенам. В общем, ближний цвет мог быть использован в первых трёхмерных играх, сейчас же игроки стали гораздо требовательнее к графике. Что немаловажно: фильтрация ближнего цвета практически не требует вычислений, то есть очень экономична в плане ресурсов компьютера.

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

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

Mip-mapping

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

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

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

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

Эта технология призвана исправить прорисовку на линиях смены масштаба текстур. Тогда как билинейный алгоритм работает с каждым уровнем mip-mapping по отдельности, трилинейная фильтрация дополнительно просчитывает границы уровней детализации. При всём этом растут требования к оперативной памяти, а улучшение картинки на удалённых объектах при этом не слишком ощутимо. Само собой, границы между ближними уровнями масштабирования получают лучшую обработку, нежели при билинейной, и более гармонично смотрятся без резких переходов, что сказывается на общем впечатлении.

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

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

Подходящие видеокарты

Режим анизотропной фильтрации был возможен на пользовательских видеоадаптерах уже с 1999 года, начиная с известных карт Riva TNT и Voodoo. Топовые комплектации этих карт вполне справлялись с просчётом трилинейной графики и даже выдавали сносные показатели FPS с использованием анизотропной фильтрации х2. Последняя цифра указывает на качество фильтрации, которое, в свою очередь, зависит от количества текселей, занятых в расчёте итогового цвета пикселя на экране, в данном случае их используется целых 8. Плюс ко всему, при расчётах используется соответствующая углу зрения область захвата этих текселей, а не круг, как в линейных алгоритмах ранее. Современные видеокарты способны обрабатывать фильтрацию анизотропным алгоритмом на уровне х16, что означает использование 128 текселей для расчётов итогового цвета пикселя. Это сулит значительное улучшение отображения удалённых от точки обзора текстур, а также и серьёзную нагрузку, но графические адаптеры последних поколений снабжены достаточным количеством оперативной памяти и многоядерными процессорами, чтобы справляться с этой задачей.

Влияние на FPS

Преимущества понятны, но как дорого обойдётся игрокам анизотропная фильтрация? Влияние на производительность игровых видеоадаптеров с серьёзной начинкой, выпущенных не позднее 2010 года, очень незначительно, что подтверждают тесты независимых экспертов в ряде популярных игр. Фильтрация текстур анизотропная в качестве х16 на бюджетных картах показывает снижение общего показателя FPS на 5-10%, и то за счёт менее производительных компонентов графического адаптера. Такая лояльность современного железа к ресурсоёмким вычислениям говорит о непрестанной заботе производителей о нас, скромных геймерах. Вполне возможно, что не за горами переход на следующие уровни качества анизотропии, лишь бы игроделы не подкачали.

Конечно, в улучшении качества картинки участвует далеко не одна только анизотропная фильтрация. Включать или нет ее, решать игроку, но счастливым обладателям последних моделей от Nvidia или AMD (ATI) не стоит даже задумываться над этим вопросом - настройка анизотропной фильтрации на максимальный уровень не повлияет на производительность и добавит реалистичности пейзажам и обширным локациям. Немногим сложнее ситуация у хозяев встроенных графических решений от компании Intel, так как в этом случае многое зависит от качеств оперативной памяти компьютера, её тактовой частоты и объёма.

Опции и оптимизация

Управление типом и качеством фильтрации доступно благодаря специальному ПО, регулирующему драйвера графических адаптеров. Также расширенная настройка анизотропной фильтрации доступна в игровых меню. Реализация больших разрешений и использование нескольких мониторов в играх заставили производителей задуматься об ускорении работы своих изделий, в том числе за счёт оптимизации анизотропных алгоритмов. Производители карт в последних версиях драйверов представили новую технологию под названием адаптивная анизотропная фильтрация. Что это значит? Эта функция, представленная AMD и частично реализованная в последних продуктах Nvidia, позволяет снижать коэффициент фильтрации там, где это возможно. Таким образом, фильтрация анизотропная коэффициентом х2 может обрабатывать ближние текстуры, тогда как удалённые объекты пройдут рендеринг по более сложным алгоритмам вплоть до максимального х16-коэффициента. Как обычно, оптимизация даёт существенное улучшение за счёт качества, местами адаптивная технология склонна к ошибкам, заметным на ультранастройках некоторых последних трёхмерных видеоигр.

На что влияет анизотропная фильтрация? Задействование вычислительных мощностей видеоадаптеров, по сравнению с другими технологиями фильтрации, намного выше, что сказывается на производительности. Впрочем, проблема быстродействия при использовании этого алгоритма давно решена в современных графических чипах. Вместе с остальными трёхмерными технологиями анизотропная фильтрация в играх (что это такое мы уже представляем) влияет на общее впечатление о целостности картинки, особенно при отображении удалённых объектов и текстур, расположенных под углом к экрану. Это, очевидно, главное, что требуется игрокам.

Взгляд в будущее

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

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

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

Какими бывают карты?

Делать какой-то сверхразвитый движок в наше время - это достаточно серьезная трата средств. И при этом весомый риск. Такими приемами пользуются только высокобюджетные проекты с масштабной рекламой, которые заранее, еще до выхода, уверены в том, что игру будут активно сметать с прилавков. Также следует отметить тот факт, что в последнее время особенное внимание уделяется «политике» касательно современных игровых движков, ведь в сфере игростроя давным-давно присутствует политика, которая предпочитает учитывать интересы двух передовых компаний в области графических процессоров - это NVIDIA и ATI.

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

А графика все растет и растет…

Сделать абсолютную революцию в сфере графических 3D-движков достаточно сложно, вследствие чего такие перевороты происходят относительно редко. Однако при этом, конечно же, качество изображения периодически улучшается с течением времени и, как ни странно, происходит это как раз под выход какой-то определенной «продающейся» игры наподобие Crysis.

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

Что такое анизотропная фильтрация?

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

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

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

Принцип действия

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

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

Как это работает?

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

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

Зачем она нужна?

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

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

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

Что лучше выбрать?

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

Насколько это помогает?

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

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

Point Sampling

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

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

Чтобы понять разницу между различными алгоритмами фильтрации нужно сначала понять, что пытается сделать фильтрация. Ваш экран имеет определенное разрешение и состоит из того, что называется пикселями. Разрешение определяется количеством пикселей. Ваша 3D плата должна определить цвет каждого из этих пикселей. Основой для определения цвета пикселей служат текстурные изображения, которые накладываются на полигоны, расположенные в трехмерном пространстве. Текстурные изображения состоят из пикселей, называемых текселями. По сути, эти тексели являются пикселями 2D изображения, которые наложены на 3D поверхность. Главный вопрос таков: какой тексель (или какие тексели) определяет цвет пикселя на экране?

Представьте себе следующую проблему: предположим, что ваш экран это плита с большим количеством отверстий (давайте исходить из предположения, что пиксели имеют круглую форму). Каждое отверстие это пиксель. Если вы посмотрите через отверстие, вы увидите какой цвет оно имеет, соотносительно трехмерной сцены, раполагающейся за плитой. Теперь представьте себе световой луч, проходящий через одно из этих отверстий и попадающий на текстурированный полигон, расположенный за ним. Если полигон расположен параллельно экрану (т.е. нашей воображаемой плите с отверстиями), тогда световой луч попав на него образует круглое световой пятно (см. рис. 1). Теперь, вновь подключив воображение, заставим полигон вращаться вокруг своей оси и самые простые познания подскажут вам, что форма светового пятна изменится, и вместо круглой станет эллиптической (см. рис. 2 и 3). Вы, вероятно, желаете знать, какое отношение имеет это пятно света к проблеме определения цвета пикселя. Элементарно, все полигоны, расположенные в этом пятне света определяют цвет пикселя. Все, что мы тут обсудили и есть основные знания, которые необходимо знать для того, что бы понять различные алгоритмы фильтрации.

Посмотреть на различные формы светового пятна можно на следующих примерах:


Рис. 1

Рис. 2


Рис. 3

1. Point Sampling

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

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

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

Однако, главная цель применения фильтрации это не улучшение качества при сокращении расстояния от точки наблюдения до полигона, а избавление от эффекта неправильного расчета глубины сцены (depth aliasing).

2. Bi-Linear Filtering

Bi-Linear Filtering - билинейная фильтрация. Состоит в использовании интерполяционной техники. Иными словами, применительно к нашему примеру, для определения текселей, которые должны быть задействованы для интерполяции, используется основная форма светового пятна - круг. По существу, круг аппроксимируется 4 текселями. Этот способ фильтрации представляет собой существенно лучше поточечной выборки (point sampling), так как отчасти принимается во внимание форма светового пятна и используется интерполяция. Это означает, что если полигон приближается слишком близко к экрану или точке наблюдения, то для интерполяции потребуется больше текселей, чем в действительности доступно. В результате получается прекрасно выглядящее расплывчатое изображение, впрочем это лишь побочный эффект.

Главный недостаток билинейной фильтрации в том, что аппроксимация выполняется корректно только для полигонов, которые расположены параллельно экрану или точке наблюдения. Если полигон развернут под углом (а это в 99% случаев), значит вы используете неправильную аппроксимацию. Неправильность заключается в том, что вы используете аппроксимацию круга, в то время, как должны аппроксимировать эллипс. Главная проблема в том, что при билинейной фильтрации требуется считывать по 4 текселя из текстурной памяти для определения цвета каждого выводимого на экран пикселя, а значит требования к ширине полосы пропускания памяти увеличиваются в четыре раза, по сравнению с поточечной фильтрацией.

3. Tri-Linear filtering

Tri-Linear filtering - трилинейная фильтрация, представляет собой симбиоз mip-текстурирования и билинейной фильтрации. Фактически, вы производите билинейную фильтрацию на двух mip уровнях, что в результате дает вам 2 текселя, по одному для каждого mip уровня. Цвет пикселя, который должен быть выведен на экран, определяется в результате интерполяции по цветам двух mip-текстур. По сути, mip уровни представляют собой заранее рассчитанные более маленькие версии исходной текстуры, а это означает, что мы получаем более хорошую аппроксимацию текселей, расположенных в пятне света.

Эта техника обеспечивает лучшую фильтрацию, но имеет лишь небольшие преимущества перед билинейной фильтрацией. Требования к ширине полосы пропускания памяти удваиваются, по сравнению с билинейной фильтрацией, так как вам необходимо считать 8 текселей из текстурной памяти. Использование мипмеппинга обеспечивает лучшую аппроксимацию (используется большее число текселей, расположенных в световом пятне) по всем текселям в световом пятне, благодаря использованию заранее рассчитанных mip-текстур.

4. Anisotropic filtering

Anisotropic filtering - анизотропная фильтрация. Итак, чтобы получить действительно хорошие результаты, вы должны помнить, что все тексели в световом пятне определяют цвет пикселя. Вы так же должны помнить, что форма светового пятна изменяется вместе с изменением положения полигона относительно точки наблюдения. До этого момента мы использовали лишь 4 текселя вместо всех текселей, покрываемых световым пятном. Это означает, что все эти техники фильтрации дают искаженный результат, когда полигон расположен дальше от экрана или от точки наблюдения, т.к. вы не используете достаточный объем информации. На самом деле вы осуществляете сверх меры фильтрацию в одном направлении, и совершенно недостаточно фильтруете во всех остальных. Единственным преимуществом у всех описанных выше фильтраций является тот факт, что при приближении к точке наблюдения, изображение выглядит менее блочным (хотя это всего лишь побочный эффект). Таким образом, чтобы добиться наилучшего качества, мы должны использовать все тексели, покрываемые световым пятном и усреднять их значение. Однако, это серьезно ударяет по пропускной способности памяти - ее попросту может не хватить, и выполнить такую выборку с усреднением нетривиальная задача.

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

1 Tile (тайл) - плитка или фрагмент изображения. Фактически тайл представляет собой участок изображения, обычно с размером 32 на 32 пикселя; по этим участкам осуществляется сортировка с целью определения, какие полигоны, попадающий в этот тайл являются видимыми. Тайловая техника реализована в чипсетах VideoLogic/NEC.

Дополнительную информацию по данной теме можно прочитать и .

Помощь в подготовке материала оказал Kristof Beets (PowerVR Power)

Если судить по информации на форумах и из статей в Интернете, то ATi хитрит с трилинейной фильтрацией текстур на новом графическом процессоре X800. Впрочем, находятся и яростно защищающие ATi. Вообще, подобные дискуссии напоминают нам скандал годовалой давности, связанный с nVidia.

Поводом для столь горячего обсуждения стала статья на немецком сайте Computerbase. В ней было показано, как ATi использует оптимизированную трилинейную фильтрацию текстур, часто называемую "брилинейной" (brilinear) из-за смеси билинейной и трилинейной фильтраций, в графических процессорах Radeon 9600 и X800. Новость действительно стала ошеломляющей, ведь ATi всегда твердила о использовании настоящей трилинейной фильтрации.

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

Будет ли продолжение? Возможно, поскольку спор по поводу недавно открытой брилинейной фильтрации на картах Radeon 9600 и X800 не утихает. ATi следует отдать должное за то, что качество картинки карт визуально не страдает из-за этой фильтрации. По крайней мере, у нас нет примеров, говорящих об обратном. Пока брилинейная фильтрация проявляет себя при искусственно созданных лабораторных условиях. В то же время, ATi не позволяет включить полную трилинейную фильтрацию для упомянутых карт, будь она адаптивной или нет. Из-за новой фильтрации значения производительности в тестах не демонстрируют всего настоящего потенциала X800, поскольку значения FPS получены после оптимизации, влияние которой на скорость оценить сложно. Да и слово "адаптивная" оставляет горькое послевкусие. ATi не предоставила нам информацию о механизме работы драйвера и много раз заявляла, что карта даёт полную трилинейную фильтрацию. Лишь после упомянутого разоблачения ATi признала, что фильтрация оптимизирована. Будем надеяться, что в других местах драйвера подобной "адаптивности" нет.

Впрочем, производители медленно, но уверенно, двигаются к тому моменту, когда уровень терпимости будет преодолён. "Адаптивность" или определение запускаемого приложения не позволяют тестовым программам показать действительную производительность карты в играх. Качество картинки в игре может отличаться от одного драйвера к другому. Производители могут свободно развлекаться с драйвером, в зависимости от того, какая производительность нужна отделу маркетинга на данный момент. Ну, а право потребителя знать, что он, собственно, покупает, здесь уже никого не интересует. Всё это оставлено средствам массовой информации - пусть они выполняют свою образовательную миссию. И трюки с фильтрацией, которые мы обсудили в нашей статье, являются лишь самыми известными такими случаями. Что ещё скрыто от нашего внимания, остаётся лишь догадываться.

Каждый производитель решает сам, какой уровень качества изображения он будет обеспечивать стандартно. Однако производителям следует документировать используемые оптимизации, особенно если они скрыты от известных тестов, как в свежем примере с ATi. Решение очевидно: дайте возможность выключать оптимизации! Тогда потребитель сможет сам решать, что ему важнее - больше FPS или лучшее качество. На Microsoft, как на третейского судью, рассчитывать тоже не приходится. Тесты WHQL не позволяют определить многие вещи, да и их можно легко обойти: значение слова "адаптивная" вам знакомо?

Известные на сегодня оптимизации фильтрации
ATi nVidia
Трилинейная
оптимизация
R9600
X800
GF FX5xxx
(GF 6xxx)*
Угловая оптимизация
анизотропной фильтрации
R9xxx
X800
GF 6xxx
Адаптивная
анизотропная фильтрация
R9xxx
X800
GF FX5xxx
GF 6xxx
Оптимизация ступени R9xxx
X800
GF FX5xxx
Оптимизация LOD R9xxx
X800(?)

В целом, подобные дискуссии имеют свои преимущества: покупатели и, возможно, OEM-клиенты начинают прислушиваться к проблеме. Мы не сомневаемся, что мания необузданных оптимизаций будет продолжаться. Однако в тёмном царстве появился луч света, что наглядно продемонстрировала nVidia со своей трилинейной оптимизацией. Будем надеяться и на следующие подобные шаги!