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

Что такое NVIDIA DLSS, как она повышает FPS и улучшает графику в играх — подробное объяснение

Недавно компания NVIDIA предоставила владельцам видеокарт GeForce RTX доступ к своей новой технологии Deep Learning Super Sampling (суперсэмплинг при помощи глубокого обучения). Она стала доступна для Metro Exodus и Battlefield 5 вслед за Final Fantasy XV: Windows Edition и 3DMark Port Royal. Многие игроки отметили, что картинка в двух новых шутерах при использовании DLSS размывалась. По факту, проблема актуальна лишь для статичных изображений, тогда как на практике в таких играх, как Battlefield V игрок редко долго остается неподвижным. Тем не менее, это побудило технического директора по глубокому обучению в NVIDIA Эндрю Эдельстена (Andrew Edelsten) прокомментировать наиболее волнующие сообщество вопросы. Основываясь на его ответах и информации из открытых источников, мы попытались разобраться, что вообще такое DLSS и как она работает.

Что такое NVIDIA DLSS, как она повышает FPS и улучшает графику в играх — подробное объяснение

Что такое DLSS?

Deep Learning Super Sampling (DLSS) — это технология NVIDIA, разработанная специально для видеокарт серии RTX. Упор делался именно на эту серию вследствие того, что видеокарты в ней оснащены высокопроизводительными тензорными ядрами, функционирующими в несколько раз быстрее стандартных CUDA ядер. Подобная производительность необходима для обработки изображений в играх с помощью нейронных сетей, но об этом чуть позже. Эта технология использует силы ИИ (искусственного интеллекта) для увеличения FPS (частоты кадров) и сглаживания картинки в играх во время сильных нагрузок на видеокарту. С DLSS игроки могут использовать более высокие разрешения и настройки, одновременно сохраняя достаточную частоту кадров.

Чтобы окончательно определиться с тем, что такое DLSS, нужно дословно разобрать само понятие Deep Learning Super Sampling. Итак, суперсэмплинг — это технология сглаживания, которая создаёт каждый кадр в разрешении большем чем разрешение монитора, после чего уменьшает его обратно. То есть количество пикселей в кадре увеличивается и таким образом технология помогает сгладить резкие контрастные переходы между пикселями разных объектов. Говоря проще, убирает «лесенку» на краях объектов, нежелательные шумы на текстурах в движении и прочие «шероховатости» изображения.

Пример работы суперсэмплинга. Конкретно, технологии NVIDIA DSR (Dynamic Super Resolution, в переводе динамическое суперразрешение)

Пример работы суперсэмплинга. Конкретно, технологии NVIDIA DSR (Dynamic Super Resolution, в переводе динамическое суперразрешение) Пример работы суперсэмплинга. Конкретно, технологии NVIDIA DSR (Dynamic Super Resolution, в переводе динамическое суперразрешение)

Теперь немного о глубоком обучении. «Глубокими» называются нейронные сети, состоящие более чем из 1 входного и выходного слоя, например, нейронную сеть из 4 слоев уже можно считать глубокой. Каждый нейрон нового слоя соединен со всеми нейронами предыдущего слоя при помощи «весов». Фактически веса нейронной сети кодируют силу сигнала и позволяют ей обрабатывать входную информацию. Путем множества повторяющихся вычислений, веса глубокой нейронной сети подстраиваются при помощи алгоритма обратного распространения ошибки для того, чтобы ответ на выходе нейронной сети был как можно ближе к желаемому на проверочном наборе данных.

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

Как работает DLSS?

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

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

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

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

Изображение в разрешении 4К без сглаживания (слева), изображение в разрешении 4К с DLSS (справа).

Изображение в разрешении 4К без сглаживания (слева), изображение в разрешении 4К с DLSS (справа). Изображение в разрешении 4К без сглаживания (слева), изображение в разрешении 4К с DLSS (справа).

Где лучше использовать DLSS? Почему технология недоступна для всех разрешений?

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

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

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

График кадровой частоты различных видеокарт серии RTX в 3DMark Port Royal с включенной и выключенной DLSS.

График кадровой частоты различных видеокарт серии RTX в 3DMark Port Royal с включенной и выключенной DLSS. График кадровой частоты различных видеокарт серии RTX в 3DMark Port Royal с включенной и выключенной DLSS.

А что насчёт размывания кадров?

Края объектов с DLSS остаются четкими и резкими, но без ступенек, которые есть, когда сглаживание выключено. Само «размытие» происходит для очень мелких деталей текстур и заметно только при рассмотрении статичных скриншотов вблизи монитора. В высоких разрешениях с высокой плотностью пикселей, например, 4К на 27 дюймовом мониторе, с расстояния в 0,5-1 метр, при движении в игре эти мелкие детали невозможно различить.

