Что такое фильтрация текстур в играх

Что такое фильтрация текстур в играх

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

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

содержание

Необходимость фильтрации

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

Там могут быть различные типы соответствия между пикселем и тексела / текселей он представляет на экране. Они зависят от положения текстурированной поверхности по отношению к зрителю, и различные формы фильтрации необходимы в каждом конкретном случае. Учитывая квадратную текстуру отображенной на квадратные поверхности в мире, на некотором расстоянии просмотра размера одного пикселя экрана точно так же , как один тексел. Ближе , чем, тексели больше , чем пиксели экрана, и должны быть расширены надлежащим образом — процесс , известный как текстуры увеличение . Подальше, каждый тексель меньше пикселя, и поэтому один пиксель охватывает несколько текселей. В этом случае соответствующий цвета должен быть выбран на основе покрытых текселей, с помощью текстуры минификации . Графика API — интерфейсы , такие как OpenGL позволяют программисту задавать различные варианты для минификации и увеличений фильтров.

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

Мипмаппинг

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

При увеличении текстуры, количество текселей , которые должны быть рассмотрены для любого пикселя всегда четыре или меньше; во минификации, однако, как текстурированный полигон двигается дальше потенциально вся текстура может попасть в один пиксель. Это потребует бы чтение всех своих текселей и объединение их значения , чтобы правильно определить цвет пикселя, а чрезмерно дорогостоящей операции. Мипмаппинг позволяет избежать этого, Предфильтрации текстуры и хранить его в меньших размерах вплоть до одного пикселя. По мере того как текстурированная поверхность движется дальше, текстура применяется переключатели в предварительно отфильтрованный меньшего размера. Различные размеры MIPMAP называются «уровнями», с уровнем 0 является наибольшим размером (используется ближе всего к зрителю), а также увеличению уровней , используемым при увеличении расстояния.

методы фильтрации

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

Ближайший сосед интерполяция

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

Ближайший сосед с Mipmapping

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

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

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

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

Билинейная фильтрация является следующим шагом вверх. В этом методе четыре ближайших текселей к пикселю центру отбираются (на самом близком уровне MIPMAP), и их цвета сочетаются с средневзвешенным в соответствии с расстоянием. Это устраняет «квадратики» видели во время увеличения, так как теперь плавный градиент изменения цвета от одного тексел к другому, а не резкий скачок в качестве пикселя центра пересекает границу текселя. Билинейная фильтрация для фильтрации увеличения является общей. При использовании для минификации он часто используется с Mipmapping; хотя он может быть использован без, он будет страдать от такого же ступенчатости и мерцающих проблемы , как ближайшие соседи фильтрация , когда уменьшенный слишком много. Для скромных коэффициентов минификации, однако, он может быть использован в качестве недорогой аппаратного ускорения взвешенной текстуры сверхтипового.

фильтрация Trilinear

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

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

Анизотропная фильтрация является высокое качество фильтрации доступны в текущих потребительских 3D графических карт . Проще, «изотропные» методы используют только квадратный мип , которые затем интерполяцию с использованием би- или трилинейной фильтрации. ( Изотропная означает одинакова во всех направлениях, и , следовательно , используется для описания системы , в которой все карты являются квадраты , а не прямоугольники или других четырехугольников.)

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

Читайте также:  Как убрать выделение цветом нумерации в ворде

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

Процент Ближе фильтрации

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

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

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

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

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

Начнем с фундаментальных понятий, а затем пройдемся по тонким настройкам в рамках нескольких разделов, посвященных анизотропной фильтрации, сглаживанию и постобработке. Для написания этого гайда мы пользовались информацией, полученной от профессионалов: Алекса Остина, дизайнера и программиста Cryptic Sea, Николаса Вайнинга, технического директора и ведущего программиста Gaslamp Games и от представителей Nvidia. Сразу отметим, что статью мы пишем простыми словами, опуская подробные технические детали, чтобы вам было легче понять механизмы работы разных технологий.

Содержание

ОСНОВЫ

Разрешение

Пиксель — основная единица цифрового изображения. Это цветовая точка, а разрешение — количество столбцов и рядов точек на вашем мониторе. Самые распространенные разрешения на сегодня: 1280×720 (720p), 1920×1080 (1080p), 2560×1440 (1440p) и 3840 x 2160 (4K или «Ultra-HD»). Но это для дисплеев формата 16:9. Если у вас соотношение сторон 16:10, разрешения будут слегка отличаться: 1920×1200, 2560×1600 и т.д. У ультрашироких мониторов разрешение тоже другое: 2560×1080, 3440×1440 и т.д.

