No Image

Что такое сглаживание в играх

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

Здравствуйте, уважаемые читатели блога Pc-information-guide.ru. Поскольку среди моих читателей наверняка есть те, кто играет в компьютерные игры, я решил посвятить сегодняшнюю статью игровым настройкам, а конкретно сглаживанию и другим важным параметрам, в той или иной степени оказывающим влияние на производительность видеокарты. Поэтому сегодня мы с вами будем разбираться, как и какие настройки влияют на производительность видеокарты.

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

Конечно, многое зависит от разрешения (Resolution) как такового. Простым изменением разрешения на одну ступень ниже можно добиться прироста производительности в 30-40%. Однако при этом, независимо от остальных настроек, картинка на экране будет выглядеть "замыленной". Поэтому самую "вкусную" картинку в игре можно получить, если разрешение соответствует максимальному разрешению (стандартному заводскому) монитора.

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

Есть такая штука, как Ambient Occlusion (глобальное освещение), см. фото выше. Это технология, которая просчитывает как объекты отражают свет, который на них падает, и как близко расположены объекты, затеняя друг друга.

Это создает гораздо более реалистичную картинку с необходимыми затенениями в углах, но ОЧЕНЬ нагружает видеокарту. На сегодняшний день эта технология доступна в двух вариантах: чуть более простой SSAO (Screen Space Ambient Occlusion) и гораздо более продвинутый и прожорливый HBAO (Horizon-Based Ambient Occlusion).

Есть еще Анизотропная фильтрация (anisotropic filtering, AF) или фильтрация текстур. Она нужна для того, чтобы текстуры, которые находятся под углом или далеко от камеры не выглядели слишком мутными и на них не было никаких цветовых артефактов.

Чем выше значение – тем лучше результат фильтрации, однако сразу скажу – эти значения можно выкручивать сразу на "16x", т.е. на максимальное, и это никак не отразится на производительности даже самой бюджетной видеокарты.

Про сглаживание в играх

Сглаживание (anti aliasing). Что же такое сглаживание? Вы наверняка в играх довольно часто встречались с тем, что у объектов, которые должны в принципе выглядеть ровно и гладко, на краях появляются какие-то непонятные лесенки и зазубрины. Естественно, разработчики игр и видеокарт об этой проблеме знают, поэтому и появилась технология, которая называется "сглаживание", она и нужна чтобы эти неровности сгладить (что очевидно).

Существует довольно много методов осуществить сглаживание. Первый из них взаимодействует с изображением еще на уровне его построения. К первому методу относится: способ сглаживания SSAA (Supersample anti-aliasing) и MSAA (Multisample anti-aliasing), и еще между ними недавно затесался CSAA (Coverage Sampling Antialiasing) – последний, нечто среднее по производительности и по качеству.

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

Но, к счастью для нас, есть второй метод, который основан на так называемой пост-обработке, т.е. когда сглаживание применяется уже к сформированной сцене. К этому методу относятся уже 3 способа сглаживания: FXAA (Fast approXimate Anti-Aliasing) – по качеству сравним с четырех кратным MSAA сглаживанием, но при этом он не создает вообще никакой нагрузки на видеокарту, ну или настолько малую, что ее практически незаметно. Правда у FXAA есть один небольшой минус – при этом совсем слегка замыливаются текстуры. На глаз это почти незаметно.

Но если вам это мыло прям режет глаза, для вас есть второй способ SMAA (Sub-pixel Morphological Anti-Aliasing), он дает чуть меньшее размытие, но и настолько же меньшее качество сглаживания, при том, что все так же не нагружает видеокарту. И наконец третий способ – TXAA (Temporal anti-aliasing, если я правильно понял, доступно только на видеокартах от Nv >

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

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

  1. когда применяются в момент формирования и построения сцены.
  2. когда используется фильтр к уже готовому изображению (постобработка).

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


Начнем с того, что AA (Anti-Aliasing, Сглаживание) — способ устранения "ступенчатости" на краях объектов, линий, которые находятся под наклоном и не являются ни строго вертикальными и ни строго горизонтальными. Особенно "лесенка" заметна на стыках полигонов с разными цветами.
В играх может использоваться, когда видеокарте не хватает мощности для вывода изображения в высоком разрешении, где все детали плавные и приятны глазу. Если AntiAliasing отрабатывает хорошо и качественно, то из-за этого страдает производительность, падает фпс в играх. Если сглаживает плохо, то страдает графика, появляется замыливание картинки, артефакты. Поэтому, если есть возможность играть при высоком разрешении и фпс при этом падает не на много, не включайте AA, играйте на высоком. Так же из особенностей, сглаживание "лесенки" может быть включено на уровне настроек видеокарты и при этом еще и на уровне приложений. Эффект при этом "усиливается", если используется первый и второй тип сглаживания. Поэтому если собрались испытывать антиальясинг, убедитесь чтобы оно было включено где то в одном месте, дабы не получить замыленность.

Читайте также:  Шокер для самообороны отзывы

Первый тип

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

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 и завязана на суперсэмплинг.

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

FXAA (Fast approXimate Anti-Aliasing, Быстрое приблизительное сглаживание) — разработка NVidia. Из названия видно, что это более производительное сглаживание по-сравнению с традиционным MSAA. Алгоритм использует простой способ обнаружения разрыва цветов фигур. В момент вывода изображения на экран усредняются по цвету все соседние пиксели. Это не нагружает видеокарту, но жутко мылит кадр. Далекие и затуманенные объекты в игре будут почти не узнаваемы. Такое сглаживание имеет смысл включать на слабых машинах, ноутбуках, нетбуках и прочих эконом вариантах.

MLAA (MorphoLogical Anti-Aliasing, Морфологическое сглаживание) — условный аналог FXAA. Методика придумана компанией Intel. Алгоритм, ищет пиксельные границы на каждом кадре, похожие на Z, L и U буквы и смешивает цвета соседних пикселей, входящих в каждую такую часть. Алгоритм переведен на использование процессора, а не GPU. Отсюда можно рекомендовать его обладателям слабых видеокарт и с более менее производительным процессором. Из-за более сложного алгоритма изображение получается более качественным, чем с FXAA. Имеется реализация у AMD, но технически может использовать и NVidia. Есть проблема: сглаживание не отрабатывает на прозрачных текстурах. Поэтому в довесок этой постобработки нужно подключать еще и TrAA для улучшения изображения. Время обработки занимает 0,9 мс. Так же есть методики MLAA реализованные на GPU.

SRAA (Subpixel Reconstruction Anti-Aliasing, Субпиксельное восстанавливаемое сглаживание) – новый двухпроходный алгоритм от NVidia. SRAA очень схожа с MLAA , но работает с буферами глубины и картами нормалей, из-за чего лучше определяет границы для сглаживания и затененные края. Время выполнения в целом очень низкое, основное время в алгоритме уходит на обработку затенения. На выходе могут появляться артефакты. Для сравнения на сглаживание изображения с разрешением 1280×720 методом SSAA уходит около 5-10 мс, а у SRAA примерно 1,8 мс.

SMAA (Enhanced Subpixel Morphological Anti-Aliasing, Субпиксельное морфологическое сглаживание) — комбо из MSAA/SSAA и MLAA. По сути несколько улучшенный MLAA с добавлением локального контраста и поиском паттернов. Иногда может добавляться еще и временная избыточная выборка. Ресурсов потребляет больше чем MLAA, но задействует при этом видеокарту, а не процессор.
Можно встретить разновидности:

  • SMAA 1x : классический алгоритм SMAA, включающий точный поиск расстояний, работа с локальным контрастом для определения краев, геометрических объектов и поиск диагональных линий. Время обработки занимает 1,02 мс.
  • SMAA T2x : SMAA 1x +техники из TSAA. Время обработки занимает 1,32 мс.
  • SMAA S2x : SMAA 1x +техники из MSAA. Время обработки занимает 2,04 мс.
  • SMAA 4x : SMAA 1x +техники из SSAA/MSAA и TSAA/TMSAA. Время обработки занимает 2,34 мс.

CMAA (Conservative Morphological Anti-Aliasing, Консервативное морфологическое сглаживание) — среднее между FXAA и SMAA 1x. Идеально подходит для слабых и средних графических процессоров. Отличие от FXAA происходит за счет обработки линий краев длиной до 64 пикселей. Используется алгоритм, с обрабатыванием только симметричных разрывов цветов, чтобы избежать ненужного размытия. Отличие от SMAA 1x происходит за счет менее полного сглаживания объектов, т.к. обрабатывается меньше типов фигур и обладает повышенной временной стабильностью, т.е меньше мерцаний объектов.

MFAA (Multi-Frame Sampled Anti-Aliasing, Мультикадровое сглаживание) — производится выборка двух сэмплов для каждого пикселя из текущего кадра и двух сэмплов из предыдущих, после чего применяетя фильтр. MFAA, по сути, соответствует 2xMSAA по нагрузке на видеокарту, но даёт качество картинки на уровне 4xMSAA. При этом этот метод работает примерно на 30 процентов быстрее. Падение производительности из-за фильтра минимальное. Для MFAA необходим определенный уровень частоты кадров, чтобы сглаживание можно было рассчитывать на основе двух кадров. NVIDIA утверждает, что частоты кадров 30-40 fps должно быть достаточно.
GPAA (Geometric Post-process Anti-Aliasing, Сглаживание с геометрической постобработкой) — в работе техники заложено копирование буфера с отрендеренными данными и повторной обработки ребер.

GBAA (Geometry Buffer Anti-Aliasing, Сглаживание с буфером геометрии) — усовершенствованный GPAA, в котором границы обрабатываются несколько иначе. За счет чего улучшена производительность.


Остальные методы

За бортом остались менее известные способы, относящиеся и к первому и второму типу. Ссылки на них приводятся в ознакомительных целях.

    • DAEAA (Directionally Adaptive Edge Anti-Aliasing)
    • DEAA (Distance-to-edge Anti-Aliasing)
    • DLAA (Directionally Localized Anti-Aliasing)
    • AAA (Amortized Supersampling Anti-Aliasing)
    • TRAA (Temporal Reprojection Anti-Aliasing)
    • HQTSSAA (High Quality Temporal Supersampling Anti-Aliasing)
    • DCAA (Decoupled Coverage Anti-Aliasing)
    • TGAA (Triangle-based Geometry Anti-Aliasing)
    • SBAA (Surface Based Anti-Aliasing)
    • NFAA (Normal Filter Anti-Aliasing)
    • SDAA (Second Depth Anti-Aliasing)
    • PWAA (Phone-Wire Anti-Aliasing)
    • SSSAA (Selective Supersampling Anti-Aliasing)

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

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

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

    Откуда берутся «ступеньки»?

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

    Она менее шершавая. А значит на ее поверхности меньше элементов, выходящих за пределы какой-то условной линии. Как все это соотносится к компьютерному изображению?

    Читайте также:  Технические характеристики honor 4c pro

    Да очень просто.

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

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

    Что такое сглаживание в играх или «шлифование»

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

    С этим справляется технология «antialiasing», создана еще в 1972 году в Массачусетском технологическом институте. Изначально разработка Architecture Machine Group предназначалась для более комфортного (для пользователя) отображения текста.

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

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

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

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

    Обработка с масштабированием в процессе формирования 3D образов

    Первый способ SSAA (SuperSample Anti-Aliasing) был задействован еще в DirectX 7. Чтобы подобрать правильные полутона на граничных пикселях необходимо изначально создать модель в более высоком разрешении. Далее рассчитать параметры сглаживания и снова уменьшить образ с учетом прорисовки граничных пикселей. Что это дает и как работает сглаживание?

    • Например, у нас есть белое поле 10 х10 пикселей в котором нарисован черный круг (для этого рисуем его циркулем, и те квадраты, в которые он попадают, закрашиваем).
    • Теперь каждый наш исходный пиксель разобьем на 4-е части (то есть, образуем сетку 20 х 20) и выполним ту же операцию с рисованием круга.

    • Получим ситуацию, в которой внутри исходных граничных пикселей будет закрашено 1, 2, 3 или 4 субпикселя. В соответствие с этими значениями объединяющие их исходные пиксели заливаем соответственно различными оттенками серого, с насыщенностью в 25%, 50%, 75% или снова полностью черным.

    После этой операции, взглянув на наше изображение круга в сетке 10 х 10 с некоего расстояния, увидим более ровную (без «лесенки» по краям) и приятную глазу фигуру.

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

    Как это повлияет на железо?

    Не трудно подсчитать, что для изображения 1280×1024 обработка с коэффициентом 8х потребует нагрузки на видеокарту, соответствующую модели разрешением 10240 х 8192 (не забывайте, что на данной стадии мы работаем с трехмерными изображениями). Поэтому неслучайно данный метод обработки называется Избыточная выборка сглаживания. И вы подумайте, стоит ли включать его если у вас на компьютере слабое железо

    Данная технология не могла оставаться такой ресурсоемкой. И в качестве альтернативы была предложена ее версия MSAA (Multisample anti-aliasing). Ее основное отличие от предыдущей в том, что сглаживание применялось только к видимым линиям и поверхностям (что вполне логично).

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

    Nvidia решила доработать MSAA и создала способ сглаживания с выборкой охвата – CSAA (Coverage Sampling anti-aliasing). Здесь активно используются программные алгоритмы обработки графики, предусмотренные в самом GPU чипе.

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

    На основе вышеописанных разработок NVidia создала способ, позволяющий выполнять сглаживание в контексте изменяющейся сцены. Что позволяет даже при низком фпс практически исключить дергание и мерцание отображаемых в каре объектов.

    Это технология TXAA (Temporal approXimate Anti-Aliasing, Временное приблизительное сглаживание). В алгоритме, с учетом времени учитывается пиксели из предыдущих и обрабатываемых кадров с последующим цветовым усреднением.

    Постобработка готовых кадров

    Но совсем необязательно применять сглаживание к объемным 3D моделям. Ведь аналогичную обработку можно выполнить уже после рендеринга.

    • Для обладателей слабого компьютерного железа NVidia предложило довольно эффективное решение FXAA (Fast approXimate anti-aliasing).

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

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

    • Тем, у кого вообще графическая карта не предназначена для современных игр, но имеется мощный CPU, компания Intel предлагает свой аналог вышеописанного способа MLAA.

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

    • Учитывая тенденцию с повышению fps видеопотока, специалисты из NVidia создали специально для этих условий технологию MFAA (Multiframe Sampled Anti-Aliasing).

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

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

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

    Комментировать
    0 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    Adblock detector