Как уже указывалось выше, DLSS изначально создавалась для увеличения FPS при высокой нагрузке на видеокарту. И при разработке основной упор делался на высокие разрешения (когда нагрузка доходит до максимума), а 4K (3840×2160) является наиболее тяжёлым разрешением. Работа с 4K даёт больше преимуществ, когда речь идёт о качестве изображения, так как количество входных пикселей велико. Для 4K DLSS имеется 7,4 миллиона входящих пикселей, из которых можно сгенерировать окончательный кадр, в то время как для 1920×1080 имеется только около 1.84 миллионов пикселей. Чем меньше исходных данных, тем сложнее DLSS обнаруживать особенности исходного изображения и предсказывать окончательный кадр. То есть чем меньше разрешение, тем хуже работает DLSS.

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

Изображение с выключенной DLSS (слева), изображение с включённой DLSS (справа).

Изображение с выключенной DLSS (слева), изображение с включённой DLSS (справа). Изображение с выключенной DLSS (слева), изображение с включённой DLSS (справа).

Чем хуже технология TAA?

В зависимости от разрешения, настроек качества и реализации игры некоторые могут предпочесть TAA (временное, оно же темпоральное сглаживание) в одной игре и DLSS в другой. Тут стоит пояснить, что TAA — это технология сглаживания, которая берёт в расчёт несколько ранее отрисованных кадров, учитывая расположение пикселей в динамике. И на их основе сглаживает шероховатости и лесенки на краях, но при этом TAA имеет свойство немного «мылить» картинку.

Игровая индустрия использовала временное сглаживание многие годы и, по мнению вышеупомянутого Эндрю Эдельстена (Andrew Edelsten), его время скоро подойдёт к концу. Так как конечный результат работы TAA генерируется из нескольких кадров, получившееся изображение может страдать от ореолов и мерцаний при высокой скорости движения. DLSS же справляется с этим лучше во многом благодаря нейросети, способной выдавать более качественную картинку как в статике (неподвижном состоянии), так и в динамике (движении). Также, в отличие от TAA, DLSS в процессе работы реконструирует изображение до более высокого разрешения.

Какие игры уже поддерживают DLSS?

На момент написания статьи, поддержка DLSS присутствует в Final Fantasy XV: Windows Edition, 3DMark Port Royal, Battlefield 5 и Metro Exodus. И из-за существующих проблем с работой DLSS в последних двух играх, о них стоит расписать поподробнее.

В Battlefield 5 DLSS, по мнению NVIDIA, на данный момент обеспечивает значительное улучшение производительности (до 40 %) в разрешениях 4K и 2560 × 1440 при сопоставимом качестве. В дальнейшем командой разработки планируется работа над улучшением качества изображения для разрешения 1920×1080, а также для сверхшироких мониторов (например, с разрешением 3440 × 1440).

А для Metro Exodus уже есть обновление, улучшающее чёткость DLSS и общее качество изображения для всех разрешений, которые не были включены в день запуска. Также ведётся обучение DLSS для этой игры, в результате которого ожидается ещё одно повышение качества изображения.

Как запустить игру в большем разрешении?

Какое идеальное разрешение для ПК-игры? Спросите об этом большинство игроков и они незамедлительно ответят вам, что «максимально поддерживаемое монитором». Довольно очевидное решение. Ведь не имеет смысла рендерить графику в более высоком разрешении, если его не поддерживает ваше оборудование, верно?…Верно?

Краткий взгляд на Суперсэмплинг

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

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

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

Вверху вы можете увидеть персонажа Лусио из Overwatch в стандартном рендере и в рендере, который был увеличен на 200% с помощью технологии Суперсэмплинга. Обе картинки изображаются в разрешении 1080p, т.е. на максимальном разрешении большинства стандартных мониторов. Но изображение слева рендерится на игровом движке в 1080p, в то время как изображение справа рендерится в 4K(3840×2160). Обратите внимание насколько лучше стало выглядеть картинка, когда к ней применили оговариваемую технологию. Однако, такое улучшение, как уже было сказано, обойдется вам в уменьшенную кадровую частоту. Например, если у вас ранее в игре наблюдались стабильные 60 FPS, то с применением Суперсэмплинга они могут вполне ожидаемо опуститься до 40 или 30 FPS.

