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

pixel notches

Лесенка пикселей при отрисовке наклонных линий

Эту проблему можно решить приобретением монитора с бОльшим разрешением. Скорее всего, если у вас не современная видеокарта, то придётся обновить и её. Но такой вариант устроит далеко не каждого.

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

pixel lines

Пример сглаживания наклонной линии

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

Добиться сглаживания можно разными способами. Ниже перечислены 8 основных и популярных алгоритмов сглаживания, однако в играх могут попасться и другие типы.

Первый тип

Влияние на фпс прямое, в зависимости от метода и пропускной способности видеопамяти.

SSAA (SuperSample Anti-Aliasing, Избыточная выборка сглаживания) — Самое тяжелое, но и самое качественное и жутко нагружающее видеокарту. В ускорителях применяется регулярная маска размером от 2×1 до 4×4. От этого и появляется нагрузка, при разрешении 1920×1440 и маске 2х2 строится кадр с разрешением 3840х2880 (что требует памяти в 4 раза больше), после этого, усредняются цвета всех суб-пикселей в маске и уже после кадр сжимается и подается на вывод на экран в исходном разрешении.
Существовала технология в основном до DirectX 8, пока не появился MSAA. Из-за большого влияния на фпс от него отказались. Но так как мощность видеокарт перманентно росла, NVIDIA его вернули в строй и используется для игр с поддержкой DX9, DX10, DX11.
Хотите 60 фпс? Тогда сами сможете прикинуть под какой нагрузкой будет работать видеоадаптер. Однако, от картинки вы получите наслаждение. Данный метод рекомендуется обладателям производительных видюх для современных игр.

MSAA (MultiSample Anti-Aliasing, Множественная выборка сглаживания) — пришел на смену SSAA, потребляя меньше ресурсов, но и результат дает немного другой. Изображение по-прежнему рендерится в большем разрешении, но производительность достигнута за счет AA только краев объекта, а не всей картинки как в SSAA. Из минусов, на прозрачных полигонах (стекла, вода..) данный метод не работает, поэтому лесенку иногда можно лицезреть. И так как сглаживается только часть изображения, то можно наблюдать еще и артефакты. Плюс несовместимость с методом отложенного освещения. Нужно помнить, что MSAA выгоднее юзать на низких разрешениях. Чем оно выше, тем накладнее по ресурсам. Так же рекомендуется обладателям топовых видеокарт, с большим количеством видеопамяти.

CSAA (Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием)
— это продолжение эволюции SSAA->MSAA->CSAA, который сохранил совместимость с алгоритмами используемых в железе. Улучшение достигнуто за счет того, что в буфер кадра передается еще информация о субсэмпле с соседнего пикселя. Что в итоге помогает рассчитать более качественное сглаживание.
При равных уровнях (4,8..) CSAA и MSAA, качество кадра всегда будет у CSAA выше, а по производительности они друг другу не будут уступать.

Другими словами:
SSAA — сглаживает всю сцену
MSAA — сглаживание происходит только по краям объектов
CSAA — за счет добавления сэмплов перекрытия, сглаживание краев объектов происходит с учетом соседних пикселей. Т.е. тут сделан упор на качество кадра, практически при том же уровне уровне нагрузки на видеокарту, что и у MSAA.

FSAA (Full Scene Anti-Aliasing, Полноэкранное сглаживание) — То же что и SSAA, но от AMD и с небольшими отличиями.

QCSAA (Quality Coverage Sampling Anti-Aliasing, Выборка сглаживания с перекрытием) — не трудно догадаться, что это улучшенная версия CSAA, только использует вдвое больше сэмплов для анализа

EQAA (Enhanced Quality Anti-Aliasing, Сглаживание повышенного качества) — У NVidia — CSAA, у AMD — EQAA. Отличаются положениями сэмплов и в зависимости от режима их количеством.

AAA (Adaptive Anti-Aliasing, Адаптивное сглаживание) — Как известно у MSAA есть проблема при сглаживании краев на прозрачных объектах. Данный способ призван устранить такую проблему. Является синергией мультисемплинга (MSAA) и суперсемплинга (SSAA). Как можно догадаться, данный вид ресурсоемок и рекомендуется обладателям топ карт. Используется у AMD.

TrAA (Transparency Anti-Aliasing, Прозрачное сглаживание) — тоже что и AAA, только от NVIDIA.

TrAAA (Transparency Adaptive Anti-Aliasing, Адаптивное Прозрачное сглаживание) см. TrAA