Кадры в секунду (frames per second, FPS)

Если представить, что игра — это анимационный ролик, то FPS будет числом изображений, показанных за секунду. Это не то же самое, что частота обновления дисплея, измеряемая в герцах. Но эти два параметра легко сравнивать, ведь как монитор на 60 Гц обновляется 60 раз за секунду, так и игра при 60 FPS выдает именно столько кадров за тот же отрезок времени.

Чем сильнее вы загрузите видеокарту обработкой красивых, наполненных деталями игровых сцен, тем ниже будет ваш FPS. Если частота кадров окажется низкой, они будут повторяться и получится эффект подтормаживания и подвисания. Киберспортсмены охотятся за максимальном возможными показателями FPS, особенно в шутерах. А обычные пользователи зачастую довольствуются играбельными показателями — это где-то 60 кадров в секунду. Однако, мониторы на 120-144 Гц становятся более доступными, поэтому потребность в FPS тоже растет. Нет смысла играть на 120 герцах, если система тянет всего 60-70 кадров.

Так как в большинстве игр нет встроенного бенчмарка, для измерения кадров в секунду используется стороннее программное обеспечение, например, ShadowPlay или FRAPS. Однако, некоторые новые игры с DX12 и Vulkan могут некорректно работать с этими программами, чего не наблюдалось со старыми играми на DX11.

Апскейлинг и даунсэмплинг

В некоторых играх есть настройка «разрешение рендеринга» или «rendering resolution» — этот параметр позволяет поддерживать постоянное разрешение экрана, при этом настраивая разрешение, при котором воспроизводится игра. Если разрешение рендеринга игры ниже разрешения экрана, оно будет увеличено до масштабов разрешения экрана (апскейлинг). При этом картинка получится ужасной, ведь она растянется в несколько раз. С другой стороны, если визуализировать игру с большим разрешением экрана (такая опция есть, например, в Shadow of Mordor), она будет выглядеть намного лучше, но производительность станет заметно ниже (даунсэмплинг).

Производительность

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

Мы использовали наш Large Pixel Collider (суперкомпьютер от сайта PC Gamer), включив две из четырех доступных видеокарт GTX Titan, чтобы продемонстрировать, как сильно разрешение влияет на производительность.

Тесты проводились в бенчмарке Shadow of Mordor:

1980х720 (½ родного разрешения)

2560х1440 (родное разрешение)

5120х2880 (x2 родного разрешения)

Вертикальная синхронизация и разрывы кадров

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

Одним из решений этой проблемы стала вертикальная синхронизация, которая почти всегда присутствует в настройках графики. Она не позволяет игре показывать кадр, пока дисплей не завершит цикл обновления. Это вызывает другую проблему — задержка вывода кадров, когда игра способна показать большее количество FPS, но ограничена герцовкой монитора (например, вы могли бы иметь 80 или даже 100 кадров, но монитор позволит показывать только 60).

Адаптивная вертикальная синхронизация

Бывает и так, что частота кадров игры падает ниже частоты обновления монитора. Если частота кадров игры превышена, вертикальная синхронизация привязывает ее к частоте обновления монитора и она, например, на дисплее с 60 Гц не превысит 60 кадров. А вот когда частота кадров падает ниже частоты обновления монитора, вертикальная синхронизация привязывает ее к другому синхронизированному значению, например, 30 FPS. Если частота кадров постоянно колеблется выше и ниже частоты обновления, появляются подтормаживания.

Читайте также:  Интересные программы для айфона

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

Технологии G-sync и FreeSync

Новые технологии помогают разобраться со многими проблемами, которые зачастую основаны на том, что у дисплеев фиксированная частота обновления. Но если частоту дисплея можно было бы изменять в зависимости от FPS, пропали бы разрывы кадров и подтормаживания. Такие технологии уже есть, но для них нужны совместимые видеокарта и дисплей. У Nvidia есть технология G-sync, а у AMD — FreeSync. Если ваш монитор поддерживает одну из них и она подходит к установленной видеокарте, проблемы решены.

Сглаживание (Anti-aliasing, антиалиасинг)

Инструментов для этого достаточно, но легче объяснить на примере суперсэмплинга (SSAA). Эта технология отрисовывает кадры с более высоким разрешением, чем у экрана, а затем сжимает их обратно до его размера. На предыдущей странице вы могли видеть эффект от сглаживания при уменьшении частоты в Shadow of Mordor с 5120х2880 до 1440p.

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

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

Мультисэмплинг (MSAA): Эффективнее суперсэмплинга, но все еще прожорлив. В старых играх он был стандартом, а его суть объясняется в видео, которое вы увидите ниже.

Усовершенствованный мультисэмплинг (CSAA): более эффективная версия MSAA от Nvidia для ее видеокарт.

Усовершенствованный мультисэмплинг (CFAA): тоже апгрейд MSAA, только от компании AMD для ее карточек.

Метод быстрого приближения (FXAA): вместо анализа каждого отдельного пикселя, FXAA накладывается в качестве фильтра постобработки на всю сцену целиком после ее рендеринга. FXAA также захватывает места, которые пропускаются при включении MSAA. Хотя сам метод быстрого приближения тоже пропускает много неровностей.

Морфологический метод (MLAA): он свойственен видеокартам AMD и тоже пропускает этап рендеринга. MLAA обрабатывает кадр, выискивая алиасинг и сглаживая его. Как нам объяснил Николас Вайнинг: «Морфологическое сглаживание работает с морфологией (паттернами) неровностей на краях моделей; оно вычисляет оптимальный способ удаления лесенок для каждого вида неровностей путем разбиения краев и зубцов на небольшие наборы морфологических операторов. А затем использует специальные типы смешивания для каждого отдельного набора». Включить MLAA можно в панели управления Catalyst.

Улучшенное субпиксельное морфологическое сглаживание (SMAA): еще один вид постобработки, в котором сочетаются детали MLAA, MSAA и SSAA. Такой метод можно совмещать со SweetFX, а многие современные игры поддерживают его изначально.

Временное сглаживание (TAA или TXAA): TXAA изначально разрабатывалась для графических процессоров Nvidia уровня Kepler и более поздних. Но затем появились не настолько специфические формы временного сглаживания, которые обычно обозначаются, как TAA. При таком способе следующий кадр сравнивается с предыдущим, после чего обнаруживаются и устраняются неровности. Происходит это при поддержке разных фильтров, которые уменьшают «ползающую лесенку» в движении.

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

Многокадровое сглаживание (MFAA): появилось с релизом графических процессоров Maxwell от Nvidia. Тогда как MSAA работает с устойчивыми шаблонами, MFAA позволяет их программировать. Представители Nvidia подробно объясняют технологию в видео ниже (о нем мы уже говорили раньше и очень скоро вы его увидите).

Суперсэмплинг с глубоким обучением (DLSS): новейшая технология Nvidia, доступная лишь в некоторых играх и с видеокартами GeForce RTX. По словам компании: «DLSS использует нейронную сеть для определения многомерных особенностей визуализированной сцены и интеллектуального объединения деталей из нескольких кадров для создания высококачественного финального изображения. DLSS использует меньше сэмплов, чем TAA, при этом избегая алгоритмических трудностей с прозрачностями и другими сложными элементами сцен».

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

Что означают цифры?

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

Но есть исключения. Так, CSAA пытается достичь сглаживания на уровне MSAA с меньшим количеством образцов цвета. Поэтому 8xCSAA фактически использует только четыре образца цвета. Есть и 8QxCSAA — этот способ сглаживания увеличивает количество образцов цвета до восьми, чтобы повысить точность.

Производительность

Мы использовали бенчмарк Batman: Arkham City, чтобы протестировать несколько старых методов сглаживания: MSAA, FXAA и TXAA. Результаты, как и ожидалось, показывают, что FXAA требует меньше всего ресурсов, в то время как MSAA и TXAA сильно влияют на среднюю частоту кадров.

Результаты тестирования сглаживания в Batman: Arkham City (на двух Nvidia GTX Titan SLI):

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

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

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

На пальцах

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

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

Ближний цвет

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

Читайте также:  Что значит папка temp

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

Отличия линейного алгоритма не слишком существенны, вместо ближайшей точки-текселя линейная фильтрация использует сразу 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-технологии или поддержку нескольких мониторов.

Ссылка на основную публикацию
Что дает geforce experience
The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator...
Форге оф импаерс великие строения
Другое название: Кузница Империй Ниже мы приводим подробный гайд по игре Forge of Empires с советами как вам быстрее отстроить...
Форза хорайзен 3 список машин
Серия игр Forza всегда поражала количеством доступных автомобилей. На момент выхода игры доступно уже более 150 автомобилей, а разработчики обещают...
Что дает перепрошивка смартфона
К моему большому сожалению, такой огромный пласт гик-культуры, как прошивка смартфонов, очень мало обозревается на IT-сайтах. Но бьюсь об заклад,...
Adblock detector