Результаты применения технологии Суперсэмплинга могут зависеть от различных конфигураций систем, а также от самих игр. Большинство энтузиастов в сфере компьютерных технологий уже достигли консенсуса между собой в том, что Суперсэмплинг наиболее мудро применять к старым ПК-играх или же нетребовательным консольным портам, которые обычно не требуют полной производительности от вашего компьютера. Подобные игры могут спокойно работать в 60 FPS даже под увеличенным разрешением рендера картинки. Помимо этого, Суперсэмплинг также будет интересен художникам, которым необходимо снять скриншот или записать высококачественное видео.

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

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

Опция №1: Включение Суперсэмплинга через Видеокарту

Этот метод заставит саму Windows рендерить изображение в более высоком разрешении.

Видеокарты Nvidia

Сейчас мы рассмотрим активацию этой технологии для владельцев графических ускорителей Nvidia. Откройте Панель управления Nvidia, а затем перейдите во вкладку «Регулировка размера и положения рабочего стола». Убедитесь, что вы поставите галочку напротив параметра «Замещение режима масштабирования, заданного для игр и программ».

Теперь перейдите во вкладку «Изменение разрешения» под ниспадающей вкладкой «Дисплей». Далее кликните на «Изменить разрешение» под списком доступных разрешений. Теперь кликните на кнопку «Изменить», а затем на кнопку «Создать пользовательское разрешение».

Далее вам предстоит задача по созданию разрешения, которое будет больше, чем родное разрешение вашего монитора, но при этом оно должно соответствовать его соотношению экрана. Большинство широкоэкранных мониторов имеют соотношение 16:9, про-версии таких мониторов имеют соотношение 16:10, старенькие ЖК-мониторы обычно имеют соотношение сторон 4:3. К примеру, если ваш монитор имеет разрешение экрана 1920×1080, что соответствует соотношению сторон 16:9, то вы можете выставить разрешение 2560×1440 или даже выкрутить его до полных 4K в 3840×2160(они оба являются разрешениями с соотношением сторон 16:9).

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

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

Однако, для Nvidia существует еще один способ воспользоваться Суперсэмплингом, и, возможно, вы найдете этот способ куда более легким для исполнения. Итак, снова зайдите в Панель управления Nvidia, а затем перейдите во вкладку «Параметры 3D→Управление параметрами 3D».

В настройках 3D, вам нужно найти два параметра: DSR – Плавность и DSR – Степень. DSR – это технология суперсэмплинга со стороны Nvidia, аббревиатура которой расшифровывается как Dynamic Super Resolution или Динамическое суперразрешение.

«DSR – Плавность» отвечает за четкость картинки. По умолчанию, плавность выставлена на 22%. Выставьте меньший процент, если вы хотите повысить четкость картинки, или больший, если хотите сделать ее плавнее. Однако знайте, что высокая плавность требует больших затрат ресурсов вашего компьютера. «DSR – Степень» буквально будет отвечать за доступные разрешения в игре. Поставьте галочки напротив всех множителей, чтобы разблокировать все возможные разрешения для рендера.

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

Видеокарты AMD

На видеокартах AMD технология суперсэмплинга выступает под именем «Виртуальное сверхвысокое разрешение». VSR поддерживается на видеокартах Radeon HD 7790 и новее. Возможные разрешения зависят от мощности видеокарты, например, серия видеокарт Radeon R9 способна выдавать даже 4K.

Аналог от AMD также куда более дружелюбнее к пользователю по сравнению с версией Nvidia. Зайдите в Настройки программы для видеокарты Radeon, кликните на «Дисплей», а затем переключите опцию «Виртуальное сверхвысокое разрешение» на позицию «Включено». Как только вы это сделаете, игры смогут выставляться в более высоком разрешении без влияния на разрешение в Windows.

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

Опция №2: Включение Суперсэмплинга в игре

Некоторые недавние игры позволяют рендерить себя в более высоком разрешении. Расположение этой настройки может меняться в зависимости от игры, но в большинстве случаев она располагается в графических настройках. Например, опцию Суперсэмплинга можно найти в таких играх, как Shadow of Mordor, Overwatch, Batman: Arkham Knight и т.д.

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

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

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

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

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

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 сильно мылит изображение, зато требует минимум ресурсов. Не самый лучший вариант, однако один из самых популярных. При его использовании стоит понимать, что любые чёткие элементы или контрастные границы размываются, что в некоторых случаях делает картинку не сильно приятной для глаз. Поэтому вам предстоит сделать выбор между замыленным изображением и лесенками пикселей.

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.

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

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

Как активировать суперсэмплинг на Oculus Rift S

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

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

Что нужно учитывать

Суперсэмплинг требует больших вычислительных ресурсов. Если вы используете суперсэмплинг, вы должны убедиться, что ваш компьютер способен последовательно воспроизводить не менее 80 кадров в секунду. Это соответствует частоте обновления Oculus Rift S.

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