TrMSAA (Transparency Multi-Sampling Anti-Aliasing, Прозрачная множественная выборка сглаживания) использует краевой метод (MSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TMAA

TrSSAA (Transparency Super-Sampling Anti-Aliasing, Прозрачная полноэкранная выборка сглаживания)
использует полноэкранное сглаживание (SSAA) для прозрачных объектов. Разновидность TAAA. Может обозначаться как TSAA

OGSSAA (Ordered Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с упорядоченной решеткой) — Классический SSAA в котором используется решетка с упорядоченной выборкой, выровненная по вертикали и горизонтали.

RGSSAA (Rotated Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с повернутой решеткой) — Все тот же SSAA, с уточнением расположения решетки наклоненной под определенным углом. Данный метод показывает качество немного лучше, чем OGSSAA, при почти горизонтальных или вертикальных краях объектов (слегка наклоненных).

SGSSAA (Sparse Grid SuperSampling Anti-Aliasing, Избыточная выборка сглаживания с разряженной решеткой) — выборки располагаются на регулярной сетке, как в OGSSAA. Но выборка производится лишь на некоторых узлах сетки. Здесь заложен компромиссный подход между производительностью и качеством изображения. Метод используется у NVidia

JGSSAA (Jittered Grid Super-sampling Anti-aliasing, Избыточная выборка с искаженной решеткой) — каждый пиксель так же разбивается на субпиксели, но выборка сэмплов располагается случайно (Стохастическая) или со смещением внутри субпикселя.

HRAA (High-Resolution Anti-Aliasing, Полноэкранное сглаживание для высоких разрешений) — метод полноэкранного сглаживания в NVIDIA с 5-ю сэмплами. Качество как 4xSSAA, по нагрузке как 2xSSAA.

HRAA (Hybrid Reconstruction Anti-Aliasing, Гибридное сглаживание) — решение использующее лучшие практики, на основе краевого метода (MSAA, CSAA), постобработки с аналитикой и временного антиалиасинга.

EDAA (Edge Detect Anti-Aliasing, Краевое сглаживание) так же краевой метод + обсчитываются контрастные переходы еще и на объектах и текстурах. Что в итоге сильнее садит fps. Условно можно назвать это аналогом CSAA, только от AMD. Это разновидность CFAA, описанного ниже.

CFAA (Custom Filter Anti-Aliasing, Специализированные фильтры сглаживания) — Детище AMD. Включает в себя 4 фильтра: box, narrow-tent, wide-tent, edge-detect. Каждый фильтр, это разный подход к реализации того же MSAA.
box — стандартный подход к MSAA
narrow-tent — аналог CSAA
wide-tent — так же аналог CSAA, только количество субпикселей больше в два раза
edge-detect — при проходе фильтра edge detection по отрендеренному изображению, для определенных им пикселей, которые определяются как границы полигонов или резкие цветовые переходы, используется более качественный метод антиалиасинга с большим количеством сэмплов, а для остальных пикселей с меньшим.

QAA ( Quincunx Anti-Aliasing, Шахматное сглаживание ) — метод от NVidia, в основе которого лежит учет не только своих субпикселей, но и данные берутся от соседних. При этом, при расчете финального цвета, свой сэмпл имеет вес больше, чем данные с соседних. В расчет берется 5 точек. По качеству 2xQSAA, приблизительно так же выглядит как 4xMSAA.

FAA (Fragment Anti-Aliasing, Частичное Сглаживание) — разработана компанией Matrox. Сглаживание применяемое к краям объектов. Отличие от SSAA и MSAA, в том, что края и сами объекты не увеличиваются в несколько раз по маске. Каждый пиксель делится на 16 частей и если покрытие полное, то пиксель отправляется в кадровый буфер, если неполное, то уходит в отдельный буфер. Такой пиксель считается фрагментированным, при чем в дальнейшем над ним проводится анализ и он видоизменяется. Такая реализация очень сильно экономит ресурсы видеокарты. Но есть и проблема, алгоритм определения краев не всегда корректно обнаруживает те самые края. Проблема с прозрачными объектами во всей красе.

TXAA (Temporal approXimate Anti-Aliasing, Временное приблизительное сглаживание) — технология от Nvidia, которая использует основу MSAA. В формуле расчета используется время, данные по пикселям из предыдущих кадров и данные из обрабатываемой сцены. После чего происходит усреднение по цвету. Это позволяет избавиться от мерцания и дерганья объектов в игре. Вдали дает качественную картинку, однако немного мылит близкие объекты и требования к ресурсам почти как для MSAA, хотя качество при тех же значениях лучше.
Со слов производителя, TXAA 2x сравнимо по качеству с 8xMSAA, но при по затратам производительности сопоставимо как с 2xMSAA, а TXAA 4x выше по качеству чем 8xMSAA, но по затратам производительности сопоставимо как с 4xMSAA. Отлично подходит для сглаживания в динамике.

TSSAA (Temporal Super Sampling Anti-Aliasing, Временная избыточная выборка сглаживания) — Этот метод, что и TXAA, только не привязан к видеокартам NVIDIA и завязана на суперсэмплинг.

csgo antialiasing

Что такое Мультисэмплинг?

мультисемплинг оно же сглаживание
Сгла́живание — технология, использующаяся в обработке изображений с целью делать границы кривых линий визуально более гладкими, убирая «зубцы» , возникающие на краях объектов. Сглаживание было придумано в 1972 в Массачусетском технологическом институте в Architecture Machine Group, которая позже стала основной частью Media Lab.

Избыточная выборка сглаживания (англ. Super Sampling anti-aliasing, SSAA) [1], также называемое полносценным или полноэкранным сглаживанием (FSAA)[2], используется, для исправления алиасинга (или «зубцов» ) на полноэкранных изображениях. [3] SSAA было доступно на ранних видеокартах, вплоть до DirectX 7. Начиная с DirectX 8 было убрано всеми производителями графических процессоров из-за его огромных вычислительных требований, и было заменено на множественную выборку сглаживания (англ. Multisample anti-aliasing, MSAA), которое также было заменено другими методам, такими как CSAA + TrAA/AAA. MSAA даёт несколько худшее качество графики, но и даёт огромную экономию вычислительной мощности. Поскольку SSAA даёт более высокое качество изображения, поэтому оно было некоторое время тому назад возвращено у AMD и NVIDIA. В модельный ряд AMD HD6xxx он включён в качестве особенности (ограничено только для игр на DirectX 9), также он был выпущен драйверами NVIDIA Fermi, для всех игр, начиная с игр на DirectX 9, и заканчивая играми на DirectX 11 с использованием любых видеокарт NVIDIA с поддержкой DX10+. Из-за больших вычислительных требований, с ним можно запустить только старые игры, которые значительно меньше используют графический процессор.

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

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

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

Какой метод сглаживания следует использовать?

С учетом всего сказанного, пришло время ответить на главный вопрос: какой метод сглаживания стоит использовать?

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

Тем не менее, MSAA и SSAA выдают гораздо более красивое изображение, более четкое, но требуют большой вычислительной мощности видеокарты. Это приводит к заметному проседанию FPS, что действительно может сделать игровой процесс не таким уж приятным на более слабых ПК. Кроме того, стоит отметить, что некоторые методы сглаживания не так популярны, как другие, из-за чего, например, EQAA, CSAA, TXAA и DLSS, можно использовать только в определенных играх, которые их поддерживают.

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

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

Графические настройки в компьютерных играх — подробный разбор

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

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

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

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

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

TXAA/TAA

Продукт Nvidia. По сравнению с другими решениями, разница заключается в одновременном анализе двух кадров, благодаря чему можно получить более плавный эффект. Кроме того, TXAA/TAA устраняет неровности, т.е. эффект перемещения краев объекта. Как это происходит? Используется та же технология, что и MSAA, но добавляется эффект постобработки.

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

Современные технологии сглаживания изображений

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

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

Любой человек, хоть раз запускавший 3D-приложение, знаком с таким явлением, как «лестничный эффект» — ступенчатость наклонных линий. В английском компьютерном жаргоне это явление называют «jaggies», а сухим языком науки — aliasing. Для того, чтобы устранить этот эффект и улучшить качество картинки, используется методика, получившая незамысловатое общее название antialiasing. На литературный русский язык это слово переводится как «сглаживание». Итак, прежде чем перейти к самому рассмотрению проблемы и методов ее решения, введем несколько понятий.

  • Aliasing=jaggies=»лестничный эффект» — эффект ступенчатости изображения на границе двух трехмерных объектов. В дальнейшем будем использовать «родной» термин aliasing.
  • Antialiasing — совокупное название методов сглаживания изображения, устраняющих «лестничный эффект».
  • Пиксель — точка изображения на экране.
  • Тексель — точка трехмерного объекта с наложенной на нее текстурой.
  • Текстура — изображение фиксированного формата, используемое для придания пикселю цвета и рисунка. Накладывается ядром видеокарты на «голый» трехмерный объект перед выводом на экран.
  • Сэмпл — конкретно выбранный участок картинки, содержащий 1, 4, 16 и т.д. пикселей, используемый для обработки объекта и сглаживания.

Любое псевдотрехмерное изображение проще всего изобразить с помощью треугольников (полигонов). Это простая геометрическая фигура, что делает ее идеалом для экономии ресурсов графического процессора. Совместив большое количество полигонов, мы получаем трехмерный объект. Чем больше полигонов, тем меньше отрезки границ между ними, соответственно, меньше неровностей. Казалось бы, как можно сделать округлый предмет из треугольников? Представьте себе куб. Конечно, если его с большой силой не толкать, катиться он не будет. Теперь увеличьте количество углов вдвое. Теперь у нас нечто наподобие угловатого шара. Тоже вряд ли сам куда-то укатится, но и три дюжих мужика для того, чтоб откатить его куда-то, не понадобятся. Увеличив количество углов еще в пару раз, мы получим хоть и не шарообразный объект, но что-то очень близкое к нему.

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

Для наших же нужд такие методы не годятся. Поэтому разработчики трехмерных приложений (движков игр, тестовых приложений и т.п.) стремятся к тому, чтобы при наименьшем количестве полигонов и текстур получить наилучшее изображение. Явление aliasing объясняется довольно просто. Видеоядро может без искажений вывести на экран горизонтальные и вертикальные линии. А вот с наклонными дело обстоит намного хуже. Фактически, видеоадаптер создает лестницу, которая внешне напоминает наклонную прямую, но таковой не является. Чем выше разрешение, в котором просчитывается и выводится картинка, тем больше точек-пикселей приходится на один и тот же отрезок прямой, и в какой-то момент человеческий глаз перестает замечать «ступеньки». Однако для этого разрешение должно быть действительно большим, что не так уж удобно для повседневной работы, да и не каждая видеокарта сможет его обеспечить. Вот для борьбы с этим явлением и создан antialiasing.

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

Суперсэмплинг — это способ «грубой силы». Чтобы продемонстрировать, как он работает, возьмем какой-нибудь растровый графический редактор, например, Adobe Photoshop. Создадим в нем картинку в разрешении 800х600, состоящую из одной-единственной наклонной линии, расположенной под углом 45°. Зальем одну половину синим цветом. Сохраним и посмотрим результат. Как видим, ступеньки налицо. Теперь ту же линию создадим при разрешении 1024х768. Результат — ступенек больше, но они меньше, субъективно эта линия «более прямая», чем предыдущая. Повторяя этот эксперимент с все более высоким разрешением, мы В итоге, получим картинку, на которой невооруженным глазом (читай, без приближения) невозможно заметить неровности.

Суперсэмплинг

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

Копнем чуть глубже. Если в разрешении 640х480 на экране находятся 307200 пикселей, то в 1280х960 — уже 1228800. Т.е. вместо одного пикселя адаптер каждый раз просчитывает 4, а значение цвета усредняет. При этом сглаживаются не только «ступеньки», улучшается и цвет всех текстур, переходы становятся более плавными.

Впрочем, идеалов в мире не бывает. За суперсэмплинг мы платим чудовищным падением производительности: минимум в 4 раза. Значит, нужно использовать более интеллектуальную методику, а не поигрывать «мышцами» видеопроцессора, которых не так уж и много. Этой методикой стал мультисэмплинг. Впервые эту технологию предложила небезызвестная компания 3DFx в 2000 году. Смысл мультисэмплинга состоит в том, что не нужно обрабатывать все до единого пиксели на экране, ведь подавляющее большинство из них находится внутри полигона, а не на границе между двумя. Конечно, отказ от сглаживания всей картинки ухудшает качество вывода текстур, но с этой проблемой призвана бороться билинейная, трилинейная и анизотропная фильтрация. Как говорится, каждый должен заниматься своей работой.

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

Особенность реализации мультисэмплинга у каждого из производителей видеокарт состоит в том, как именно процессор разбивает пиксели на субпиксели. Пойдем по порядку.

Поскольку основными игроками на рынке видеоадаптеров являются NVidia и ATi, их методики мы и опишем.

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

MSAA-сглаживание в OpenGL

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

Многие оконные системы вместо стандартного буфера способны предоставить нам мультисэмпл-буфер. GLFW также содержит подобный функционал, и всё что нам нужно сделать — это намекнуть GLFW, что мы хотели бы использовать не обычный буфер, а мультисэмпл-буфер с N точками выборки. Для этого, перед созданием окна, вызываем функцию glfwWindowHint():

Теперь, при вызове функции glfwCreateWindow(), создается окно рендеринга, но на этот раз с буфером, содержащим 4 подвыборки на координату экрана. Это означает, что размер буфера увеличивается в 4 раза.

Теперь, когда мы попросили GLFW задействовать мультисэмпл-буферы, нужно включить режим мультисэмплинга, воспользовавшись вызовом функции glEnable() с параметром GL_MULTISAMPLE . В большинстве OpenGL-драйверов мультисэмплинг включен по умолчанию, поэтому на первый взгляд явный вызов glEnable() может показаться немного избыточным, но лучше включить его в любом случае:

Поскольку реальные алгоритмы мультисэмплирования реализованы в растеризаторе ваших OpenGL-драйверов, то нам не придется больше что-то делать. Если бы мы сейчас визуализировали зеленый куб из самого начала этого урока, то увидели бы более гладкие края:

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

Технология сглаживания NVIDIA TXAA (временное сглаживание)

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

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

На данный момент сглаживание TXAA доступно в двух вариантах: TXAA 2x и TXAA 4x. TXAA 2x обеспечивает четкость изображения, сравнимую с 8xMSAA, при равных с 2xMSAA затратах производительности, а TXAA 4x обеспечивает четкость изображения выше, чем при 8xMSAA, при этом затраты производительности сравнимы с 4xMSAA.

NVIDIA® TXAA

TXAA – это новая техника сглаживания кинематографического качества, созданная специально для сокращения временного алиасинга ( сползание и мерцание при движении). Эта технология является комбинацией временного фильтра, аппаратного сглаживания и специальной компьютерной графики высокого качества. Для фильтрации пикселей на экране TXAA использует выборку сэмплов как внутри, так и снаружи пикселя, в соединении с выборками из предыдущих кадров, чтобы обеспечить по возможности самое высокое качество фильтрации.TXAA имеет улучшенную пространственную фильтрацию по сравнению со стандартными алгоритмами сглаживания 2xMSAA и 4xMSAA. К примеру, при воспроизведении ограждения, листвы или объектов в движении TXAA приближается, а порой и превосходит по качеству другие высококлассные профессиональные алгоритмы сглаживания. Более высококачественная фильтрация, применяемая в TXAA, приводит к более плавным изображениям по сравнению с менее качественной фильтрацией традиционного сглаживания MSAA.

TXAA объединяет высокую эффективность MSAA и продвинутые фильтры для повышения качества изображения, схожие с теми, которые используются при создании фильмов с компьютерной графикой, чтобы обеспечить более плавное изображение, значительно превосходя любые сопоставимые техники сглаживания. В зависимости от освещения, используемого в каждой отдельно взятой игре, ущерб производительности от использования TXAA может незначительно отличаться. В отличие от таких алгоритмов сглаживания, как FXAA, которые пытаются максимизировать производительность в ущерб качеству изображения, TXAA пытается максимизировать качество воспроизведения в ущерб производительности. TXAA – это лучший выбор для тех, кто ищет самое высококачественное сглаживание с максимально возможной производительностью, чтобы обеспечить лучшее изображение в таких играх, как Assassin’s Creed® III и Call of Duty®: Black Ops 2.

Сглаживание в играх. Причины появления и эволюция.

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

Первые предпосылки и появления до игр

Начать этот рассказ я бы хотел не с игр и даже не с графических интерфейсов. Проблема сглаживания появилась вместе с первыми текстовые интерфейсами.

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

Условное расположение буквы «А» на пиксельной сетке Как буква «А» была бы отображена на пикселях без сглаживания

Я создал простую 3D модель с чёрными рёмбрами. Сейчас, пока все грани вертикальны или горизонтальны — никаких проблем не видно,

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

Более того — если двигать и вращать модель, то эти лесенки ещё и очень заметно рябят, и не замечать их становиться крайне сложно. Естественно в играх — ситуация нисколько не лучше.

Увеличенный фрагмент

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

Причина этого в том, что некий графический объект попадая для отображения на дисплее должен занять какие-то из пикселей, так чтобы его геометрия и свойства цвета и яркости остались максимально точно отражёнными. Но сделать это не так просто как хотелось бы. Попробуем провести линию толщиной в 1 пиксель на экране. Вертикальная линия отображается без каких либо проблем. Горизонтальная — аналогично. С линией под 45 градусов всё уже сложнее — она будет состоять из стоящих по диагонали кубиков.

линия под 45 градусов (с увеличением)

Выглядит это всё правдоподобно, но уже не очень красиво. Если же отойти от 0, 45 и 90 градусов, то эти все лесенки активно и проявляются.

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

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

Примерно так выглядят шрифты разработанные для корректного отображения на экранах низкого разрешения без сглаживания

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

Допустим даже очень простой шрифт — Arial с уменьшением размера становиться нечитаемым.

Слева без сглаживания, справа со сглаживанием

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

Разница в этих примерах, думаю, очевидна. В одном варианте есть полутона в соседних пикселях от чёрного, в других — полутонов нет. Только чёрное или белое.

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

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

Назвали это дело субпиксельным рендерингом.

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

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

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

Основная пиксельная сетка делиться на более детализированну.

Затем уже всё зависит от алгоритмов — самый простой это сложить 4 сигнала (если мы поделили один пиксель на 4 подпикселя) и поделить их на 4 и именно такое значение присвоить уже настоящему пикселю для экрана и так появиться уже 4 градации полутонов.

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

Классификация методов сглаживания в играх

Ко времени создания текстовых сглаживаний — подобных проблем в играх не было. Вернее они были — но никак не решались.

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

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

Serious Sam VR: The Last

Обострилась проблема к концу 80-х, началу 90-х, когда в играх начала появляться 3D полигональная графика, да и спрайты научились уже и поворачивать и масштабировать и наклонять. Причём крутить/вертеть спрайты научились и консоли. Допустим у меня была SNES и в 1992 году она могла показывать полностью двухмерную Super Mario Kart так что не так то и очевидно, что это двухмерная игра. В игре даже была наклонённая миникарта и проблемы отсутствия сглаживания заиграли совершенно новыми красками.

Так выглядели 2D игры, когда стало хватать производительности для сложной работы со спрайтами

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

Pirates! Gold. Игра целиться в реалистичную отрисовку, но сильная пикселизация портит впечатление

Сглаживания предлагаю разделить на 4 категории:

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

Сглаживания основанные на работе до финальной отрисовки (SSAA, MSAA и т.д.)

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

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

Но и самый «тяжёлый» с точки зрения производительности. Так же теперь зная принцип работы вы можете понимать почему у переходов ограниченное количество цветов в градиентах. Помимо решения вопросов с «лесенками» повышенное разрешение делает ещё и выше чёткость текстур на поверхностях расположенных под острыми углами к камере.

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

анизотропная фильтрация (смотреть на брусчатку). Нажмите для увеличения.

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

Именно такая логика и вошла в сглаживание MSAA, оно же сглаживание мультисемплированием. И долгое время именно такой метод был основным. Он даёт эффект не сильно хуже, чем SSAA, но сильно экономнее для ресурсов компьютера.

Нажмите для увеличения нажмите для увеличения

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

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

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

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

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

FSAA (Full Scene Anti-Aliasing) — Вариация SSAA от AMD.

AAA(Adaptive Anti-Aliasing) — MSAA которая для прозрачных объектов работает как SSAA. Использует AMD.

TrAA (Transparency Anti-Aliasing) — тоже что и AAA, только от NVIDIA.

TrMSAA (Transparency Multi-Sampling Anti-Aliasing, иногда называется TMAA) MSAA с костылём для прозрачных объектов, без использования SSAA.

EQAA (Enhanced Quality Anti-Aliasing), QCSAA (Quality Coverage Sampling Anti-Aliasing)( для NVidia — CSAA), MSAA с увеличенным количеством сеплов для расчёта уточняющих коэффициентов и с различными положениями вирутальных точек относительно которых производиться расчёт.

OGSSAA (Ordered Grid SuperSampling Anti-Aliasing), RGSSAA (Rotated Grid SuperSampling Anti-Aliasing), SGSSAA (Sparse Grid SuperSampling Anti-Aliasing), JGSSAA (Jittered Grid Super-sampling Anti-aliasing) — SSAA с различным методом расположения виртуальных пикселей.

HRAA (High-Resolution Anti-Aliasing) — оптимизированная SSAA от NVidia, ещё один вариант работы с расположением пикселей.

FAA (Fragment Anti-Aliasing) — разработана компанией Matrox. Смесь чистого SSAA и MSAA, когда для виртуальных пикселей учитывается только те, в которых есть объект, остальные отбрасываются для улучшения производительности.

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

И на одних углах наклона линий лучше работает одно, на других углах — другое.

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

QAA (Quincunx Anti-Aliasing, Шахматное сглаживание) — метод от NVidia, учитывает и уменьшенные виртуальные пиксели и соседние реальные пиксели. Вызывает мыло, но борется с лесенками очень эффективно.

Ну и уж коли мы заговорили про мыло — то пора перейти ко второму типу методов сглаживания, а именно к сглаживаниям, которые осуществляются после отрисовки кадра.

Сглаживания основанные на работе после финальной отрисовки (FXAA, SMAA и т.д.)

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

Нажмите для увеличения Увеличенный фрагмент. нажмите для увеличения Увеличенный фрагмент. нажмите для увеличения

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

Нажмите для увеличения

Но есть и более сложные методы сглаживания постобработкой, один из примеров — это MLAA сглаживание. Оно же морфологическое сглаживание. В реальности не прижился, но он был одним из родоначальников класса сложных методов сглаживания постобработкой.

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

Морфологическое сглаживание работает очень похожим образом, но гораздо примитивнее. На вход этому типу сглаживания должно подаваться уже готовое изображение без сглаживания. Алгоритм находит места с резким изменением цвета на основе трёх видов паттернов «Z», «U» или «L» формы.

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

Именно в этот момент на сцену выходит мыло. Малого того что размываются границы объектов, так ещё и всё, что задумывается как дополнительная детализация в игре начинает размазываться.

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

Но очень часто можно встретить приемника этого типа сглаживания — а именно SMAA. Работает оно уже на видеокартах, а не процессорах. Для распознавания объектов и контуров происходит не только при помощи разности цветов, но и от разности яркости соседних пикселей, то есть по контрастности, что улучшает качество поиска граней объектов. Кроме того к «Z», «U», «L» формам добавляются и диагональные, что помогает лучше обрисовывать острые грани объектов и уменьшить погрешности форм. Естественно это не отменяет мыла и в чистом виде без добавок других методов это сглаживание сейчас используется редко.

И, как вы понимаете, мы к этому методу ещё вернёмся в 4-ой категории сглаживаний.

А пока перейдём к третьей. А именно к той, где для сглаживания используются несколько соседних кадров.

Сглаживание на основе анализа набора последовательных кадров (TAA, TXAA)

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

Нажмите для увеличения

И для глобального освещения переработка света идёт несколько кадров, что тоже можно видеть в играх.

Со сглаживанием придумали схожую систему.

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

С картинками это работает так же. Была на сайте статья про шлемы VR, а вернее как запустить SteamVR без гарнитуры, а через смартфон — я там учил вас смотреть на стерео картинки.

Стерео изображение

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

В общем — сейчас вы собственными глазами сделали супер семплирование путём наложения двух похожих кадров.

В играх реализовали это несколько иначе.

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

Напомню, что для суперсемплирования или SSAA один настоящий пиксель разбивался на малые подпиксели. А затем устреднялись значения подпикселей для отрисовки одного настоящего.

Во временном сглаживании соседние кадры смещаются на величину примерно тех же пол кадра, что и виртуальные подпиксели в SSAA. И на основе этих кадров уже так же можно уточнить линии переходов между объектами и сгладить усредняя данные.

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

Артефакты от TAA. Нажмите для увеличения.

Естественно с этим стали активно бороться. Основной метод борьбы — это попытаться описать движение всех объектов и камеры в игре. То есть на лету нужно распознать все контуры, выделить их как некие объекты, далее проанализировать следующие и прошлые кадры, в них так же найти все контуры и состыковать объекты по их контурам, а не по одним и тем же местам соседних кадров. В общем — в деле оптимизации вычислений тут необъятный океан. И в целом — временное сглаживание постоянно развивается в части улучшения работы. И в текущий момент оно стало настолько удовлетворительно работать, что его стали использовать как технологию по апскейлу. То есть игра рендериться, скажем, 720р на FullHD мониторе, а за счёт соседних кадров алгоритмы добивают детали до более высоких разрешений. Естественно это работает хуже, чем нативные высокие разрешения, но тенденция такая есть.

Комбинации сглаживаний

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

И ничто не мешает сделать одно сглаживание на этапе отрисовки, второе — после отрисовки, а третьим шлифануть уже набор кадров.

Так это в современных играх и работает.

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

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

Могут быть и иные комбинации. Допустим вместо SMAA может быть применена FXAA. Или может работать всё без суперсемплирования. Или работать только MSAA с FXAA без временного, или MSAA с SMAA. Или временное без суперсемплирования за счёт MSAA.

В общем — раздолье для любых комбинаций.

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

Что такое антиалиасинг: Digital Foundry о технологиях «сглаживания»

Digital Foundry, техническое подразделение Eurogamer, выпустило видео о технологиях «сглаживания» (anti-aliasing). Эксперты рассказали о преимуществах и недостатках различных видов антиалиасинга, а мы выбрали из видео главное.

Большинство игроков имеет представление о том, что такое «сглаживание» (anti-aliasing) — это технология, устраняющая «зазубрины». Однако сейчас этим словом обозначают сразу несколько совершенно разных технологий — графические движки становятся всё более сложными, а вслед за ними становятся более сложными и разнообразными методы борьбы с «зазубринами».

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

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

C этой проблемой призван бороться метод «сглаживания» под названием Ordered Grid Super Sampling — это увеличение плотности пикселей. Теперь мы имеем четыре пикселя вместо одного и плавное перетекание вместо резкого перехода. Главная проблема этого метода очевидна: если заменить каждый пиксель на набор из четырёх, это не может не сказаться на производительности.

Менее требователен к системе метод под названием MSAA (Multisample Anti-aliasing), увеличивающий плотность пикселей выборочно, на границах определённых полигональных объектов. Конечно же, такой метод гораздо менее требователен к производительности, чем SSAA, увеличивающий количество всех пикселей в четыре раза.

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

От ряби можно избавиться, просто снизив уровень детализации конкретного объекта — этот метод носит название Mip Map. Снижение количества пикселей в текстуре, находящейся на расстоянии, может не только повысить производительность, но и избавить её от ряби и прочих неприятных визуальных эффектов.

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

На всё многообразие проявлений алиасинга у разработчиков неизменно находятся эффективные ответы — методы борьбы постоянно совершенствуются. Например, в последнее время MSAA встречается в играх всё реже, а популярность приобретает метод PPAA (Post Process Anti-Aliasing), в частности FXAA и SMAA. Его суть заключается в том, что «сглаживание» производится постфактум — уже после того, как изображение было создано. У этого метода есть и недостатки — например, нестабильность изображения, вызванная разницей между двумя следующими друг за другом кадрами после обработки. К тому же при использовании PPAA часть изображения может стать чересчур «сглаженной», или, наоборот, остаться «острой».

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

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

Однако технология TAA (Temporal Anti-aliasing) обостряет проблему перехода между кадрами, о которой было сказано ранее. С ней разработчики борются при помощи старого доброго «размытия» (blur), столь нелюбимого многими игроками. По мнению эксперта Digital Foundry, от «блюра» нам никуда не деться — по крайней мере, пока мы не сможем позволить себе несколько тысяч кадров в секунду.

В финале видео эксперт составляет краткую памятку для тех, у кого возникают проблемы с выбором метода «сглаживания».

SSAA — отличное качество, но очень требователен.

MSAA — полезен лишь в отдельных случаях, сейчас встречается редко.

TAA — отличное качество, не так требователен, как SSAA, но знаменит «блюром» и проблемами при переходе между кадрами.

PPAA — нормальное качество, не требователен, рекомендуется использовать в сочетании с каким-либо другим методом.

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

Согласен, статья хреновенькая, все настолько вкратце, что вообще ни о чем. Все просто намешано в кучу. Текста с гулькин нос, да еще и вперемешку со скринами с пережатого видео или вообще растянутых с не-пойми-какого исходного разрешения. PPAA — это что? Понятно что пост-процессинг, но этих алгоритмов минимум штуки четыре можно насчитать. Чем FXAA отличается от SMAA? Что такое MLAA? Что такое *aa_type_here*? Ни слова про АА для альфа/масок. Блин, это даже в "блогах". Это не уровень DTF! АЛЯРМ!

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

Вот весьма неплохой обзор. Пусть название не обманывает, там разбираются и пост-процессинговые. Хватило, чтобы восполнить знания при подготовке к собеседованию 🙂
https://mynameismjp.wordpress.com/2012/10/24/msaa-overview/

Годно, спасибо. 🙂 2012 канеш, но все равно норм.

Большое спасибо. К собеседованию, увы, не готовлюсь, но для самообразования подойдёт.

https://stopgame.ru/blogs/topic/55929
У этого же автора есть еще несколько интересных статей про графику в играх

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

Наиболее подробное изложение из тех, что я видел:
https://habr.com/post/343876/

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

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

Про MSAA допущена некоторая неточность, а вернее какая-то каша из morphological anti-aliasing и SSAA.
Multisample anti-aliasing не совсем про выборочное увеличение точек на границах. Увеличение выборки происходит в любом случае, но вот затенение(shading) происходит для ОДНОЙ точки в центре фрагмента, а конечное значение получается в зависимости от количества точек прошедших растеризацию, однако тест глубины и прочие выполнять приходится все равно. Отсюда и выигрыш, поскольку самую затратную часть — фрагментный шейдер — выполняем один раз на точку, как и без AA.

В случае deferred рендеринга шейдерить придётся, читая информацию каждого СЭМПЛА геометрии, каждый раз для КАЖДОГО источника света, что выльется в огромные потери производительности (привет mankind divided)

Проблемы deferred shading-а и "классических" методов сглаживания — тема отдельного обсуждения, но за дополнение спасибо.

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

По логике — как раз должно. На мобилах в первую очередь, потому что там разрешение (дпи) еще круче. Но в железо уже вложились, так что какое-то время будет и то и другое. 🙂

Думаю, что нет, не отомрет, как минимум по той причине, что алиасинг возникает не только из-за низкого разрешения. Временное сглаживание, mip-уровни, вот это все не просто так изобреталось.

Ещё здорово бы помог переход с прямоугольной растровой сетки дисплеев на гексагональную. Автоматическое уменьшение алиасинга и увеличение ДПИ. Но это слишком радикальное технологическое и производственное решение.

Если железо будет не напрягаясь тянуть 4K, она и FullHD с честным SSAA потянет. Так что будущее главным образом за производительностью.

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

SSAA, увеличивающий количество всех пикселей в четыре раза.

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

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

Vsync — далеко не такая простая тема, как кажется с первого взгляда, поэтому не увидительно, что не знают. Даже якобы продвинутые пользователи в 9 из 10 случаев до конца не понимают специфику работы вертикальной синхронизации: как конкретно она работает; чем отличается от обычного лимитирования кадров; в каких случаях увеличивает задержку ввода, а в каких — нет; в каких случаях вызывает "неровную" частоту кадров. А уж если копнуть тройную буферизацию, то там вообще темный лес.

Встречал статьи в относительно авторитетных источниках, в которых писалось, что vsync нужен только если частота кадров ниже, чем частота развертки, например. Что вообще не соответствует действительности.

До сих пор не понимаю разницы между разными вариантами затенения. Где-то тени потемнее, где-то поярче. Вычитал что HBAO это для нвидии, ставлю это.

Посмотрел на скрины и снова убедился, что при высоком разрешении в сглаживании нет нужды в принципе. А на низком — SweetFx Lumasharpen + Nvidia Fxaa в помощь.

Олсо, для более наглядного представления о видах сглаживания можно скачать и потыкать вот эту демку http://blog.metaclassofnil.com/?p=851

Есть блюр, а есть мыло — небо и земля.

Комментарий удален по просьбе пользователя

Кому как, я правильное taa с небольшим мылом больше предпочитаю, чем отвратительную рябь тебе текстур без него. Впрочем в ряби виноваты опять те же разрабы, что которые делают запредельную texel density, но, думаю, на это есть причины.

Рябь текстур? Вы в каком разрешении и с каким скейлом играете? Я часто 2,5К выкручиваю до 5к через NVidia DSR 4х и всё равно не вижу никакой ряби.

у меня gtx1060, какие там 2.5к =/ на 1080p дай бог поиграть. А рябь/муар как раз появляется когда разрешение текстуры больше, чем разрешение выводимое на монитор. Как раз таки в вашем случае, а так же в случае суперсемплинга это и не должно быть/проявляется минимально. Ну и mip уровни текстур тоже немного спасают.

Так зачем тогда выкручиваете детализацию текстур более нужного? Ваша проблема только в этом. 😉

Потому что могу ¯\_(ツ)_/¯ Да и совсем вблизи не так мыльно. От игры зависит на самом деле, я люблю потратить часик на перебор разных комбинаций, посмотреть что делает та или друга настройка. Как правило taa+высокие текстуры всё равно выигрывают у других вариантов по отношению качество/производительность.

В 1080p включать taa вообще не вариант. Возврат в эру пс3. А вот в 4к уже можно выбирать — крайне четкая картинка без сглажки или cgiная картинка с taa, но с худшей детализацией. Причем не обязательно 4к честные, вполне сойдёт и 1080п + резолюшен скейлинг.

MSAA — полезен лишь в отдельных случаях, сейчас встречается редко

Разве на мобилках не его используют?

Большинство мобильных девайсов не поддерживают новомодный deferred рендеринг, и до сих пор остаются на forward рендеринге, и потому ничего не мешает продолжать использовать такой удобный и относительно дешёвый msaa

tl;dr: алиаляйзинг — это когда тебя в жопу ебут.

сраливкулак в другой стороне

Для себя проблему сглаживания решил просто — 4k телек и FXAA принудительно. В итоге всё, что идет в 1080p выглядит лучше, чем в нативном разрешении, а для 4k в абсолютном большинстве случаев картинка более чем приятная и без сглаживания по дефолту.

Сейчас бы об антиалиасинге рассказывать в 2к18.
Как будто что-то изменилось с 2к11 года или статьи тех времен устарели(нет).

Алиасинг с переходом между кадрами описан автором неверно. Описанное двоение изображения в соседних кадрах, во-первых, не является резким и соответственно алиасингом. А во-вторых, у этого эффекта уже давно есть другой правильный официальный термин: ghosting. И бывает он из-за двух вещей. 1. инерционности зрения (а она у всех разная). 2. типа и качества матрицы монитора/ТВ. Например, все типы, кроме TN, в 95+% реализаций начинают рисовать новый кадр не дожидаясь, пока полностью нарисуется предыдущий. Т.е., пока не зажгутся абсолютно все пиксели. В смысле, что самых медленных — не ждут. Поэтому, смотрите в обзорах на разлёт показателей измеренной скорости зажигания и тушения пикселей от минимальных до максимальных и это (чем больше — тем хуже) вам подскажет, какие примерно двоения и шлейфы вам ждать от такого монитора.

Лично мне для игры SMAA хватает. В отличии от FXAA, MLAA и TXAA, он не мылит картинку (хотя конечно зависит от рук разработчика).

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

Усугубляет положение вещей еще и мода на "закрытие" игровых движков, где даже тупо консоль вызвать нельзя.

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

MSAAx4 никогда не был "прекрасным выбором". Он был приемлемым выбором. Лесенки полностью не убирает, а по производительности бьет ощутимо. Не даром при низкой производительности всегда первейшая рекомендация была "выключить АА".

На что влияют настройки графики в играх, и как повысить fps, сохранив лучшее качество

Разбираемся, чем отличается SMAA от MSAA, и почему анизотропную фильтрацию чаще всего можно не снижать.

Материал подготовлен при поддержке Dell Technologies

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

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

По данным Steam, в Топ-10 самых распространённых видеокарт входят в основном модели начального и среднего сегментов — исключение составляет предфлагман прошлого поколения GTX 1080 на 8 месте (2,37% от общего числа). Актуальные топы вроде GeForce RTX 2070 Super или выше встречаются не выше 12 места, а RTX 2080 Ti имеют и 0,88% от пользователей Steam).

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

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

Этот материал подготовлен при поддержке Dell Technologies. В своих игровых ноутбуках серии G она старается соблюдать баланс цены и производительности. О самой новой модели, G3 3500, мы рассказываем в конце материала. Этот гайд поможет играть в любые игры на ней и других компьютерах наиболее комфортно.

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

Для этого можно использовать встроенную в Windows 10 игровую панель Game Bar — при нажатии комбинации Win+G откроется меню, в котором можно вывести на экран простую статистику использования процессора, видеокарты и оперативной памяти.

Для большинства задач этого должно хватить — если видите, что какой-то из компонентов постоянно загружен на 100%, значит, нужно немного облегчить ему работу.

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

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

Каждый аспект происходящего на экране зависит от определённого компонента системы. Если упростить, процессор руководит тем, что «рисует» видеокарта, обеспечивает работу интерфейса, реализует искусственный интеллект и считает числовые показатели (например, траектории полёта пуль и урон от попадания).

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

Из всех настроек графики на процессор влияют только те, от которых зависит количество объектов на экране. Эти настройки есть не во всех играх, но до некоторых можно добраться через файлы игры (например, количество частиц в Fallout и The Elder Scrolls).

  • Дальность прорисовки (в играх с открытым миром)
  • Растительность
  • Количество NPC (например, «размер отряда» в серии Total War)
  • Частицы — этот параметр есть не во всех играх и может означать разные вещи например, пыль в воздухе

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

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

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

  • Разрешение — чем выше разрешение рендеринга, тем больше пикселей видеокарта должна выводить на экран. При переходе с 1080p на 1440p количество пикселей увеличивается на 70%, а в 4К — в 4 раза.
  • Качество текстур — этот параметр в основном зависит от объёма видеопамяти, нежели от производительности графического процессора. Если вы замечаете, что текстуры на объектах не успевают прогрузиться, значит, они слишком тяжёлые и видеокарта не может держать на готове все необходимые ресурсы. Для современных игр желательно иметь не менее 4 ГБ видеопамяти.
  • Сглаживание (Anti Aliasing) — применяется для того, чтобы скрыть «лесенки» по краям объектов. Существует несколько способов сглаживания с разным эффектом и разной требовательностью, мы рассмотрим их отдельно.
  • Глобальное освещение — общий термин, который обозначает симуляцию реалистичного освещения. Сюда входят и классические методы, и трассировка лучей в реальном времени, но на производительность освещение влияет в любом случае.
  • Объёмные лучи и туман (Volumetric Lighting/Fog, God Rays) — техноллогия создания выразительных эффектов вроде отдельных лучей света, проходящих через окно или облаков густого тумана/пыли которые реалистично перекрывают видимость. Это одна из самых требовательных настроек графики.
  • Детализация (Level of Detail) — определяет не количество и качество проработки мелких деталей на объектах, а расстояние, на котором они будут отображаться. Для каждого объекта в игре существует несколько моделей с разной степенью детализации, которые сменяют одна другую в зависимости от близости к игроку и видимости. Низкое значение LoD уменьшает проработку объектов в отдалении и хорошо сказывается на частоте кадров, но может привести к внезапному появлению деревьев и пресонажей прямо на глазах у игрока.
  • Отражения — бывают как симулированные (Screenspace), так и с сипользованием трассировки лучей (DXR). В первом случае на «отражающей» поверхности появляется текстура отражения при условии, что отражаемый объект также находится в кадре. Реалистичные отражения с трассировкой работают в пределах всей сцены и могут оражать даже то, что в кадр не попадает, но намного более требовательны к железу.
  • Тени — как и отражения, бывают статичными («запечёнными») и процедурнми, которые генерируются при помощи трассировки лучей. Тени с трассировкой требуют намного больше производительности и работают не на всех видеокартах.
  • Фоновое затенение (Ambient Occlusion) — существует несколько технологий для создания «контактных» теней и наложения теней друг на друга. «Окклюзиями» называется наложение теней от других объектов, тогда как стандартными методами в играх расставляются только тени, отбрасываемые непосредственно самими объектами. Технология Horizon-Based Ambient Occlusion (HBAO/HBAO+) достаточно требовательна при условии, что в игре много объектов, к которым применяется фоновое затенение.

Отключение этих параметров на современных ПК не даёт ощутимого прироста производительности. В зависимости от игры и конфигурации железа можно выиграть до 10% fps, но оно того не стоит.

  • Размытие в движении (Motion Blur), хроматические аберрации и зернистость (Film Grain) — фильтры, призванные добиться «кинематографичного» эффекта. Они симулируют эффекты, присущие съёмке на киноплёнку и не наносят критического вреда производительности.
  • Фоновое затенение (Ambient Occlusion) — если в игре много мелких объектов и помещений со сложной геометрией, HBAO может сильно нагружать видеокарту. Тогда можно переключиться на SSAO — намного менее требовательную альтернативу, которая не всегда работает корректно из-за достаточно примитивного алгоритма, но всё равно делает объекты более объёмными, чем совсем без затенения.
  • Тесселляция — позволяет улучшать качество текстур. Каждый полигон на изначальной модели процедурно разбивается на несколько, благодаря чему визуально объект становится более детализированным. В современных видеокартах для этого есть отдельные блоки, поэтому на производительности процесс сказывается незначительно.
  • Глубина резкости (Depth of Field) — симуляция оптического эффекта, который обычно используют в кино или на фотографиях. «Главный» объект находится в фокусе, а фон — размывается, чтобы сконцентрировать внимание зрителя. Чаще всего это эффект не очень сильно сказывается на производительности, и его использование в основном зависит от предпочтений игрока.
  • Анизотропная фильтрация — в некоторых играх есть возможность выбрать опции Bilinear или Trilinear Filtering, но это устаревшие технологии, которые заменила анизотропная фильтрация. Фильтрация улучшает видимое качество текстур на объектах, расположенных под углом и создаёт плавные переходы между разными уровнями проработки текстур в зависимости от дальности. Чем выше уровень (до х16), тем острее может быть угол, под которым игрок смотрит на объект, чтобы на нём сработала фильтрация

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

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

  • SSAA (Super Sampling Anti Aliasing) — один из первых способов сглаживания но до сих пор в числе наиболее эффективных. Технология заставляет видеокарту рендерить изображение в более высоком разрешении, а потом сжимает до разрешения экрана. Основной недостаток — затраты ресурсов получаются огромные, и эффективным SSAA можно считать только на очень мощных ПК.
  • MSAA (Multi Sampling Anti Aliasing) — с каждого пикселя собирается несколько проб (до 8х) цвета в разных местах. Если одна или больше проб оказывается другого цвета, система выбирает «промежуточный» оттенок. Анализ и сглаживание применяется точечно только к границам объектов, поэтому влияние на производительность ниже, чем у SSAA.
  • MFAA (Multi-Frame Sampling Anti Aliasing) — вариант MSAA от NVIDIA, в котором несколько проб распределяются по соседним кадрам. Результаты аналогичны MSAA, но на фреймрейте эта технология сказывается слабее, так как видеокарта анализирует данные последовательно, а не одновременно.
  • FXAA (Fast-Approximate Anti-Aliasing) / MLAA (Morphological Anti-Aliasing) — варианты сглаживания при помощи постобработки от NVIDIA и AMD соответственно. Видеокарта рендерит изображение без изменений, но перед отображением на экране к готовому кадру применяется фильтр, который размывает края объектов. Этот процесс практически не сказывается на fps, но и результат получается достаточно сомнительный.
  • SMAA (Sub-Pixel Morphological Anti-Aliasing) — метод сглаживания, который применяет анализ границ объектов (как MSAA), но при постобработке (как FXAA). В результате — немного требовательнее, чем FXAA, но границы получаются менее размытыми.
  • TAA (Temporal Anti Aliasing) — метод постобработки при котором система анализирует один или несколько предыдущих кадров. Этот метод лучше всего борется с мерцанием по краям движущихся объектов, но приводит к «замыливанию» и артефактам на границах. Немного требовательнее, чем FXAA. Некоторые игры предлагают дополнительный фильтр, который добавляет картинке резкости после применения TAA.
  • TXAA (TAA + MSAA)— технология от NVIDIA, которая комбинирует суперсемплинг по двум или четырём точкам с временным сглаживанием. Размытие на границах получается минимальным, изображение описывают как «мягкое» и «кинематографичное». Требовательность ниже, чем у MSAA и SSAA, но выше, чем у других описанных методов.
  • NVIDIA DLSS 2.0 (Deep Learning Super Sampling) — единственный способ сглаживания, который улучшает, а не ухудшает производительность. Видеокарта рендерит изображение в более низком разрешении, чем требуется, а потом увеличивает и сглаживает картинку при помощи аналога TAA и нейросети, которая работает на отдельных тензорных ядрах. Поддерживается только видеокартами GeForce RTX 2060 и выше.

Наиболее предпочтительным способом сглаживания без сомнения можно назвать DLSS 2.0, но его поддерживает не так много видеокарт и в небольшом количестве игр. В остальных случаях стоит рассматривать MSAA, TXAA и SMAA — для каждой игры лучший вариант по соотношению качества и производительности будет свой.

В ноутбках Dell G3 3500 — процессоры Intel Core 10-го поколения и графика GTX 1650, 1650 Ti, 1660 Ti или RTX 2060. «Оперативки» – 8 или 16 ГБ. А система хранения данных может состоять как только из SSD, так и из связки SSD+HDD. И её, и «оперативку» можно апргрейдить самостоятельно: если в процессе ничего не сломается, то Dell за это не лишит гарантии.

У модели много портов, в том числе Thunderbolt 3. А учитывая универсальный дизайн и компактные размеры, ноутбук можно использовать и как игровой, и как рабочий лэптоп сразу.

Объёмные лучи и туман (Volumetric Lighting/Fog, God Rays) — технолллогия создания выразительных эффектов

Это как ААА, только техноЛЛЛогия?
Автор, поправь (¬‿¬)
Upd. Всё ещё много "л", там должна быть одна

Комментарий удален по просьбе пользователя

да, у g3 с этим капитальные проблемы

Вот с этим, к слову, так и не столкнулся в отличие от проблемы с петлями. Не знаю, может, подставка спасает (самая дешёвая какая была в днс). Температурный максимум в районе 80 наблюдал только в Одиссее и других играх от Юби, в фуллхд и на максималках. Остальное время крутится в районе 70-75 и ниже. Андервольтинг, тоже к слову, почти никакого влияния не оказал.

«лучше в полноэкранном, чем в окне»
WAT?

Сколько помню, игры у меня всегда лучше работали в полноэкранке.

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

Визуальных отличий быть не должно.

Что значит быть не должно если они есть?

Значит что у тебя что-то глючит или ты чего-то не понимаешь.

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

У нас ситуация крайне простая, мы все купили машину и у всех она едет кроме тебя. Следовательно у тебя что-то не так, вот и разбирайся. Потратил он время блин.

Чел, ты просто бесполезный, от тебя толку 0. Я не просил совета, и у меня все классно работает, так что лесом братюнь, тебя там заждались.

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

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

Помню на прошлом стационарнике в оконном режиме тоже заметно лучше некоторые игры работали. Там стоял Radeon r7 240. Так что возможно.

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

а всякое японское все еще не умеет в borderless, да и разрешение берет не любое поддерживаемое, а какое задали.

DX12 полноэкранный и оконный одинаково работают. На DX11 оконный может быть лучше, но для это нужно использовать специальный инжектор. Если интересно гуглить по "flip model, swap chains"

Работает в 90% играх

помню, ты сейчас проверь. У меня в дивзии нет такого

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

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

эм, ты если кликаешь по окну игры, то она перехватывает приоритет :/

только что катал в Division на одном мониторе игра на другом браузер, кликнул на браузер 10 фпс, кликнул обратно в игру снова 60 фпс. Что в окне, что в фуллскрине одинаковый фпс. Ну и что ты мне ответишь?

как связаны активное окно и эксклюзивный доступ?

то что ОС давно не работают по вышеописанному алгоритму, приоритет ЦП и ГП меняется динамически в зависимости от того что сейчас юзает юзер. Иначе по твоей бы логике в окне игра бы теряла фпс (чего она не делает, тк я проверил)

ах ну раз ты проверил)) 60? ровно 60? может 60.0746?
заодно википедию проверь.

я проверил в бенячмарке, гений ровно одинаковые значения

Ясно. Очередной гайд для пека плебсов. Нормальные люди просто вставляют диск и играют.

900р это столько кейсы с ножами в пека экзах стоят.
У нас игори 4700р уже.

Давай рассмотрим на примере одной популярной игры, насколько ты не прав. Как я запускаю игру? Нажимаю включить комп, он грузится быстро, даже поссать не успеваю сходить. Нажимаю запустить игру и она запускается. Всё тоже быстро, слава быстрым сисдюкам на PCIe! Пока хожу есть на кухню, братишка сворачивает колду и играет в ГТА5. Почти всё на максимуме запускаю в 1440p, фпс ниже 120 не видел. Консоли могут так? Стоит ли напоминать, что улыбка счастья появляется на лице, когда вижу челиков с геймпадами в лобби?)) В общем, PCMR, да.

Спасибо за статью и простите за оффтоп, но хотелось бы сказать пару слов конкретно об этом ноуте (пишу этот коммент именно с данной модели, взял в ситилинке где-то в марте). Это, безусловно, отличная машина, лучшая из всех, которые я видел (я видел не очень много) в бюджетном игровом сегменте, и даже охлаждение совсем не так плохо, как о нем пишут (есть центр управления питанием и в штатном режиме в том же АС Одиссее можно спокойно играть на температурах в районе 65-75 на 900-1080р, 40-60 фпс, да и в целом новые игры идут быстро и холодно, до 80 не доходит. Правда, есть дешевая китайская подставка, использую ее), НО есть вопиющие проблемы с качеством материалов для сборки. У меня и у людей с реддита (и в целом интернетов, погуглите "dell g3 3500 hinge", если хотите) спустя меньше чем полгода с момента покупки сломались петли крышки просто от открывания-закрывания! Причем гарантийный ремонт ничем не поможет, потому что проблема не в браке, а в крайне неудачном выборе креплений — не представляю совершенно, кому и как вообще могло придти в голову сажать достаточно массивные и находящиеся под постоянной нагрузкой детали на такие короткие винты, больше похожие на заклепки. Замена сломанных деталей на такие же приведет только к повторению ситуации спустя еще полгода. Я, честно говоря, в тупике из-за этой ситуации — мне очень нравится ноутбук, внешне и внутренне, кроме того я в некотором роде поклонник компании Dell, и я совершенно не хочу менять его на что-то другое, однако чтобы полноценно пользоваться им в дальнейшем, видимо, придется разработать какое-то собственное инженерное решение вроде полной замены креплений на что-то более массивное. Пока что просто держу его открытым, благо работы нет и сижу дома.

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

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

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

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

был у меня ноут, где всё это отвалилось и при бережном открывании) только он родом из 2007го

Это проблема не только делла, у меня в мси была такая же петрушка, за ноутом следил, а петли рассыпались, в итоге ушел на предаторы, и с тех пор (а уже успел сменить 2 ноута) таких проблем не встречал.

Статья неплохая, но самое полезное в ней, что после прочтения я понял, что пора к офтальмологу записаться. Поскольку не сумел явных различий увидеть ни на картинке с орлом, ни где 4к с dlss сравнивают

Так по картинкам мало толку сравнивать. А когда, собственно, играешь всюду лесенки "ползают" и "отсвечивают" — вот тогда и понимаешь насколько всё плохо.

наоборот же. При игре ты постоянно в движение и на лесинки тебе честно говоря пофиг, а вот на скриншотах они всплывают

При игре ты постоянно в движение и на лесинки тебе честно говоря пофиг.

Это аргумент мультиплеерщиков. Я с ним не спорю, но и не понимаю почему его тащат в подобные обсуждения.

Какого мультиплеерщика? Я вообще не могу играть в сетевые игры больше 1дня, ибо играю как журналист в них

С dlss я тоже не увидел. Но я смотрю с телефона и там же микроскопические картинки.

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

ни где 4к с dlss сравнивают

Так ведь отлично же. Длсс позволяет иметь раза в 2 больше фпс, чем при рендере в нативные 4к.

Так а какое у тебя зрение?

Тесселляция — позволяет улучшать качество текстур

FXAA (Fast-Approximate Anti-Aliasing) / MLAA (Morphological Anti-Aliasing) — варианты сглаживания при помощи постобработки от NVIDIA и AMD соответственно.

Алгоритм MLAA и его описание, впервые опубликовала Intel: Morphological Antialiasing (PDF) by Alexander Reshetov (Intel).
AMD лишь встроила опцию в драйвер.

Тени — как и отражения, бывают статичными («запечёнными») и процедурнми, которые генерируются при помощи трассировки лучей.

Теневые объёмы, шэдоумапы к каким из двух относятся?

Отражения — бывают как симулированные (Screenspace), так и с сипользованием трассировки лучей (DXR).

Планарные и кубмап к каким из двух относятся?

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

Классические это какие именно? Light probes, LPV? Оно теперь, после появления rtx, всё в кучу, в т.ч. по производительности?

Качественный

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

Большинство современных графических процессоров поддерживают сэмплы 2 ×, 4 × и 8 × MSAA. Более высокие значения дают лучшее качество, но медленнее.

Ссылка на основную публикацию