Суперсэмплирование в играх что это

Как запускать игры с разрешением 4К на мониторе 1080p при помощи суперсэмплинга

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Чтобы запускать игры в высоком разрешении, необязательно тратить деньги на монитор с поддержкой 4К. Если края текстур с шероховатостями вам не нравятся, опция под названием суперсэмплинг позволит получить разрешение 4К и даже выше на мониторе 1080p.

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

Что такое суперсэмплинг? Если вы знакомы с компьютерными играми, то могли слышать про сглаживание. Края объектов, которые должны быть плавными, могут выглядеть как ступеньки лестницы. Это напоминает о трёхмерных играх 90-х годов. Особенно часто это может встречаться на низких разрешениях вроде 1080p. Чтобы такого не происходило, игры включают в себя функции сглаживания, чтобы сделать изрезанные края плавными.

Современные версии сглаживания, такие как Subpixel Morphological Antialiasing (SMAA), работают достаточно хорошо, убирая изрезанные края без большого расхода ресурсов. Однако, и они не идеальные. Многие сглаживают только определённые типы зубцов по краям полигонов, а другие размывают изображение.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

На изображении показана листва в игре Shadow of The Tomb Raider. Слева можно увидеть изрезанные края с отключенным сглаживанием. Справа SMAA делает изображение лучше, но сглаживание заставляет ветви исчезнуть в небе, добавляя заметное размытие. Улучшение оказывается не идеальным.

Здесь на помощь приходит суперсэмплинг. Вместо применения сглаживания к определённым частям изображения суперсэмплинг обрабатывает всю игру на более высоком разрешении, вроде 4K. Затем происходит масштабирование под ваш монитор. Результат не такой же, как запуск игры на реальном мониторе 4К, но лучше по сравнению с разрешением 1080p даже с включенным сглаживанием.

Для примера можно посмотреть на фотографии ниже. Слева изменённое SMAA изображение, справа использование суперсэмплинга до разрешения 4K. Можно увидеть значительную разницу в ветвях на переднем плане и в деревьях на расстоянии справа. На мониторах это видно ещё лучше, чем на фотографиях. Хотя игра по-прежнему запускается на мониторе с разрешением 1080p, ветви стали чётко видимыми без размытия и сглаживания, как на предыдущем изображении.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

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

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

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

Источник

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

Авторизуйтесь

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

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

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

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

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

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

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

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

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

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

SSAA (SuperSample Anti-Aliasing)

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

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

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

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

Источник

Типы сглаживания и их принудительное включение в играх

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Содержание

Содержание

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

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

Типы сглаживания

В качестве образца будет использоваться игра Track Mania вкупе с Full HD разрешением монитора. Видеокарта GTX 1070. Первый скриншот «чистый», без сглаживания. Просматривать рекомендуется в полном размере.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

FXAA (Fast approXimate Anti-Aliasing)

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

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

SMAA (Subpixel Morphological Anti-Aliasing)

Продвинутое пост-сглаживание, основанное на FXAA и MLAA. Дает ощутимо лучший результат, но потребляет чуть больше ресурсов видеокарты. Имеет четыре степени качества.

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

MSAA (Multi-Sample Anti-Aliasing)

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

Когда в играх вы выбираете степень сглаживания x2, х4 или x8 подразумевается именно MSAA.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

SSAA (Super-Sample Anti-Aliasing)

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

При выборе настройки SSAA x 4 объект увеличивается в четыре раза с каждой стороны (вертикаль и горизонталь), что дает внутреннее разрешение 7680×4320 от изначального 1920×1080.

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

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

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

Иногда в настройках попадается SSAA x 0.5. При его использовании игровое разрешение уменьшается вчетверо (до 960×540), что ухудшает качество картинки, но дает прирост производительности.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

DSR (Dynamic Super Resolution)

Технология от NVIDIA, позволяющая использовать разрешения, превышающие возможности вашего монитора. Максимальное значение x 4, что соответствует формату 2160p. По качеству немного превосходит SSAA x2.

И если SSAA работает с внутренним разрешением игры, то DSR запускает игру в настоящем 4К, которое затем даунскелится до родного разрешения монитора. Это дает возможность снимать видео и делать скриншоты в 3840×2160 на мониторе с меньшим разрешением.

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

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