Что потребуется

Вам необходим Oculus Tray Tool для активации и оптимизации суперсэмплинга . Загрузите последнюю версию с веб-сайта Guru3D и установите программу.

Какие виды суперсэмплинга существуют?

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

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

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

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

Как активировать универсальный суперсэмплинг

  1. Откройте инструмент Oculus Tray и щелкает вкладку «Настройки игры» (Game Settings).
  2. С помощью настройки «Суперсэмплинг по умолчанию» (Default Super Sampling) вы можете активировать универсальный суперсэмплинг, выбрав значение выше 1,0. Например, если вы выберете значение суперсэмплинга 1,5, изображение будет отображаться с разрешением на 50 процентов выше, чем у исходного разрешения Rift S.
  3. Чтобы активировать универсальный суперсэмплинг, вам нужно перезапустить приложение Oculus для ПК и VR-игры.

Как активировать индивидуальный суперсэмплинг

  1. Нажмите на вкладку «Настройки игры» (Game Settings) в инструменте Oculus Tray, а затем нажмите «Просмотр и редактирование» (View & Edit) в разделе «Профили» (Profiles).
  2. В появившемся новом окне установите флажок «Подтверждение звука при применении профиля» (Audio confirmation when profile is applied). Таким образом, каждый раз, когда вы запускаете VR-игру с индивидуальным значением суперсэмплинга, вы слышите звуковое подтверждение и при этом знаете, что индивидуальный суперсэмплинг активен.
  3. Нажмите «Создать новый профиль» (Create New Profile) и выберите игру VR, для которой вы хотите установить индивидуальное значение суперсэмплинга в раскрывающемся меню «Игра / Приложение» (Game/App). Если соответствующая игра не отображается, нажмите «..» и введите EXE-файл VR-игры.
  4. Для «Super Sampling» выберите желаемое значение суперсэмплинга для игры VR. Для начала рекомендуется значение от 1,2 до 1,5, в зависимости от того, насколько мощен ваш компьютер и насколько графически требовательна игра. Затем нажмите «ОК». Теперь игра должна появиться в списке игровых профилей, включая индивидуальное значение суперсэмплинга.
  5. Теперь вы можете начать игру VR. Если вы услышали звуковое подтверждение, значение суперсэмплинга было успешно активировано.

Как назначить горячие клавиши для VR вашего ПК

  1. Нажмите на вкладку «Tray Tool» в Oculus Tray Tool, установите флажок «Enable Hotkeys» и нажмите «Configure».
  2. Выберите «HUD Performance» из выпадающего меню под «Select Function for the hotkey». Затем нажмите «Capture», нажмите верхнюю клавишу со стрелкой на клавиатуре и нажмите «Add». Поэтому, когда вы находитесь в приложении VR и нажимаете верхнюю клавишу со стрелкой, производительность ПК отображается в виде игрового дисплея, так что вы можете проверить, сохраняются ли у вас резервы производительности, и еще больше увеличить значение суперсэмплинга.
  3. Чтобы вы могли переключаться между другими полезными внутриигровыми объявлениями и снова их деактивировать, повторите назначение горячих клавиш для параметра «Next HUD» (следующее игровое объявление = клавиша со стрелкой вправо), «Previous HUD» (предыдущее = клавиша со стрелкой влево) и «Close HUD» (отключение всех игровых дисплеев = клавиша со стрелкой вниз). Назначение горячих клавиш должно выглядеть следующим образом. Конечно, вы также можете использовать другие кнопки.

Горячие клавиши для инструментов Oculus Tray 2

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

Для этого откройте пользовательский интерфейс Rift Oculus Dash, нажав кнопку Oculus. Затем выовите пользовательский интерфейс вашего ПК через Oculus Desktop и нажмите на символ клавиатуры в правом нижнем углу (см. Рисунок). Теперь вы можете с комфортом нажимать клавиши со стрелками на виртуальной клавиатуре Oculus без необходимости возиться с реальной клавиатурой.

Настольная клавиатура Oculus

