что такое antialiasing gta sa
[Spin-Off] Anti-Aliasing (AA) в современных играх
Вообще рассказать про АА я собирался в третьей части, но я не успеваю закончить её за эти выходные. Плюс, стиль изложения в данном случае никак не согласуется с остальной серией статей (слишком суровая теория).
Поэтому я решил выделить тему о сглаживании в такой мини-спин-офф. Но читать настоятельно рекомендуется в продолжение самой третьей части.
Anti-Aliasing (AA) в современных играх
Или, по-нашему — … тоже антиалайзинг. Полноценного русского названия для этой технологии просто нет. Можно перевести его как «устранение эффекта лесенки» или «устранение ступенчатости». В играх его часто переводят как «сглаживание». Но все эти варианты не совсем корректны, и в среде людей, занимающихся графикой, просто используют кальку с английского названия.
Чтоб разобраться, что это за зверь такой — «антиалайзинг» — и с чем его едят, надо сперва выяснить, что такое «алайзинг» (aliasing) и откуда он берётся.
Внимание!
Расстановка точек над АА невозможна без некоторой суровой теории. И картинки по ходу тоже будут не красивыми скриншотами из ААА-игр, а специальными синтетическими примерами.
Если тебе такое не по силам / не интересно — крути вниз, к кратким выводам.
Дело в том, что компьютерная графика, как и всё компьютерное, дискретна.
Если брать конкретно изображение — то с точки зрения процессора это всего-навсего таблица из пикселей. Об этом ты и без меня знал. Но вот из-за этой фундаментальной вещи — начинаются проблемы.
Допустим, у нас в кадре есть чайник (так уж повелось у 3D-шников: брать его в качестве болванки). Для камеры он будет выглядеть вот так: Каждая ячейка — это отдельный пиксель.
В реальной природе (например, на матрице фотоаппарата) каждый пиксель получит средний цвет той области, которую он представляет. То есть,
Но так обстоят дела в реальной природе. Когда же изображение создаётся искуственно, компьютер не может получить средний цвет в области, потому что никаких «областей» и нет. Есть лишь пиксели. И цвета для них ему надо откуда-то «придумать». Что он и делает.
Рендеринговый движок при создании картинки «стреляет» из камеры лучами в центр каждого пикселя: … потом — смотрит, в какую точку на поверхности этот луч попал, и вычисляет в ней цвет.
Вот тут-то — и лежит наш камень преткновения, именуемый алайзингом.
Super-Sampling (SSAA)
Корень зла — в том, что каждый семпл «видит» цвет лишь в одной точке. И не важно, в центре пикселя мы его «стреляем» или сбоку: попав в одном направлении, он тем самым упускает всё остальное.
Так что самое простое и очевидное решение — «стрелять» по несколько семплов в каждом пикселе, а потом усреднять их цвета. Это и есть суперсемплинг.
Решение, что называется, «в лоб» (брутфорсное), и это палка о двух концах. С одной стороны, брутфорс всегда корректнее, чем всякие имитации. С другой — он и ресурсов требует гораздо больше.
Фактически, если мы стреляем в каждом пикселе по 2, 4, 8 семплов — это всё равно что рендерить картинку в разрешении, которое больше во столько же раз. То есть, и производительность падает пропорционально.
Со временем придумали разные алгоритмы для генерации дополнительных семплов, но они лишь повышали качество картинки, а требовательность к ресурсам оставалась прежней. Взято с Википедии, там же — плюсы и минусы каждого метода. Если вкратце, то они улучшаются в таком порядке (если говорить только о реалтаймовой графике):
Grid:
Random / Stochastic:
Poisson disc:
Jittered:
Rotated grid:
Так что если ты увидишь в меню варианты вида «SSAA grid» и «SSAA rotated grid» — ты поймёшь, что речь как раз об этом. Grid — это самый первый (самый «дубовый») вариант, все остальные выглядят лучше при том же числе семплов.
Суперсемплинг также называют FSAA (Full-Scene AA), но на мой взгляд это весьма неудачная аббревиатура, т.к. возникают разночтения с FullScreen AA. То есть, с «полноэкранным антиалайзингом» — общим названием вообще всех видов АА как такового.
Ещё помнится, что я встречал в какой-то игре вариант перевода «избыточная выборка» — это тоже SSAA, только глазами надмозгов.
Multi-Sampling (MSAA)
CSAA (Coverage Sampling AA)
АА как пост-эффект
MSAA/CSAA показали, что важно не только плодить дополнительные семплы на соседних пикселях с высокой контрастностью, но и просто умело размывать их. Что породило ещё кучу новых видов АА, которые уже и вовсе являются не трёхмерными технологиями, а чисто двухмерными.
Они оперируют с готовым изображением (как фильтр в фотошопе), просто по-разному размывая уже имеющиеся пиксели/семплы. Соответственно, применяются они в самом конце, что позволяет комбинировать их с «честным» SSAA и «условно-честным» MSAA.
Всего их на сегодняшний день понаплодилось — DLAA — Directionally Localized AntiAliasing
EQAA — Enhanced Quality AntiAliasing
EdgeAA — Edge AntiAliasing
FXAA — Fast approXimate AntiAliasing
GPAA — Geometric Post-process AntiAliasing
GBAA — Geometry Buffer AntiAliasing
MLAA — MorphoLogical AntiAliasing
NFAA — Normal Filter AntiAliasing
SRAA — Subpixel Reconstruction AntiAliasing
SDAA — Second Depth AntiAliasing
SMAA — Subpixel Morphological AntiAliasing
TAA — Transparent AntiAliasing
Я в настоящее время пользуюсь Юнити, так что для сравнения могу показать лишь эти виды: NFAA:
FXAA:
DLAA:
Сами по себе эти алгоритмы способны лишь устранить явную ступенчатость. Но, например, на длинных объектах тоньше пикселя (провода, верёвки) они ситуацию не спасают.
Впрочем, и использовать их надо не как самостоятельный АА, а лишь как дополнение к более брутфорсным братьям. Которое относительно дёшево позволяет немного повысить качество уже сглаженной картинки.
Кроме того, у всех пост-эффектных режимов сглаживания есть одно колоссальное преимущество: они дружат с deffered освещением. Что это такое — как-нибудь в другой раз, но штука эта в современных играх архи-нужная.
Из всего длиннющего списка пост-эффектных АА хочется выделить несколько:
FXAA (Fast approXimate AA) — самый эффективный метод по соотношению ресурсы/качество. Он весьма удачно справляется со сглаживанием на краях объектов. На верёвках, естественно, не особо помогает (как и все остальные в этом списке). Но он действительно шустрый. Что и позволило ему доминировать на консолях предыдущего поколения.
К сожалению, по природе своей, он не только сглаживает границы, но и слегка размывает текстуры. Однако это с лихвой оправдывается тем, что он практически бесплатен в сравнении с MSAA/CSAA.
TXAA (Temporal AA)
Краткие выводы
0. Отсутствие AA — жуть и безобразие.
1. SSAA — самый правильный, но и самый (до безобразия) тормозной алгоритм.
2. MSAA — относительно правильный, и приемлимо тормозной (если нет тех, что дальше).
3. CSAA — по качеству такой же, как MSAA, но значительно быстрее.
4. FXAA — практически бесплатный, но самый «мыльный».
5. MLAA — такой же, как CSAA/MSAA по качеству, но гораздо быстрее по скорости. И, как и FXAA, совместим с современными технологиями (deferred lighting).
6. SMAA — гораздо лучше по качеству, чем FXAA и MLAA, медленнее их по скорости, но по-прежнему быстрее, чем MSAA.
7. TXAA — адская вундервафля, про которую пока мало чего ясно. Соперничает с SMAA, но при этом стремится по скорости к MSAA, а по качеству — к FXAA. Но она единственная полностью устраняет эффект дребезжания (во всяком случае, так заявлено, а на глаз она это делает ничем не лучше, чем SMAA).
Ну и напоследок — срыв покровов.
Все эти режимы сглаживания в будущем могут оказаться попросту не нужны. Разрешения мониторов растут, уже достигли 4K, и при этом некоторые умудряются играть на нескольких мониторах. На всяких retina display — и вовсе невозможно разглядеть отдельный пиксель.
Так что предлагаю тебе сперва провести простой эксперимент:
1. сделать в фотошопе чёрную картинку с пятью-шестью одиночными яркими пикселями разных цветов. Разрешение картинки — как у твоего монитора. Желательно, если ты в ФШ ткнёшь карандашом в случайные места (чтоб сам не знал, где каждый пиксель).
2. Сохраняешь в PNG, открываешь картинку на весь экран через твой просмотровщик (вроде IrfanView).
3. Садишься на том расстоянии от монитора, на котором ты играешь, и ищешь глазами эти цветные пиксели.
Если на поиск у тебя ушло около минуты или больше — поздравляю! Тебе можно вообще класть болт на все эти навороченные антиалайзинги. По той причине, что ты просто не увидишь лесенку в игре, как бы ты ни старался. Грубо говоря, разрешение твоего монитора — больше, чем разрешение твоего глаза (на эту область).
Включай FXAA как почти-бесплатный — и радуйся бескомпромиссному качеству картинки.
Если же ты не из тех счастливчиков с адскими видюхами и гигантскими мониторами, то, по крайней мере, ты теперь знаешь, как подбирать оптимальный режим сглаживания. И чем именно придётся жертвовать в том или ином случае.
Да кто такой этот ваш MSAA и SSAA?!
Вы часто видели эти MSAA и SSAA в настройках — и выбирали опцию наугад. Знали примерно, что эти загадочные буквы связаны со сглаживанием картинки, и этого вам всегда хватало. Но червячок сомнений всё-таки точил ваш разум. Иначе бы вы, как и мы сейчас, не задались вопросом: «Кто же такие эти самые MSAA и SSAA на самом деле?». Ну что ж, давайте разберёмся со всем этим по порядку и без заумных словечек.
Что такое сглаживание?
Минутка очевидных вещей. Изображение на вашем мониторе состоит из пикселей — очень маленьких квадратиков. По законам геометрии, из них получаются отличные вертикальные и горизонтальные линии и идеальные прямоугольники. А вот если нарисовать в Paint наклонную линию или круг, то тут же на белый свет явятся пиксельные «лесенки».
Далеко не каждую 2D фигуру можно создать только при помощи квадратов и линий под прямым углом, а о трёхмерных объектах нечего и говорить. Так что проблема сглаживания существует в играх как сейчас, так и тридцать лет назад — вам не хуже меня видно, где стоило бы сгладить Лару Крофт.
Вот эти вот неровности ещё называют «алиасингом». На скриншоте это выглядит более-менее терпимо, но в игре, помимо эстетических неудобств, они создают ещё и лишнее мельтешение на экране — ломаные линии будут всё время перестраиваться и отвлекать, а задний план и вовсе превратится в разноцветную мешанину пикселей. Решить проблему «лесенок» можно двумя способами.
Первый — это увеличить разрешение. Тогда на один экранный дюйм будет приходиться больше пикселей, и вероятность увидеть резкие переходы снизится: не зря сейчас индустрия потихоньку переходит на 4к. За ним последует 8к, потом 16к, и в конце концов вы скорее разглядите пиксели на оконном стекле, чем на экране. К сожалению, подобная роскошь кусается как в плане цены, так и в плане производства, а сорок лет назад не было даже возможности создать экран с таким разрешением. Поэтому пришлось придумать второй способ.
И это — сглаживание, которое не позволяет рваным линиям и неровностям портить вам всю малину. Технологию создали в 1972 году в Массачусетском технологическом институте, а затем эту идею подхватили и переработали все кому не лень, так что теперь мы имеем кучу разных видов смягчения границ предметов. Однако, суть у всех общая: линию на изображении сглаживают с помощью градиента на крайних пикселях.
Для сглаживания изображения к контурам предмета добавляются оттенки соседнего цвета — ближайшие к фону пиксели принимают среднее цветовое значение между моделькой и окружением, размывая границу и создавая градиент. В результате картинка выходит более плавной и приятной для глаз, хоть и становится немного мыльной.
Для некоторых графических элементов используются специальные алгоритмы сглаживания. Так, для смягчения контуров букв придумали ClearType, а для самых простых линий — Алгоритм Ву. Некоторые алгоритмы работают только с уже существующим изображением, а другие применяются прямо во время построения сцены. Одни из них жрут мощности вашей видеокарты, а другие сосредоточенно жуют ваш процессор и не влияют на FPS.
В общем, способы и принципы работы у всех разные, а значит, и фичи с багами тоже у них свои. Так что давайте разберём несколько самых популярных видов сглаживания подробнее.
GTA SA: Graphics. Помощь в обучении.
Grand Theft Auto: San Andreas
Приветствую вас, пользователи.
В данной теме, я, от «А» до «Я» раскрою секрет красивой атмосферы такой игры, как GTA San Andreas.
Многие из нас знают о высоких показателях современных игр и их графики, но, многие так же, из нас, предпочитают превратить «Легенду Rockstar» в произведение искуства модмейкеров, при этом не выкладывая из своего кармана деньги на новый мощный ПК.
Перейдем к делу. Что бы новичкам было всё более понятно, я буду разлаживать все по полочкам и пошагово.
Установив графику, получим свежую и насыщенную колоритами игру, казалось бы, 2005г. выпуска.
Далее, уже по вашему усмотрению, вы можете как удалить настройку, так и установить новую, изменяя её.
Теперь, я хотел бы добавить еще несколько полезных советов и описаний в плане известных проблемм в GTA San Andreas.
В результате, игра 2005г. выпуска, преобретает у меня вот такой вид.
Для более красивого результата, я могу дать еще один совет: такой как установка текстурных модов, которые играют очень важную роль в графике вашей игры. Сейчас составлю список рекомендуемых модификаций, которые просто, даже обязательно должны быть у каждого в игре:
С вами был я, Tinrion.
Благодарю тех, кому моя статья принесла пользу, значит труд мой был вложен не зря.
Желаю успехов в начинаниях и поправках.
Типы сглаживания и их принудительное включение в играх
Содержание
Содержание
Любой хотя бы раз видел в игре настройку «Сглаживание», оно же Antialiasing. Это функция, позволяющая устранить эффект лесенки на краях объектов и сделать изображение менее пилообразным. Производители видеокарт создали немало различных методик, общее количество которых исчисляется десятками. Многие из них устарели и забыты, а некоторые используются до сих пор.
В этой статье мы рассмотрим все актуальные типы сглаживания в играх, проведем сравнение, а также научимся их использовать.
Типы сглаживания
В качестве образца будет использоваться игра Track Mania вкупе с Full HD разрешением монитора. Видеокарта GTX 1070. Первый скриншот «чистый», без сглаживания. Просматривать рекомендуется в полном размере.
FXAA (Fast approXimate Anti-Aliasing)
Метод сглаживания, который затрагивает всю картинку изображения на этапе пост-обработки, то есть перед самым ее выводом на экран. Имеет 9 степеней качества. Неплохо сглаживает геометрию. Не устраняет прерывистую лесенку пикселей, что хорошо видно на проводах в воздухе. Не добавляет детализации и мылит текстуры.
Имеет практически идентичный, но малоизвестный аналог MLAA, который работает за счет процессора, а не видеокарты. Сглаживание MLAA доступно в крайне ограниченном количестве игр, поэтому рассматриваться не будет.
SMAA (Subpixel Morphological Anti-Aliasing)
Продвинутое пост-сглаживание, основанное на FXAA и MLAA. Дает ощутимо лучший результат, но потребляет чуть больше ресурсов видеокарты. Имеет четыре степени качества.
Детализации также не добавляет, однако дает меньше паразитных искажений, лучше сглаживает геометрию и меньше мылит изображение.
MSAA (Multi-Sample Anti-Aliasing)
Метод основан на выборочном масштабировании объектов в более высоком разрешении. Текстуры при этом не затрагиваются. Добавляет детализацию на контурах, уменьшает рябь картинки в движении. На современных видеокартах практически не затрагивает производительность. Распространенный и предпочтительный тип сглаживания.
Когда в играх вы выбираете степень сглаживания x2, х4 или x8 подразумевается именно MSAA.
SSAA (Super-Sample Anti-Aliasing)
Самое лучшее, самое правильное и самое требовательное к производительности сглаживание. В отличие от MSAA происходит масштабирование всех возможных объектов, а также шейдеров и текстур.
При выборе настройки SSAA x 4 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680×4320 от изначального 1920×1080.
Очень хорошо сглаживает лесенку пикселей, улучшает внешний вид текстур. Объекты вдали приобретают реальную четкость. Рябь в играх полностью исчезает, что делает картинку реалистичной и более приятной для глаз. В некоторых играх регулируется процентным соотношением в виде ползунка (может называться «масштабирование разрешения»).
Такое сглаживание лучше использовать в старых играх, так как в современных будут просадки частоты кадров даже на самых мощных видеокартах.
К сожалению, далеко не все игры работают с SSAA сглаживанием, даже если попытаться включить его принудительно.
Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960×540), что ухудшает качество картинки, но дает прирост производительности.
DSR (Dynamic Super Resolution)
Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.
И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840×2160 на мониторе с меньшим разрешением.
Из минусов интерфейс в играх может стать очень мелким и нечитаемым, если игра не оптимизирована под масштабирование игровых элементов. Второй минус это смена чувствительности мыши, курсор будет двигаться медленнее, так как ему нужно пройти больше пикселей.
В отличие от прочих типов сглаживания, DSR можно активировать в любой игре, в которой есть возможность выбора поддерживаемых разрешений.
У AMD есть свой аналог, названный VSR (Virtual Super Resolution).
Единственное полезное значение это x4, дающее реально качественное сглаживание. На других значениях картинка мало того, что не сглаживается, так еще и становится более зубчатой.
Комбинации и ответвления
Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).
Еще один известный тип сглаживания это CSAA, по сути тот же MSAA, но потребляющий чуть меньше ресурсов. Считается устаревшим и из новых видеокарт удален. Попытка принудительной активации приводит к вылету драйвера.
Грубо говоря, практически все сторонние типы сглаживания являются либо модификацией MSAA, либо комбинацией с использованием различных пост-эффектов.
Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360×8640), при 26 кадрах в секунду.
В итоге игра 2006 года почти «поставила на колени» GTX 1070. Ну а про игры типа Metro Redux и говорить нечего, всего 1-3 фпс.
Использование
FXAA
Для активации нам понадобится программа FXAA Tool.
В главном окне программы убираем галочку Pre Sharpen. Далее нажимаем кнопку «Add», программа попросит нас ввести имя профиля (можете написать любое), а затем необходимо указать путь к папке с игрой.
Переходим во вкладку «AntiAliasing». Двигая ползунок влево и вправо, мы изменяем баланс между производительностью и качеством. После того, как необходимый уровень выбран, нажимаем кнопку «Save». Теперь при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать достаточно в главном меню нажать кнопку «Remove».
SMAA
Для его использования необходимо скачать программу SweetFX.
Первым делом нажимаем кнопку Add new game и указываем путь на файл запуска игры (.exe).
В списке игр появится строчка с именем файла, щелкаем по ней один раз.
Нажимаем кнопку Add SweetFX.
Заходим в настройки SweetFX Injector settingsи выбираем желаемый уровень качества.
Лучше всего поставить SMAA_PRESET_HIGH. Нажимаем Save settings, а затем в главном окне Save new config.
Как и в случае с FXAA Tool при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать необходимо в главном меню нажать кнопку “Remove SweetFX”.
MSAA \ SSAA \ VSR (Radeon)
Новая панель управления от AMD максимально упрощена. Чтобы активировать VSR, нужно лишь нажать соответствующую кнопку в разделе «Дисплей». После этого в играх появятся новые доступные разрешения.
Активация MSAA и SSAA также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.
Избыточная выборка — это SSAA, а множественная выборка — это MSAA.
MSAA \ SSAA \ DSR (GeForce)
Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».
Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560×1440, а x4 соответствует 3840×2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.
Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.
Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.
Затем нажимаем кнопку «Применить».
Для настроек 3D имеется две вкладки: глобальные параметры и программные настройки. Если вы меняет параметры в первой вкладке, то они применяются ко всем приложениям, а если вы меняете значения во второй вкладке, то настройки применяются только к выбранной вами игре.
Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).
Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.
Для сброса настроек вы можете нажать на значок NVIDIA.
Сравнение
Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.
Вторым фрагментом выступит автомобиль, для оценки сглаживания изгибов и текстур.
А теперь сравним влияние сглаживания на FPS в игре.
Исходные материалы
Все использованные в статье игровые скриншоты, а также несколько дополнительных вы можете скачать в архиве по ссылке.
Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.
Вывод
Мы изучили эффективность сглаживания на примерах, а также научились принудительно его использовать c помощью различных программ и панели управления видеокартой.
Теперь вы в любой момент сможете улучшить качество изображения, даже если в самой игре настройки сглаживания не предусмотрено.