Трилинейная фильтрация или анизотропная что лучше
Фильтрация анизотропная: для чего нужна, на что влияет, практическое использование
Технологии отображения 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-технологии или поддержку нескольких мониторов.
Анизотропная, билинейная и трилинейная фильтрация
Анизотро́пная фильтра́ция (англ. Anisotropic Filtering, AF) — в трёхмерной графике метод улучшения качества изображения текстур на поверхностях, сильно наклонённых относительно камеры. Как билинейная и трилинейная фильтрация, анизотропная фильтрация позволяет устранять алиасинг на различных поверхностях, но при этом вносит меньше размытия и поэтому позволяет сохранить бо́льшую детальность изображения. Анизотропная фильтрация требует относительно сложного вычисления, и поэтому только около 2004 года она стала «бесплатной» (не снижающей общей кадровой частоты, либо снижающей её незначительно) в графических платах потребительского уровня.
Выбирается MIP-текстура, соответствующая разрешению поперёк направления обзора. Берут несколько текселей вдоль направления обзора (в фильтрации 2x — до двух, в 4x — до четырёх, и т. д.) и усредняют их цвета.
Так как пикселей на экране может быть 1 миллион и даже больше, а каждый тексель — это не менее 32 бит, анизотропная фильтрация требует огромной пропускной способности видеопамяти (десятки гигабайт в секунду). Столь большие требования к памяти уменьшают за счёт сжатия текстур и кэширования.
Билинейная фильтрация — процесс извлечения нескольких пикселей исходной текстуры с последующим усреднением их значений для получения окончательного значения пикселя. Понятие «билинейная фильтрация», точно так же, как и сходное понятие «трилинейная фильтрация», применимо только к двумерным текстурам. Для трехмерных, например, данное понятие неприменимо, а понятие трилинейной фильтрации имеет совершенно другое значение.
Трилинейная фильтрация — усовершенствованный вариант билинейной фильтрации.
MIP-текстурирование, повышая чёткость изображения и процент попаданий в кэш на дальних расстояниях, имеет серьёзный недостаток: ясно видны границы раздела между MIP-уровнями. Трилинейная фильтрация позволяет исправить этот недостаток ценой некоторого снижения резкости текстур.
Для этого цвет пикселя высчитывается как средневзвешенное восьми текселей: по четыре на двух соседних MIP-текстурах. В случае, если формулы MIP-текстурирования дают самую крупную или самую маленькую из MIP-текстур, трилинейная фильтрация вырождается в билинейную.
С недостаточной резкостью борются, устанавливая отрицательный mip bias — то есть, текстуры берутся более детальные, чем нужно было бы без трилинейной фильтрации.
60. UV-преобразования, сферическое и кубическое текстурирование
UV-преобразование или развёртка в трёхмерной графике (англ. UV map) — соответствие между координатами на поверхности трёхмерного объекта (X, Y, Z) и координатами на текстуре (U, V). Значения U и V обычно изменяются от 0 до 1. Развёртка может строиться как вручную, так и автоматически.
Современное трёхмерное аппаратное обеспечение считает, что UV-преобразование в пределах одного треугольника является аффинным — поэтому достаточно задать U и V для каждой вершины каждого из треугольников. Впрочем, как именно стыковать треугольники друг с другом, выбирает 3D-моделер, и умение строить удачную развёртку — один из показателей его класса. Существует несколько противоречащих друг другу показателей качества развёртки:
Максимально полное использование площади текстуры. Впрочем, в зависимости от разрыва между «минимальными» и «максимальными» системными требованиями, по краям развёртки текстуре нужен определённый «припуск» на генерацию текстур меньшего размера.
Отсутствие областей с недостаточной или избыточной детализацией текстуры.
Отсутствие областей с излишними геометрическими искажениями.
Сходство со стандартными ракурсами, с которых обычно рисуется или фотографируется объект — упрощает работухудожника по текстурам.
Удачно расположенные «швы» — линии, соответствующие одному ребру, но расположенные в разных местах текстуры. Швы желательны, если есть естественный «разрыв» поверхности (швы одежды, кромки, сочленения и т. д.), и нежелательны, если таковых нет. В моделировании персонажей Dota 2 участвовали любители со всего мира, и руководство по моделированиютребовало, чтобы глаза были отдельным «островком» развёртки.
Для частично симметричных объектов: удачное сочетание симметричных и асимметричных участков развёртки. Симметрия повышает детализацию текстуры и упрощает работу художника по текстурам; асимметричные детали «оживляют» объект.
Кубическое текстурирование, кубическая карта (англ. Cube mapping, CubeMap) — методика в трёхмерной компьютерной графике, предназначеная преимущественно для моделирования отражений на поверхности объекта. Суть методики в использвании кубической карты для отображения трёхмерной координаты текстурыв тексель при построении изображений отраженния окружения в поверхности объекта. Кубическая карта представляет собой развёртку шести граней куба, каждая грань которого содержит текстуру. Каждая текстура отображает вид окружения, которое видно из одной точки зрения в шести направлениях. Текстурная координата является вектором, который определяет, как смотреть из центра куба, чтобы получить желаемый тексель.
Cube mapping, как правило, более предпочтительный устаревшей методике Sphere mapping (англ.), так как является более простым для динамической генерации в симуляциях реального времени и имеет меньшее искажение.
ВНИМАНИЕ!
ПЕРЕВОД ГУГЛА!
В компьютерной графике отображения сферы (или отображения сферической окружающей среды) является одним из видов отображения отражения, что приближает отражающие поверхности, рассматривая среду для бесконечно далекой сферической стены. Эта среда хранится в виде текстуры, изображающие то, что зеркальный шар будет выглядеть, если бы он был помещен в окружающую среду, используя ортогональной проекции (в отличие от одного с точки зрения). Эта текстура содержит отражающие данные для всей среды, к тому месту, непосредственно позади сфере исключением. (Для одного примера такого объекта, см. Эшера рисования Рука с Отражая Sphere.)
Чтобы использовать эти данные, нормаль к поверхности объекта, просмотреть направление от объекта к камере, и / или отражается направление от объекта к окружающей среде, используется для расчета координат текстуры для поиска в вышеупомянутом текстурной карты. Результат выглядит как окружающая среда отражается в поверхности объекта, подлежащего визуализации.
1. Определение и основные виды компьютерной графики. 1
2. Основные области применения компьютерной графики. 1
3. Фрактальная графика. 1
4. Двухмерная и трёхмерная компьютерная графика. 1
5. Дополнительные виды компьютерной графики (пиксельная, ASCII, псевдографика) 1
6. Определение и основные понятия растровой графики. 2
7. Разрешение растрового изображения. 2
8. Разрешение цифрового видео, развёртка и соотношение сторон кадра. 2
9. Глубина цвета в растровой графике. 2
10. Представление цветов в компьютерной графике, цветовая модель. 3
32. Преобразования кривых Бернштейна-Безье. 12
33. Аффинное преобразование и его матричное представление. 13
34. Виды аффинных преобразований. 13
35. . Геометрические сплайновые модели и алгоритмы их построения. 13
36. Способы описания векторного изображения, редактор векторной графики. 13
37. Технологии описания статичной векторной графики (PostScript, VML, PGML) 14
38. Технологии описания динамической векторной графики (SVG, Flash и др.) 14
39. Определение и основные понятия трехмерной векторной графики. 15
11. 40. Параметрическое задание поверхности. 15
41. Кривые поверхности. 15
42. Основные методы 3D моделирования. 16
43. Полигональная сетка, их виды.. 16
44. Файловые форматы полигональных сеток. 16
45. Основные методы и ПО рендеринга. 16
46. Уравнение рендеринга. 17
47. Растеризация, построение проекций. 18
48. Матрица преобразований камеры 3D сцены.. 18
49. Модель и методы освещения в 3D графике. 18
50. Рейкастинг и трассировка лучей. 18
51. Рендеринг в реальном времени. 19
52. Объёмный рендеринг, вокселы. 20
53. Процессы и стадии графического конвейера. 22
54. Низкоуровневые графические API. 25
55. Шейдеры, шейдерные языки. 25
Шейдерные языки. 26
Профессиональный рендеринг. 26
Рендеринг в реальном времени. 27
56. Типы шейдеров. 28
57. Определение, основные понятия и методы текстурирования. 29
58. Рельефное текстурирование. 32
59. Анизотропная, билинейная и трилинейная фильтрация. 34
60. UV-преобразования, сферическое и кубическое текстурирование. 35
Анизотропная и трилинейная фильтрация?
Я запутался в использовании трилинейной фильтрации и анизотропной фильтрации в SharpDX.
Насколько я понял, трилинейная фильтрация делает линейную фильтрацию текстур, а в случае изменения LOD она также интерполирует между слишком LOD, чтобы сгладить переход.
Анизотропная фильтрация делает текстуру больше. Теперь можно использовать трилинейную фильтрацию, чтобы сделать то же самое, из-за анизотропной фильтрации с большими текстурами. Это приводит к уменьшению размытого изображения при использовании анизотропии, потому что интерполяция лучше.
Теперь возможно одновременное использование трилинейной фильтрации и анизотропной фильтрации. Но в SamplerState я могу выбрать Filter.Anisotropy или Filter.MinMagMipLinear (должен быть трилинейным, верно?). Здесь вы можете увидеть все возможные фильтры: Перечисление фильтра D3D11 .
Итак, мой вопрос: можете ли вы использовать оба метода вместе, если да, как я могу архивировать это в SharpDX с помощью SamplerState?
Анизотропная фильтрация не изменяет размер текстуры. Анизотропная фильтрация позволяет исследовать текстуру с различной скоростью по каждой оси по сравнению с изотропной фильтрацией (линейной, билинейной, трилинейной . ), которая должна быть исследована с одинаковой скоростью на каждой оси.
Анизотропная фильтрация предназначена в первую очередь для решения проблемы размытия текстуры при очень наклонных углах, таких как смотрение на проезжую часть или стоящее рядом со стенкой. Объекты, которые оказываются длинными и тощими, выглядят лучше, потому что фильтр может выбрать правильный уровень mip на каждой оси вместо того, чтобы застревать с разрешением меньшей оси и размыть другой.
Анизотропные и изотропные текстуры хранятся по-разному в оборудовании, потому что они выполняют разные вещи. Анизотропная фильтрация не является по своей сути лучшей, она лучше для объектов со смещенными углами . Вы не можете их смешивать.
Вы не хотите использовать его все время, потому что вы будете платить штраф за производительность. Пакет объектов, для которых он подходит, и использовать его только для них, или если у вас недостаточно объектов для его оправдания, скопируйте их на куски, чтобы куски не были наклонными при визуализации.
Графические настройки в компьютерных играх — подробный разбор
На сайте 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):
Влияние настроек драйвера NVIDIA на производительность
Вы, наверное, знаете (а, может, и не знаете) о том, что не только настройки графики в играх влияют на производительность/качество графики. Есть ещё немало настроек в самих драйверах видеокарт. Да, настройки есть, но для чего они нужны и нужны ли вообще? Давайте разбираться…
Я решил проверить влияние настроек драйвера NVIDIA на производительность,
а вместе с тем и на качество картинки в различных играх. Я буду рассматривать следующие настройки драйвера:
1) Включение масштабируемых текстур: нет, билинейная, трилинейная
2) Фильтрация текстур – анизотропная оптимизация образцов: вкл, выкл
3) Фильтрация текстур – качество: высокая производительность, качество, высокое качество
4) Фильтрация текстур – отрицательное отклонение уровня детализации: разрешить, привязка
5) Фильтрация текстур – трилинейная оптимизация: вкл, выкл
I) Crysis (моя особая настройка графики, описанная в статье об оптимизации Crysis, Depth of Field=2):
— Benchmark GPU
— Benchmark CPU
— FRAPS-тест: уровень Recovery. Лес после деревни. Все враги убиты. Сохраняюсь в определённом месте, отсюда делаю несколько шагов вперёд.
II) Call of Duty 4 — FRAPS-тест: начало задания “Ультиматум”. Делаю несколько шагов вперёд, осматриваюсь по сторонам. Врагов поблизости нет, только свои.
III) BioShock – FRAPS-тест: уровень “Медицинский павильон”. Делаю несколько шагов, осматриваюсь по сторонам. За стеной бродит Большой Папочка.
IV) F.E.A.R. Встроенный бенчмарк.
V) The Elder Scrolls IV: Oblivion – FRAPS-тест: Великий лес, день. Делаю несколько шагов, осматриваюсь по сторонам. Врагов поблизости нет.
VI) Prey — мой собственный бенчмарк: никаких врагов вокруг, но хорошая нагрузка на видеокарту.
VII) S.T.A.L.K.E.R. – FRAPS-тест: начало игры – уровень “Кордон”.
VIII) Call of Juarez DX9 – FRAPS-тест: начало игры.
Я брал для тестов такие места, где влияние процессора на производительность незначительно. Настройки тестирования – максимальные. Разрешение – 1024х768. Сглаживание – 4х, анизотропная фильтрация – 16х (для The Elder Scrolls IV: Oblivion и BioShock – из драйвера; для F.E.A.R., Prey и Call of Duty 4 – из настроек в меню; для Crysis – отключены; для S.T.A.L.K.E.R. и Call of Juarez – только анизотропная фильтрация 16х), вертикальная синхронизация и тройная буферизация отключены, потоковая оптимизация – авто (призвана увеличивать производительность на многоядерных ЦП в современных играх, но реального влияния не заметно), сглаживание прозрачных текстур – отключено, сглаживание – гамма-коррекция – включено. Остальное – по умолчанию.
— Включение масштабируемых текстур: нет
— Фильтрация текстур – анизотропная оптимизация образцов: вкл
— Фильтрация текстур – качество: высокая производительность
— Фильтрация текстур – отрицательное отклонение уровня детализации: разрешить
— Фильтрация текстур – трилинейная оптимизация: вкл
2) Оптимальный режим:
— Включение масштабируемых текстур: билинейная
— Фильтрация текстур – анизотропная оптимизация образцов: вкл
— Фильтрация текстур – качество: качество
— Фильтрация текстур – отрицательное отклонение уровня детализации: привязка
— Фильтрация текстур – трилинейная оптимизация: вкл
— Включение масштабируемых текстур: трилинейная
— Фильтрация текстур – анизотропная оптимизация образцов: выкл
— Фильтрация текстур – качество: высокое качество
— Фильтрация текстур – отрицательное отклонение уровня детализации: привязка
— Фильтрация текстур – трилинейная оптимизация: выкл
Intel Pentium Dual Core E2160 1.8@3.2GHz (356×9), FSB 1424MHz, 1.4625V
Cooler Master Hyper TX2
Gigabyte GA-P31-DS3L
GeForce 9600GT Palit без разгона (не гонится, и всё тут… )
2Gb DDR2 Samsung (Dual Channel – 2x1Gb) 800@890MHz 6-6-6-18 1.8V
ForceWare 174.74 RUS
Windows XP SP2 Pro
Режим “Производительность”
Average: 37.89
Min: 21.48
Max: 44.83
Режим “Оптимальный”
Average: 37.85
Min: 21.06
Max: 44.59
Режим “Качество”
Average: 37.84
Min: 22.89
Max: 44.39
Да… Уж очень маленькая разница получается во всех показателях. Но вот самое интересное: в качественном режиме минимальный FPS немного выше, чем в остальных! Но почему? Может, бенчмарк глючит? Не видел я таких низких показателей минимального FPS на протяжении трёх прогонов теста после первого. Может, виновата подгрузка текстур? Но ведь уже во втором прогоне всё полностью загружено. Ерунда какая-то… Но если отбросить этот глючный показатель, то можно заметить, что производительность разных режимов почти не отличается. Да и качество тоже. Crysis и без всяких настроек драйвера – красивая игра.
Режим “Производительность”
Average: 34.72
Min: 21.41
Max: 43.89
Режим “Оптимальный”
Average: 34.77
Min: 24.40
Max: 43.82
Режим “Качество”
Average: 34.93
Min: 23.89
Max: 43.96
И опять то же самое: разница – в пределах погрешности измерений, а при повышении качества минимальный FPS снова растёт. Почему? Непонятно…
— FRAPS-тест: уровень Recovery
Режим “Производительность”
Average: 33.330
Min: 31
Max: 37
Режим “Оптимальный”
Average: 33.294
Min: 30
Max: 36
Режим “Качество”
Average: 32.963
Min: 30
Max: 35
Да. Разницу назвать огромной язык не поворачивается…
II) Call of Duty 4
Режим “Производительность”
Average: 58.860
Min: 44
Max: 99
Режим “Оптимальный”
Average: 57.350
Min: 41
Max: 77
Режим “Качество”
Average: 57.689
Min: 39
Max: 74
Что касается разницы между средними FPS, то она вполне входит в рамки погрешности измерения, особенно если учесть то, что тестирование произведено при помощи FRAPS. А вот минимальный и максимальный показатели FPS стабильно падают при повышении качества. Да и общий комфорт в игре снижается. Что ж, есть приложения, в которых настройки драйвера действительно влияют на производительность. А вот влияние на качество можно назвать минимальным: нужно вглядываться, чтобы заметить разницу. Где заметны оптимизации? В основном, в играх с высоким разрешением текстур. Заметны границы мип-уровней, когда текстура под ногами прорисована чётко, а чуть дальше – мутнее, и видна граница между чётко и не очень чётко прорисованной текстурами. А в качественном режиме этой границы не видно, при этом чёткость даже слегка падает. Кстати, найти эти границы мип-уровней не так уж и просто, а во время игры эти тонкости специально разглядывать не будешь. Вот, к примеру, сравните качество текстуры в игре
Serious Sam 2 (сверху — режим “Производительность”, снизу — режим “Качество”).
Разница весьма незначительна. В производительном режиме чётко выглядит нижняя половина картинки, а верхняя часть слегка замылена. В качественном режиме вся текстура выглядит равномерно, но менее чётко. Это я ещё долго искал место, где заметна разница. Часто она вообще почти отсутствует. Кстати, раньше в драйверах NVIDIA производительный режим выглядел гораздо хуже.
Режим “Производительность”
Average: 79.871
Min: 69
Max: 116
Режим “Оптимальный”
Average: 79.689
Min: 67
Max: 89
Режим “Качество”
Average: 77.225
Min: 64
Max: 89
Средние FPS опять почти не различаются, но вот на минимальный показатель стоит обратить внимание: с повышением качества он действительно меняется в худшую сторону. А вот почему максимальный FPS так снизился с переходом именно в оптимальный режим, хотя в качественном режиме разницы по сравнению с оптимальным уже нет? Может, я неправильно измерял в самой игре? Ладно, оставим этот вопрос, отбросим максимальные значения. Но вот что важно: разница в производительности действительно заметна во время игры, если измерять FRAPS’ом. Что ж, не зря всё-таки есть настройки в драйвере.
Режим “Производительность”
Min – 59
Max – 307
Average – 123
Режим “Оптимальный”
Min – 59
Max – 306
Average – 123
Режим “Качество”
Min – 59
Max – 302
Average – 122
Да… Разница находится в пределах погрешности, чего точно не заметишь в игре. Производительность во всех режимах отличная, а потому ставим режим “Качество” и играем без проблем. Только вот разницу в качестве картинки приходится искать под микроскопом, а когда играешь, не замечаешь этих нюансов. Настройки графики в самой игре – другое дело. И качество заметно меняется, и скорость…
V) The Elder Scrolls IV: Oblivion
Режим “Производительность”
Average: 59.835
Min: 49
Max: 77
Режим “Оптимальный”
Average: 57.495
Min: 47
Max: 73
Режим “Качество”
Average: 49.798
Min: 44
Max: 62
Вот! Oblivion действительно можно ускорить, перейдя в производительный
режим. Ускорение заметно даже без FRAPS. Нет, не всегда настройки драйвера – пустой звук… Что самое приятное, эти настройки не оказывают значительного влияния на качество графики, поэтому лучше выставить настройки с упором на производительность.
Режим “Производительность”
115.7 FPS
Режим “Оптимальный”
114.9 FPS
Режим “Качество”
112.9 FPS
Снова есть разница, но только ма-а-аленькая…
Режим “Производительность”
Average: 77.052
Min: 61
Max: 97
Режим “Оптимальный”
Average: 75.495
Min: 61
Max: 97
Режим “Качество”
Average: 72.502
Min: 59
Max: 98
Ну вот, опять есть разница в средних FPS, но минимальный FPS снизился только
в качественном режиме. Во время игры разница в производительности различных режимов почти не заметна, но FRAPS её показывает. Впрочем, играть и в качественном режиме приятно. Но если подумать: велика ли разница между всеми этими настройками? Как я уже говорил, весьма незначительна. Кроме того, в производительном режиме текстуры даже слегка более чёткие, так что не таким уж плохим может оказаться такой режим.
VIII) Call of Juarez
Режим “Производительность”
Average: 62.220
Min: 57
Max: 66
Режим “Оптимальный”
Average: 61.983
Min: 56
Max: 67
Режим “Качество”
Average: 59.537
Min: 53
Max: 66
Некоторые изменения среднего FPS наблюдаются, но они слишком незначительны. Минимальный FPS меняется сильнее. Надо сказать, что влияние этих настроек драйвера на производительность в данной игре действительно заметно, особенно с FRAPS. Ещё один плюс в пользу настроек драйвера.