Как найти оптимальное значение суперсэмплинга для Oculus Rift S

  1. Запустите приложение VR, которому вы присвоили отдельное значение суперсэмплинга, и отобразите игровой дисплей производительности ПК, нажав клавишу со стрелкой вверх на виртуальной клавиатуре Oculus. Затем вы должны увидеть внутриигровое объявление, показанное на изображении ниже.
  2. Обратите внимание на значение справа от левой диаграммы. Оно показывает, сколько кадров в секунду вычисляет ваш компьютер (от 0 до 80). «80» должно появиться здесь повсюду.
  3. Рядом с правой диаграммой в процентах отображаются резервы мощности ПК. Если они приближаются к нулю, скорость рендеринга изображений в вычислительных сценах быстро падает ниже критического предела 80 кадров в секунду.
  4. Если оба значения находятся в зеленой зоне, вы можете установить значение суперсэмплинга выше. Закройте игру VR, откройте соответствующий игровой профиль и корректируйте значение суперсэмплинга. Сохраните профиль и перезапустите приложение VR.
  5. Теперь проверьте, поддерживает ли ваш компьютер стабильные 80 кадров в секунду, и достаточно ли у вас резерва производительности ПК. Если это не так, снова уменьшите значение суперсэмплинга. Если у вас достаточно резервов производительности, вы можете увеличивать это значение, пока ваш компьютер не достигнет предела.
  6. Затем отключите отображение производительности вашего компьютера в игре, нажав кнопку со стрелкой вниз на виртуальной клавиатуре Oculus.

Вид на экран производительности Oculus Tray Tool

После назначения горячих клавиш, как описано выше, нажимайте левую или правую клавишу со стрелкой на виртуальной клавиатуре Oculus, пока не появится внутриигровой дисплей «Layer 0 Info». Теперь закройте Oculus Dash, нажав кнопку Oculus, чтобы вернуться в игру VR. Теперь текущее значение суперсэмплинга в игре VR отображается рядом с «Пиксельной плотностью».

Предупреждение: В играх SteamVR этот дисплей не работает надежно.

Вам следует избегать этой ошибки суперсэмплинга

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

Чтобы избежать этого, суперсэмплинг отключается либо в Oculus Tray Tool, либо в соответствующем приложении VR.

Как отключить суперсэмплинг через Oculus Tray Tool:

  1. Нажмите на вкладку «Настройки игры» в Oculus Tray Tool (Game Settings).
  2. Если вы используете только универсальный суперсэмплинг, установите значение «0» на «Default Super Sampling». Если вы используете индивидуальное значение суперсэмплинга, вызовите соответствующий игровой профиль и назначьте значение суперсэмплинга «0» для игры VR.
  3. Теперь вы можете запустить игру VR и установить суперсэмплинг в игровом меню.

Лучше установить суперсэмплинг в Oculus Tray Tool, если это возможно, поскольку здесь вы можете более гибко поработать со значениями суперсэмплинга.

Как суперсэмплинг работает со SteamVR

Если вам нужно играть в VR-игры через Steam с Oculus Rift S, вы также можете использовать SteamVR вместо Oculus Tray Tool для установки суперсэмплинга.

В SteamVR вы также можете установить универсальный и индивидуальный суперсэмплинг. Вот как это сделать:

  1. Откройте настройки SteamVR. Вы можете сделать это через оверлей SteamVR или выбрав значок шестеренки на панели инструментов SteamVR.
  2. Затем откройте вкладку «Видео».
  3. Чтобы настроить универсальный суперсэмплинг через SteamVR, выполните следующие действия: установите «Разрешение рендеринга» на «Пользователь …». Ползунок «Разрешение на глаз» соответствует настройке «Суперсэмплинг по умолчанию» в Oculus Tray Tool. Это означает, что вы можете использовать его для установки универсального значения суперсэмплинга для пользовательского интерфейса SteamVR и игр SteamVR. Значение 150 процентов соответствует значению суперсэмплинга 1,5 в Oculus Tray Tool. Черта показывает оптимальную настройку для вашего компьютера, измеренную его производительностью.
  4. Чтобы настроить индивидуальный суперсэмплинг через SteamVR, выполните следующие действия: откройте « Настройки видео для приложения», выберите свою игру SteamVR в раскрывающемся меню и установите желаемое значение суперсэмплинга. Как и в Oculus Tray Tool, индивидуальное значение суперсэмплинга перезаписывает универсальное значение суперсэмплинга.
  5. Перезапустите игру SteamVR и используйте внутриигровые дисплеи Oculus Tray Tool, чтобы проверить, соответствует ли установленное значение суперсэмплинга или все еще есть возможности для улучшения. Делайте это в соответствии с инструкциями выше, пока не найдете оптимальное значение суперсэмплинга.

Как отключить суперсэмплинг через SteamVR

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

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

Как сделать игры для SteamVR визуально более приглядными c использованием настроек SteamVR.
Данное руководство о настройках суперсемплинга (Supersampling, SS) и репроекции (Reprojection) кадров.

1

4,946 уникальных посетителей
159 добавили в избранное

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

Данная версия руководства актуальна для версии SteamVR 1.9 и 1.10 beta (скриншоты из версии beta 1.10.15)

В данном руководстве затронуты очень важные возможности и настройки SteamVR. Про которые желательно знать всем владельцам шлемов виртуальной реальности (VR), совместимых с SteamVR (OpenVR).

Суперсэмплинг, он же полноэкранное сглаживание, он же Full-scene Anti-aliasing (FSAA), он же Supersample anti-aliasing (SSAA) — самая старая разновидность антиалиасинга. Полноэкранное сглаживание позволяет устранить характерные «лесенки» на границах полигонов. Многие современные разновидности сглаживания в VR работают крайне плохо, и выглядит это как правило как «мыльное» изображение, за исключением возможно MSAA и TXAA, но зависит от конкретной реализации.
Повышая разрешение рендеринга с помощью настройки суперсемплинга можно получить очень приятную для глаз картинку в игре. Однако следует учитывать, что полноэкранное сглаживание потребляет немало вычислительных ресурсов, что приводит к падению частоты кадров (как с этим бороться смотрите в той части руководства в которой говорится о репроекции кадров). Вероятно самый лучший вариант это комбинировать суперсэмплинг с MSAA или TXAA, если данные типы сглаживания присутствуют в игре или приложении.

SteamVR оперирует двумя настройками суперсемплинга одна для игр и приложений, вторая для VR интерфейса Steam и оверлеев сторонних программ (так же называют его «Дашбоард«, Dashboard, Compositor). Настройка суперсемплинга для игр и приложений происходит, через интерфейс SteamVR. Напрямую настроить разрешение для дашборда (композитора) нельзя, можно косвенно на нее повлиять через конфигурационные файлы, а вообще зависит от скорости видеокарты.
В этом гайде рассматривается только настройка суперсемплинга для игр и приложений.

Суперсемплинг в SteamVR задается процентами, во вспомогательных утилитах (а так же например в ПО Oculus) или в файлах конфигурациях SteamVR задается коэффициентами.
Примеры:
20% = 0.2
100% = 1.0
153% = 1.53
400% = 4.0

100% или коэффициент 1.0 обозначает стандартное разрешение рендеринга для шлема, оно немного больше чем разрешение экранов.

Разрешения рендеринга (не матриц экранов!) для разных шлемов при суперсемплинге 1.0 или 100% на один глаз: Шлем: <коэффициенты отличия от размерности матрицы>= () HTC Vive: 1.40x and 1.40x = 1512 x 1680 (2.540M пикселей) LCD WMR: 1.11x and 1.11x = 1592 x 1592 (2.534M) (нужно перепроверить, возможны изменения) Samsung Odyssey/Odyssey+: 0.99x and 1.11x = 1424 x 1780 (2.534M) (нужно перепроверить, возможны изменения) Oculus Rift: 1.24x and 1.33x = 1344 x 1600 (2.150M) Oculus S: 1.29x and 1.23x = 1648×1776 (2.927M) (в режиме приоритета качества) HTC Vive Pro: 1.40x and 1.40x = 2016 x 2240 (4.515M) Valve Index: 1.40x and 1.40x = 2016 x 2240 (4.515M) кол-во пикселей в скобках указано без учета не используемых областей экрана, которые различаются у разных шлемов

Больше 100% или коэффициент больше 1 будет означать увеличение разрешение рендеринга, а значит и повышения требования к «железу», Меньше 100% или коэффициент меньше 1 будет приводить к уменьшению разрешения рендеринга и снижению требования к «железу» для данного приложения или игры.

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

Для того чтобы показать как происходит умножение процентов и коэффициентов, вот несколько примеров:
100%*150%=150% (1.0*1.5=1.5)
150%*150%=225% (1.5*1.5=2.25)

Имейте ввиду что в некоторых играх внутри игровая настройка может задаваться не процентами, а коэффициентом, и этот коэффициент может обозначать вовсе не во сколько раз общее кол-во пикселей отличается от оригинального разрешения рендеринга, а размерность по одной из сторон разрешения. То есть может показывать на сколько изменятся размерность разрешения по вертикали и горизонтали. Например коэффициент 2.0 означает 400% пикселей в итоговом разрешении в отличии от оригинального разрешения для рендеринга шлема. Это старая система обозначения суперсемплинга которая применялась в старых версия SteamVR. К слову в ПО Oculus до сих пор используется именно это система. Поэтому например коэффициент 1.2 в ПО Oculus аналогичен 140% в СтимВР (1.2 x 1.2 = 1.4 =140%)

Самый простой способ настраивать суперсемплинг — настраивать его через интерфейс SteamVR.
Чтобы открыть настройки нажмите в нижнем правом углу дашборда SteamVR значок настроек. В окне настроек выберите раздел «Видео».

В этом окне по умолчанию не установлен режим управления суперсемплингом в ручную (на изображении выше выставлен ручной режим).
SteamVR при запуске производит короткое тестирование производительности видео карты и на ее основе выставляет рекомендуемое для вашей видеокарты значение суперсемплинга. Если вы установите в этом окне галку ручного управления, то увидите это значение.
Например для шлема HTC Vive будет предлагаться следующие значения для разных видеокарт:
GTX 970 = 100%
GTX 1060 = 100%
GTX 1070 = 130%
GTX 1080 = 150%
GTX 1080Ti = 150%
Как видите 150% это максимальное ограничение в SteamVR для устанавливаемых по умолчанию значений.

Ползунок и есть настройка общего суперсемплинга для VR игр и приложений. Для большинства игр и приложений не требуется перезапуск, если изменения не вносят корректировку в качество изображения(чтобы убедится возможно стоит в более широком диапазоне проверить выставляя например очень низкие значения, например 20%-40%) то либо приложение автоматически меняет суперсемплинг самостоятельно, либо настраивается только своими встроенными настройками или нужно выполнить перезапуск игры/приложения для применения настроек SteamVR.
Здесь же в окне вы можете видеть разрешение рендеринга на один глаз в пикселях.

Кроме того для того чтобы не настраивать данный ползунок каждый раз при запуске другой новой игры, предусмотрена корректирующая настройка для каждого отдельного приложения. Вы можете выставить в разделе настроек «Видео» постоянный коэффициент или оставить автоматический режим который выставит значение которое лучше подходит для видеокарты по мнению SteamVR и по кнопке «Per-Application Video Settings» («Настройки видео для приложения») выбрать корректировку суперсемплинга с помощью ползунка именно для этой конкретной игры.

Если игра у вас запущена название игры в ниспадающем поле выбора игры подставится автоматически. Выставленное значение ползунком будет сохранено и применяться автоматически при каждом запуске данной игры/приложения .
Рассмотрим пример:
Предположим что у вас Vive и GTX 1070, и в настройках «Видео» у вас включена автоматическая установка значение суперсемплинга (галочка снята), ориентировочно значение у вас там будет 130% (1.3).
В настройке «На-Приложение» для конкретной игры установлено в 110%
Значит итоговое значение суперсемплинга SteamVR у вас будет 130%*110%=1.3*1.1=1.43 или 143% от разрешения рендеринга по умолчанию для шлема. (не забывайте что игра может иметь и свою настройку внутри игры, можно оставить ее равной 100% или 1.0, и управлять только из SteamVR, иначе вам нужно и эту настройку внутри игры учитывать аналогично).
Итоговое разрешение показывает только в настройках видео «на-приложение», только тут SteamVR умножает глобальную настройку и настройку на-приложение. В общем разделе «Видео» показываемое разрешение на глаз не учитывает настройку на приложение. Не очень это интуитивно понятно сделано, но что есть то есть.

Теперь о том как настроить через конфигурационные файлы, это способ для тех кто любит трудности. Данный способ не рекомендуется тем кто не знает синтаксиса файлов JSON (JavaScript Object Notation).

И так, как настроить через конфигурационные файлы:

Конфигурационный файл steamvr.vrsettings расположен в папке steamconfig):
Найдите код

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

Для настройки «на-приложение», ищите код типа:

для каждой игры создается такой раздел. Параметр «resolutionScale» отвечает за настройку. Указывается в процентах.

Какие значения коэффициентов выставлять — все зависит от производительности вашей системы, требований самой игры или приложения к системе, ваших личных ощущений «плавности картинки» игры или приложения.
Если вы новичок в VR возможно имеет смысл общее значение суперсемплинга оставить в автоматическом режиме, и регулировать только значения для отдельных игр и приложений.
Корректирующие значения для приложений (раздел настроек видео «На-Приложение») по умолчанию выставлены в 100% что фактически означает, что будет браться общее значение (раздел настроек «Видео»).
В той или иной игре значение приемлемое для вас может быть очень разным. Выбирайте пробуйте и экспериментируйте.

Стоит упомянуть, что в некоторых играх может иметься такой функционал как
«Динамическое разрешение», который может изменять настройки суперсемплинга на ходу. И игра при этом может ориентироваться (брать как максимальное значение для своего некоторого диапазона) или игнорировать значения которые вы выставите в настройках, игра будет при этом менять значения суперсеплинга в зависимости от загруженности вашей видеокарты. Яркие примеры таких игр :
Doom VFR — игнорирует ваши настройки, можно отключить динамическое разрешение через консоль
PAYDAY 2 — использует ваши настройки как ориентир, можно отключить динамическое разрешение через настройки игры
The Elder Scrolls V: Skyrim VR — использует ваши настройки как ориентир, можно отключить динамическое разрешение через настройки игры
The Lab, SteamVR Home — использует ваши настройки как ориентир, нельзя отключить динамическое разрешение, так же управляет автоматически сглаживанием MSAA.

Немного теории. Asynchronous Reprojection, Interleaved Reprojection, Motion Smoothing — это функционал SteamVR предназначенный для предотвращения появления пропущенных кадров в тех случаях когда приложение или игра не способна выдавать fps равный частоте экранов вашего шлема.
Asynchronous Reprojection, Interleaved Reprojection, Motion Smoothing это функционал SteamVR который генерирует синтетические кадры на основе предыдущих кадров (производится это путем репроекции предыдущего кадра таким образом чтобы у пользователя сложилось впечатление, что это новый кадр, даже не смотря на движение шлема, то есть чтобы сложилось впечатление, что приложение или игра продолжает успевать выдавать новые кадры с требуемой частотой), и они доступны только для следующих шлемов: HTC Vive, HTC Vive Pro, Valve Index. Остальные шлемы которые поддерживаются в SteamVR имеют схожий функционал, но он выполняется не композитором SteamVR, а на стороне программного обеспечения вашего шлема (то есть родным композитором вашего шлема).

    Interleaved Reprojection (Репроекция с чередованием) — репроекцируется каждый второй кадр, то есть от приложения уже не требуется 90 fps (для шлема с частотой 90Hz), достаточно 45 (или кадр за 22мс). Это снижает требования к приложению/игре. Но тем не менее есть и минусы, если при повороте головы вам все еще будет казаться что плавность сохранилась как при 90 fps то у близких объектов (руки или оружие) или быстро перемещающихся объектов будут заметны артефакты двоения или ряби. При включенной опции, режим Interleaved Reprojection в процессе игры будет включаться автоматически как только кадр не будет готов за отведенные 11 мс (для частоты кадров 90Hz, для других другие значения), выход из это режима будет происходить так же автоматически по определенному алгоритму, в режим стандартной частоты кадров шлема.

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

Тут же есть опция «Использовать классический режим репроекции», название этой опции не совсем верное и может запутать. Данная опция отключает так называемый асинхронный режим работы композитора SteamVR, что приводит к тому что Asynchronous Reprojection, Interleaved Reprojection, Motion Smoothing — отключаются. Если время кадра выйдет за лимит отведенный на кадр, то ни каких синтетических кадров подставляться не будет, кадр будет пропускаться, а на экране вы будете видеть микрофризы. Однако такой режим бывает полезен иногда в некоторых играх, при использовании этой опции экономится немного времени на подготовку кадра которую съедает CPU. Если вы уверены что игра способна выдавать очень стабильный fps без сильных перепадов, то можете попробовать этот режим.

Данный материал подготовлен на основе опыта админов и рядовых участников Steam-группы Vive Rus
и дискорд-сервера VR RUS [discord.gg] .
Если вы нашли какие то ошибки и неточности, сообщите об этом в комментариях к данному руководству.

Сглаживание. Какое лучше?

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

Aliasing Antialiasing

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

csgo antialiasing

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

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 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, в котором границы обрабатываются несколько иначе. За счет чего улучшена производительность.

Суперкомпьютер, достоверность и выбраковка: как работает суперсэмплинг DLSS 2.0

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

Суперкомпьютер, достоверность и выбраковка: как работает суперсэмплинг DLSS 2.0

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

В рамках конференции GTC, перенесенной в онлайн из-за эпидемии, сотрудники Nvidia рассказали, как работает DLSS 2.0, чем она отличается от первого поколения и в чем разница между DLSS и апскейлом. Вот самые интересные моменты из этого рассказа.

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

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

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

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

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

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

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

Наличие нескольких кадров позволяет сравнивать их между собой и восстанавливать детали, которые могут отсутствовать в случае однокадрового подхода. Примерно так же работает «шахматный» рендеринг на PlayStation 4 Pro.

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

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

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

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

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

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

Горин Павел/ автор статьи

Павел Горин — психолог и автор популярных статей о внутреннем мире человека. Он работает с темами самооценки, отношений и личного роста. Его экспертность основана на практическом консультировании и современных психологических подходах.

Понравилась статья? Поделиться с друзьями:
psihologiya-otnosheniy.ru
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: