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

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

Пространственный алиасинг

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

Как включить сглаживание для Minecraft | Сделайте Minecraft более плавным

tri | Всё, что вы хотели знать про АнтиАлиасинг
Рис. 1. Лесенки на границах полигона.

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

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

Темпоральный алиасинг

Аналогично, темпоральный алиасинг — это тот, который проявляет себя только во времени.

Виды АнтиАлиасинга и немножко истории

  • Поскольку алиасинг появляется из-за низкой частоты дискретизации, то первая, и наиболее простая идея — сделать выборку с большей частотой, а затем применить фильтрацию. Этот подход называется OverSampling и подробно разобран в первой главе. Одна из вариаций, называемая MultiSampling (MSAA) и реализованная хардварно, в начале нулевых стала де-факто стандартом индустрии почти на 10 лет. К сожалению, она доставляет много хлопот в сочетании с отложенным освещением, которое начало пользоваться популярностью к концу декады, а потому стала требоваться альтернатива.
  • Она нашлась с появлением MLAA (Morphological Antialiasing). Этот метод предлагал принципиально иной подход и породил настоящий бум подобных техник в 2009-2011 годах. Все они так или иначе основаны на постобработке уже готового (несглаженного) изображения. Некоторые из них реализованы в виде независимой стадии-фильтра (раздел 2.1), другие же требуют сбора дополнительной информации во время рендера, дабы помочь решить задачу аналитически (раздел 2.2). Но обе группы методов отлично показывают себя только на статических изображениях, а в динамике часто страдают из-за темпоральных эффектов.
  • Наконец, третий и наиболее новый подход — темпоральный антиальясинг — как раз призван решить эту проблему. Он чем-то похож на оверсэмплинг, но не делает дополнительных выборок, а использует для тех же целей информацию с предыдущих кадров. Трудностям, связанным с таким подходом, уделён третий раздел данной статьи.
Читайте также:  Как сделать в Майнкрафте фрукты

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

1. Оверсэмплинг

SSAA

MSAA

CSAA и EQAA

2.1 Постпроцесс-фильтры

Источник: gamedev.ru

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

Обложка: Сглаживание в играх: как разработчики делают картинку приятнее и какой тип сглаживания выбрать?

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

Зачем нужно сглаживание в играх?

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

pixel notches

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

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

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

pixel lines

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

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

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

SSAA (SuperSample Anti-Aliasing)

Самый простой, но в то же время самый эффективный тип сглаживания, который в играх даёт самую приятную картинку. К сожалению, он сильно снижает производительность. Видеокарта виртуально увеличивает разрешение экрана в несколько раз. После отрисовки кадра изображение сжимается обратно до оригинальных размеров, усредняя цвета виртуальных пикселей в соответствующие им реальные пиксели. Если разрешение экрана Full HD (1920×1080), а сглаживание работает в четырёхкратном режиме, то кадр будет отрисовываться в разрешении 4K (3840×2160).

Примечание Усреднение пикселей — это просто нахождение среднего цвета от нескольких виртуальных пикселей. Например, в SSAA x 4 разрешение увеличивается в два раза. Тогда каждому реальному пикселю будут соответствовать 4 виртуальных. Вот примеры того, как будет происходить усреднение:

averaging colors

Примеры усреднения цветов

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

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

Однако иногда в настройках может попасться сглаживание SSAA x 0,5. При его использовании разрешение изображения виртуально уменьшается в два раза, а при отрисовке на экран обратно растягивается. Качество картинки в таком случае ухудшается, а вот производительность игры наоборот увеличивается.

Читайте также:  Как сохранить точку дома в майнкрафте

MSAA (MultiSample Anti-Aliasing)

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

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

Сглаживание в играх: MSAA

Результат четырёхкратного сглаживания MSAA

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

FXAA (Fast approXimate Anti-Aliasing)

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

Сглаживание в играх: FXAA

Результат сглаживания FXAA

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

Блокнот, Excel и осциллограф: где ещё можно делать игры? Подборка игр на необычных движках

Блокнот, Excel и осциллограф: где ещё можно делать игры? Подборка игр на необычных движках

MLAA (MorphoLogical Anti-Aliasing)

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

mlaa

Принцип разбиения изображения на структуры. Источник

MLAA определяет места с резким переходом цветов по 3 разным паттернам: Z, U и L. Потом участок градуируется по цветам по заранее заданным алгоритмам, свойственным каждому из паттернов.

SMAA (Subpixel Morphological Anti-Aliasing)

Это сглаживание, созданное на основе FXAA и MLAA. Является улучшенной версией MLAA, но работает уже не на ЦП, а на видеокарте, а значит, тратит её ресурсы.

Теперь для определения контуров алгоритм использует не только разность цветов, но и яркость пикселей. Паттерны Z, U и L остаются, а вдобавок к ним появляются диагональные паттерны. Это помогает точнее отрисовывать острые грани объектов.

smaa

Результат сглаживания SMAA. Обратите внимание на дерево и листья у здания

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

TXAA/TAA (Temporal Anti-Aliasing)

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

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

taa

Результат работы сглаживания TAA

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

DSR (Dynamic Super Resolution)

Сглаживание тоже прямиком от Nvidia. Алгоритм похож на SSAA. Разница в том, что DSR просто запускает игру в бОльшем разрешении экрана. После этого, как и SSAA, он отрисовывает кадр, а затем уменьшает картинку до оригинального разрешения.

Читайте также:  Лучший ресурс пак для Майнкрафт пе

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

CSAA/CFAA (Coverage Sampling Anti-Aliasing/Custom-Filter Anti-Aliasing)

Улучшенная версия MSAA. Даёт качество картинки на уровне MSAA x 8, но при этом потребляет ресурсов, как MSAA x 4. Замыливания почти нет.

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

csaa

Результат восьмикратного сглаживания CSAA

Примечание Многие алгоритмы сглаживания во время обработки изображения учитывают не только соседние пиксели, но и отдельно их субпиксели (да-да, те самые R, G и B каналы) — всё зависит от строения и особенностей матрицы вашего монитора.

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

tproger-ct

Технология субпиксельного рендеринга Clear Type

Какое сглаживание выбрать в игре?

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

Если ваш компьютер более бюджетный, всегда есть варианты использования FXAA, MLAA или MSAA.

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

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

Источник: tproger.ru

Что такое антиалиасинг?

Антиалиасинг( оригинальное название на англ. Anti-aliasing)- на русском более известна как «технология сглаживания». Это название можно много где встретить, например в играх.

Подробнее:

«Алиасинг»- резкое изменение в визуальной информации, мешающее воспринимать её как что-то непрерывное. Например резкий переход пикселей. Самый распространённый тип «алиасинга» известный всем геймерам-«лесенка».

автор вопроса выбрал этот ответ лучшим
комментировать
в избранное ссылка отблагодарить
[поль­ зоват­ ель забло­ киров­ ан] [23.9K]
8 лет назад

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

комментировать
в избранное ссылка отблагодарить
8 лет назад

Антиалиасинг применяется в 3D играх. Это сглаживание границ между двумя разными цветами. Примерно также, как сглаживаются края в картинке, сохраняемой в jpeg формате. Если антиалиасинг выключен, можно наблюдать лесенку из пикселей. А если он включен, то всё размывается, примерно также, как размывается, если смотреть сквозь тёплый воздух над костром.

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

Источник: www.bolshoyvopros.ru