У AMD есть свой аналог, названный VSR (Virtual Super Resolution).

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Комбинации и ответвления

Производители частенько любят хитрить со сглаживанием, комбинируя методы. В качестве примера TXAA: на самом деле это всего лишь одновременная работа MSAA и FXAA низкого качества. Адаптивным сглаживанием называют SSAA + MSAA. Многокадровое сглаживание MFAA это просто надстройка для MSAA, призванная улучшить качество (через панель управление не заработала ни в одной игре).

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

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

Кстати, DSR и SSAA можно использовать одновременно. Track Mania в этом случае запускается в разрешении 16К (15360×8640), при 26 кадрах в секунду.

В итоге игра 2006 года почти «поставила на колени» GTX 1070. Ну а про игры типа Metro Redux и говорить нечего, всего 1-3 фпс.

Использование

FXAA

Для активации нам понадобится программа FXAA Tool.

В главном окне программы убираем галочку Pre Sharpen. Далее нажимаем кнопку «Add», программа попросит нас ввести имя профиля (можете написать любое), а затем необходимо указать путь к папке с игрой.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Переходим во вкладку «AntiAliasing». Двигая ползунок влево и вправо, мы изменяем баланс между производительностью и качеством. После того, как необходимый уровень выбран, нажимаем кнопку «Save». Теперь при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать достаточно в главном меню нажать кнопку «Remove».

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

SMAA

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

Первым делом нажимаем кнопку Add new game и указываем путь на файл запуска игры (.exe).

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

Нажимаем кнопку Add SweetFX.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Заходим в настройки SweetFX Injector settingsи выбираем желаемый уровень качества.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Лучше всего поставить SMAA_PRESET_HIGH. Нажимаем Save settings, а затем в главном окне Save new config.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Как и в случае с FXAA Tool при каждом запуске игры сглаживание будет включаться автоматически. Чтобы его убрать необходимо в главном меню нажать кнопку “Remove SweetFX”.

MSAA \ SSAA \ VSR (Radeon)

Новая панель управления от AMD максимально упрощена. Чтобы активировать VSR, нужно лишь нажать соответствующую кнопку в разделе «Дисплей». После этого в играх появятся новые доступные разрешения.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Активация MSAA и SSAA также не доставит никаких проблем. Переходим во вкладку «Игры» и изменяем несколько настроек.

Избыточная выборка — это SSAA, а множественная выборка — это MSAA.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

MSAA \ SSAA \ DSR (GeForce)

Для включения DSR необходимо перейти в раздел «Управление параметрами 3D» и выбрать строчку «DSR-Степень».

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Появится небольшое окно, в котором вы сможете выбрать, во сколько раз большие от оригинального разрешения вам нужны. К примеру, x1.78 соответствует разрешению 2560×1440, а x4 соответствует 3840×2160. После этого выбранные разрешения станут доступны в параметрах рабочего стола, а также в самих играх.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Также необходимо выставить параметр «DSR-плавность» на значение 0 %. В противном случае изображение будет слегка размыто.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Для включения MSAA, в этом же разделе (Управление параметрами 3D) нужно изменить два параметра.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Затем нажимаем кнопку «Применить».

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

Для SSAA сглаживания настройки в панели управления не предусмотрено (исключение — старые видеокарты).

Включить его получиться только с помощью сторонней утилиты NVIDIA Profile Inspector.

Для сброса настроек вы можете нажать на значок NVIDIA.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Сравнение

Для сравнения качества было решено выделить фрагмент картинки, затрагивающие провода, текстовую надпись Track Mania и дорожные перила.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

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

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

А теперь сравним влияние сглаживания на FPS в игре.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

Исходные материалы

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

Track Mania Nations — игра, использованная для демонстрации типов сглаживания доступна для бесплатного скачивания на странице в Steam.

Вывод

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

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

Источник

Анализ методов сглаживания на основе super-sampling

Введение

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

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

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

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

Звук — не более, чем волна плотности: сжатие и растяжение воздуха. Это физическое событие бесконечно детально, и оно модифицируется в пространстве вместе со временем. CD — это цифровой носитель для звука; он содержит числа, эквивалентные «количеству» звука в определённые моменты времени. Перевод этих сжатий, колебаний в числа производится через микрофон и АЦП (analog to digital converter, AD). Микрофон может перевести бесконечно детальные колебания в бесконечно детальный электрический сигнал. А АЦП, в свою очередь, измеряет электрический сигнал в определённые моменты времени, сопоставляя с ним конкретное дискретное числовое значение. Каждое такое измерение и есть отсчет. В итоге, бесконечно детальное событие получило дискретное описание, которое уже может быть обработано процессором или может быть сохранено на цифровом носителе, таком, как CD.

Это относится и к графике: там отсчет фиксирует определённый момент, также, как и определённый участок. Например, точка изображения или один кадр анимационной последовательности являются в некотором роде отсчетами. На нынешнем уровне развития потребительских технологий попросту невозможно рассчитать достаточное количество дискретных отсчетов для более-менее приемлемого отображения действительности. Из-за этого недостатка возникают дискретные артефакты в результирующих изображениях и анимационных последовательностях. Эти артефакты привносят в изображения множество нежелательных визуальных эффектов, которые могут серьёзно ухудшить их качество. Налицо злободневная проблема всех современных 3D-акселераторов — очерняющая и оскверняющая все потрясающие впечатления, за которые так борются компьютерные игры и прочие трёхмерные приложения. Зубчатые края, ступенчатость и мерцающие объекты — всё это симптомы дискретных искажений. Посмотрите на края объекта, изображенного 3D акселератором, и вы легко обнаружите их ступенчатость. Теперь начните плавно удаляться от объекта, и вы увидите так называемое сползание (crawling). Все эти артефакты значительно ухудшают общее качество рассчитанного изображения.

Для лучшего понимания эффекта ступенчатости ниже приведены два скриншота. В части ‘a’ рисунка 1 — пример того, что может случиться с краями полученного изображения, например, гор. Мы видим, что поверхность располагается на сетке, каждая секция которой представляет собой пиксель. Так как обычно строим изображение мы пополигонно (а в конечном итоге — попиксельно), мы заполняем или не заполняем каждый пиксель. Получается дискретная система, в которой не может быть частично заполненных пикселей. Выбор решения — заполнять или нет — зависит от местоположения центра пиксельной зоны (на рисунке зоны показаны маленькими кружками).

На части B мы видим результат: группа пикселей, которая пытается заместить и замещает поверхность, которую мы хотели отрендерить. К сожалению, результатом этого процесса дискретизации может быть полный бардак, все портит изрядный лестничный эффект. Другим примером дискретных искажений в компьютерной графике может послужить исчезновение полигонов или пикселей (так называемый «polygon popping» или «pixel popping»). Эта проблема проявляет себя при работе с маленькими объектами, менее пикселя в ширину или высоту. Например, маленький полигон может быть помещён в такое место, в котором одиночный отсчет невозможен. В итоге полигон исчезает полностью или частично.

Рисунок 2 показывает различные эффекты исчезновения полигонов. Слева мы видим желаемый нами результат, а справа — рассчитанный результат, пострадавший от артефактов нежелательного исчезновения полигонов. Например, обратите внимание на зелёную полоску ‘a’. Она закрывает центры пикселей (a) и поэтому видна. Но теперь представьте, что анимация пошла (вниз) и зелёная полоса оказалась в положении (b). В этом положении центры пикселей полосой не закрыты, поэтому, в итоге, фактически ничего и не рендерится. Заметьте, как легко зелёная полоса из видимой стала невидимой всего лишь после небольшого сдвига. Если сдвиг продолжить, то полоса снова закроет центры пикселей и станет полностью видимой. Начинается «мерцание» — прекрасный пример дискретного артефакта. К тому же, заметьте, как изменяются жёлтые фигуры от кадра (a) к (b). На разных кадрах они получились по-разному из-за недостатка отсчетов для точного представления модели. Красные продолговатые треугольники имеют совершенно одинаковые размеры, но они стали различаться в результате разного количества пикселей. Синий квадрат в кадре (a) показывает, как отличающийся от других полигон может перестать отличаться при его растеризации в изменённом месте и положении.

[1] Все эти артефакты, характеризующиеся различным растровым представлением одних и тех же обьектов только в результате изменения их положения и ориентации — симптомы дискретных искажений. Чтобы сократить эти артефакты, применяются специальные алгоритмы сглаживания, в том числе на основе избыточной выборки. По сути, сглаживанием мы и называем процесс удаления нежелательных дискретных артефактов. Проблема алгоритмов и технологий сглаживания всегда требовала и требует высокой пропускной способности и большой скорости заполнения. Это заставило сглаживание долго оставаться в области CAD и на рынке high-end компьютерных графических решений. Однако, сейчас продукты потребительского рынка подбираются к моменту, когда возможно более-менее качественное сглаживание в режиме реального времени (real-time). В следующей секции мы опишем несколько методов сглаживания.

Анимация

Практическая реализация сглаживания

Несмотря на то, что несколько аппаратных и программных реализаций сглаживания уже были разработаны, они не добились успеха на основном потребительском рынке. Слишком высокое потребление ресурсов CPU, высокие нагрузки на память и шину, высокие затраты памяти — всё это сделало их использование на потребительском рынке непрактичным. Даже менее требовательное краевое (edge) сглаживание, которое только пытается исправить лестничный эффект на краю полигонов, но не улучшает ситуации с артефактами их исчезновения и мерцания, не стало популярным по причине его относительно низкого качества и отрицательного влияния на производительность. Сглаживание еще недавно оставалось эксклюзивной технологией CAD/CAM и реалистичной графики не-реального времени. С последними поколениями CPU и графических процессоров стало возможным использовать сглаживание и на потребительских системах, которые теперь имеют достаточную вычислительную мощность, пропускную способность, объем памяти для практической реализации сглаживания. Эта статья рассматривает основные типы сглаживания, основанного на избыточной выборке, и исследует две его специфические реализации.

Методы избыточной выборки

Как было объяснено раньше, дискретные артефакты — результат выборки, или, если точнее, недостаток низкого суммарного количества обработанных отсчетов. Избыточная выборка, как видно из названия, решает эту проблему, используя некоторое количество отсчетов на точку, что больше, чем в обычном случае, усредняя их для получения окончательного результата. В этом случае у нас есть возможность более точно смоделировать визуальное представление бесконечно детализированного естественного мира. Итак, первый важный элемент — избыточная выборка — использование дополнительных отсчетов для увеличения плотности данных в изображении. Таким образом, вместо одного центрального отсчета на пиксель, метод избыточной выборки использует несколько. Два типа сглаживания (далее AA, т.е. anti-aliasing) с использованием избыточной выборки определяются положением этих отсчетов внутри пикселя. Ordered Grid выборка — первый и основной тип избыточной выборки (далее SS, т.е. super-sampling). Само название «Ordered Grid» (упорядоченная решётка) наглядно показывает позицию отсчетов относительно данного пикселя. Выбираемые избыточные отсчеты располагаются в форме упорядоченной решётки, как показано на рис. 3а.

Второй тип SS AA известен как избыточная выборка с искаженной решеткой (Jittered Grid Super-Sampling, JGSS). JGSS аналогичен OGSS в том, что избыточные отсчеты хранятся попиксельно, но отличие между ними — в расположении отсчетов. В случае с OGSS решётка выборки параллельна и выровнена по горизонтальной и вертикальной осям. А в случае с JGSS решётка повернута относительно осей или искажена каким-либо другим образом. Пример решетки, используемой с JGSS, показана на рис. 3b. Существует несколько различных путей искажения решетки, мы сейчас рассмотрим два основных решения.

Первая реализация — полностью случайная выборка (известна как стохастическая выборка, Stochastic Sampling). По сути, это означает, что внутри результирующего пикселя отсчеты располагаются случайным образом. Ключевой момент в том, что решетка случайна для каждого пикселя на экране. Случайное расположение отсчетов вносит в результирующее изображение белый шум, но человеческий глаз менее восприимчив к случайному шуму, чем к регулярным узорам. Наличие небольшого случайного шума компенсируется исчезновением в результате выборки по многим отсчетам, делает восприятие узоров (в нашем случае — дискретных искажений) гораздо более затруднительным. Качество этого метода потрясающее, но его реализация требует очень больших затрат. Примерно 16 (или более) случайно расположенных отсчетов должны обеспечивать приемлемый уровень зашумления и практически устранить дискретные артефакты. Можно использовать и меньшее количество отсчетов, но это повышает и уровень шума, и заметность артефактов. Причем, аппаратно трудно добиться полностью случайного расположения отсчетов. Желательно избежание отсчетов, слишком близких друг к другу. Примером является использование распределения Пуассона (Poisson Distribution) [5], но подобные методы чрезвычайно сложны и на данный момент недоступны для массового потребительского уровня аппаратной поддержки. Вторая реализация выборки в JGSS — упрощенная форма первой. Вместо использования полностью случайных решеток используется заранее определённая решетка, которая аппроксимирует эффект полностью случайной выборки, повторяя его для каждого результирующего пикселя.

Итак, у нас снова есть решётка, но положения отсчетов более случайны и менее однообразны. Решетка, предложенная документацией на OpenGL, представляет собою трансформированную регулярную сетку (shear) [2]. Упорядоченная решетка смещена в сторону, смещение устраняет некоторую упорядоченность, закономерность, свойственную OGSS. Однако это смещение устраняет только вертикальную упорядоченность. Горизонтальная упорядоченность сохраняется. В итоге, вертикальная регулярность структуры OGSS разрушается, а горизонтальная остаётся. Также существует и часто используется метод сглаживания с повернутой опорной решеткой (Rotated Grid Super-Sampling, далее RGSS). В RGSS расположение отсчетов идентично расположению, применяемому в OGSS, но вся решетка повернута на некоторый угол (рисунок 3b). Заметьте, что таким образом мы избавились как от горизонтальной, так и от вертикальной упорядоченности, и уже нет ярко выраженных рядов и колонок. Подкованные теоретическими знаниями и определениями OGSS и RGSS, мы можем теперь сосредоточиться на их практической реализации в современном оборудовании. Мы рассмотрим одно и то же аппаратное решение для каждого метода SS, но будем иметь ввиду, что описано значительное количество других реализаций SS AA.

Осуществление OGSS

OGSS — это метод, который может быть внедрён почти на всех современных 3D-акселераторах, поддерживающих рендеринг во «внекадровом» (не отображаемом) буфере. Внекадровый буфер имеет место для хранения цветов пикселей, а также значения Z-буфера и буфера шаблонов (Stencil). Однако, он отличается от обычного переднего (front) или заднего (back) буфера тем, что его содержимое никогда не выводится на экран напрямую. Как было ранее объяснено, метод OGSS использует упорядоченную решетку отсчетов для каждого пикселя. Ниже мы более детально поясняем, как можно реализовать OGSS AA на современном 3D «железе».

1. Движок создаёт 3D-окружение, используя 3D API типа Direct3D или OpenGL. Оба API используют треугольники как основную строительную единицу для создания 3D-объектов. Каждый треугольник имеет свои координаты в 3D-пространстве. Эти координаты передаются, трансформируются и освещаются через API, используя спец-драйвер 3D-карты. В нашем простом примере допустим, что наше изображение имеет разрешение 10×10 пикселей и что у нас есть треугольник с вершинами в координатах (5,5), (10,10) и (10,0), создающими его в правой части изображения.

2. Координаты, доставленные API, соответствуют специфическому разрешению изображения. Когда вершины трансформируются и освещаются, они обеспечиваются видовыми координатами (а не мировыми координатами, используемыми в 3D-приложениях). Таким образом, эти координаты привязаны к финальному разрешению изображения. Для достижения нашей цели (AA) нам нужно увеличить эти координаты хотя бы в два раза в обоих направлениях — и в горизонтальном, и в вертикальном — для создания необходимого для эффективного AA количества отсчетов (так называемый Up-sampling). Это простое умножение всех координат в два раза с соответствующим увеличением разрешения. Итак, разрешение, в котором изображение будет рассчитываться, увеличивается до 20×20 (10, умноженное на 2). Координаты наших вершин также будут увеличены до (10,10), (20,20) и (20,0). Заметьте, что, несмотря на все эти изменения, относительное местоположение в пространстве вершин и треугольников сохранилось.

3. Результатом предыдущих действий является то, что вся геометрия увеличивается вдвое в двух направлениях, вертикальном и горизонтальном. Проще говоря, теперь всё стало вдвое больше. И, таким образом, выводится в четыре раза больше пикселей, по сравнению с обычным изображением. Наше исходное изображение имеет размер 10×10, а полученное — 20×20 пикселей.

4. Мы рендерим всю геометрию так же, как и обычно, но во внекадровый (невидимый) буфер. Увеличенная геометрия используется для получения AA-изображения размером 10×10 пикселей. Заметьте, что наш пример использует только один треугольник, а реальные приложения, разумеется, используют гораздо больше.

Суперсэмплирование в играх что это. Смотреть фото Суперсэмплирование в играх что это. Смотреть картинку Суперсэмплирование в играх что это. Картинка про Суперсэмплирование в играх что это. Фото Суперсэмплирование в играх что это

5. Когда сцена кадра построена, мы получили изображение нашего 3D-мира высокого разрешения. Теперь нужно это изображение превратить в сглаженное АА-изображение более низкого разрешения. Т.е., нам нужно перейти от SS 20×20 (двойное разрешение) изображению к AA 10×10 изображению. Этот преобразование (down-sampling) производится усреднением цветов соседних пикселей.

По существу, мы берём цветовые значения четырёх соседних пикселей (квадрат), добавляем их друг к другу и потом делим на четыре. Это означает, что мы получаем однородную смесь цветов пикселей высокого разрешения внекадрового буфера по сравнению с результирующим (демонстрируемым) изображением. На самом деле, эти четыре пикселя на внекадровом изображении высокого разрешения являются будущими отсчетами для пикселей результирующей AA-картинки. Усредненные, эти отсчеты формируют конечный сглаженный пиксель для результирующего изображения. С помощью расчета изображения в высоком разрешении, последующей его фильтрацией с уменьшением разрешения (filtering down) и с использованием усредняющего фильтра значительно уменьшаются дискретные эффекты. Для простого примера предположим, что наше изображение имеет тёмные полосы (0%) на светлом фоне (100%), расположенные вертикально, создающие эффект «полосатости» и имеющие высоту, равную одному разбиению решетки. Выборка будет содержать два тёмных и два светлых отсчета. Усредненный результат — наполовину тёмный и наполовину светлый пиксель.

6. Конечным результатом этого процесса снова будет изображение 10×10, но изображение, сглаженное OGSS методом. Мы обсудим другой важный аспект этого процесса чуть позже, в этой же статье. Схематическое представление метода OGSS можно увидеть на рис. 4 (справа). Практическая реализация реализует OGSS за счёт увеличения внекадровой сцены в два раза, по вертикали и горизонтали. Ничто не мешает использовать другие множители, например, 4 или более. Так, термины 2X OGSS и 4X OGSS часто используются для описания размера сторон регулярной решетки, используемой в OGSS. Иногда размерность заменяется термином «tap» (одна точка, отсчет), приводя, таким образом, к появлению таких терминов, как 4-tap или 16-tap OGSS. Итак, используя 16-tap OGSS, мы имеет решетку 4×4. Следует заметить также, что термины Full-Scene AA и Full-Screen AA (т.е. полноэкранное сглаживание) часто используются неуместно.

Обычно эти термины используются для обозначения OGSS, но, на самом деле, они просто обозначают то, что всё изображение (целиком) подвергается сглаживанию, будь то OGSS, или RGSS, или что-либо иное. Тем не менее, это важно, что мы упоминаем о том, какой именно тип сглаживания реализован в «железе», потому что его качество невысоко, как выяснится совсем скоро. В итоге, следует заметить, что этот метод реализации OGSS, используя существующие 3D-буферы, страдает от потенциальной несовместимости с приложениями, использующими доступ к буферу кадра. Доступ к буферу кадра производят приложения, которые для какой-либо цели заполняют буфер значениями напрямую (значения цвета и/или Z/Stencil). Проблема в том, что внутренний рендеринг происходит в повышенном разрешении, а приложение вообще об этом не знает, и, в итоге, обращение к буферу кадра происходит некорректно. Это можно увидеть на простом примере. Допустим, игра захотела использовать буфер кадра для наложения кабины на изображение. Накладываемое изображение имеет разрешение конечного изображения, а не разрешение внутреннего внекадрового буфера. В результате, накладываемое изображение с размерами экранного буфера записывается во внекадровый буфер, что, естественно, приводит к некорректному результату. Накладываемый слой заполнит лишь 1/4 нужного размера в финальном. С приложениями, использующими прямой доступ к буферу кадра, нужно работать с особой осторожностью. Проблема может быть решена на уровне драйвера, т.к. не существует аппаратного решения этой проблемы. Излишне говорить, что это приводит к серьёзному падению производительности, но без решения этой проблемы некоторые приложения покажут некорректный конечный результат.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *