Да кто такой этот ваш DLSS?
Posted: 07 Mar 2021, 21:57
Создаю эту тему больше для удобства, чтоб незнающие узнали, чтоб мои изыскания не затерялись где-то в глубине форума, чтоб можно было если что скинуть ссылку с подробной информацией, которой в интернете, увы, мало.
Начнем с того, чем же на самом деле является DLSS? И..... это модифицированное TAA! Вот это новость, хотя для кого-то и нет. Как же я к этому пришел? Ну, начнем с того, что nvidia уже баловалась с многокадровым сглаживанием, достаточно вспомнить TXAA - для фильтрации пикселей на экране TXAA использует выборку сэмплов как внутри, так и снаружи пикселя, в соединении с выборками из предыдущих кадров, чтобы обеспечить по возможности самое высокое качество фильтрации. Или же чуть менее известное MFAA - по-сути тоже самое, что и TXAA, только почти не мылит. К слову, по какой-то причине и TXAA и MFAA требуют дополнительного сглаживания MSAA, вероятно, для лучшего эффекта сглаживания.
Спустя какое-то время появляется TAA, не понятно от кого, зато этот алгоритм не требует дополнительного MSAA и способен работать самостоятельно. Основан он чисто на сборе информации из предыдущих кадров, чем больше кадров, тем лучше сглаживание и тем мыльнее картинка (привет рдр2), и наоборот. Стоит отметить, что присутствует дополнительный алгоритм, который подтирает "остатки" предыдущих кадров, если он плохо справляется, мы видим дублирующиеся остатки, ореолы, пиксельную кашу, ну и просто мыло. И вот, спустя какое-то время nvidia выкатывает dlss 1.0, который продолжительное время обучают для каждой игры и т.д. и т.п. Долгое время я считал, что dlss 1.0 не использует предыдущие кадры, судя по качеству, складывалось ощущение, что он работает только с одним кадром, но спустя какое-то время, я заметил характерные для ТАА артефакты. На это потребовалось действительно много времени т.к. маскировались они просто на ура.
Выходит, что dlss 1.0 уже использовал предыдущие кадры, как и многие технологии до него, так чего же там нейронную сеть тренировали для каждой игры? Тут я точно не скажу, могу лишь предположить, что алгоритм поиска движения, дабы загасить артефакты у движущегося объекта, и в сравнении с ТАА этот алгоритм себя таки лучше проявляет, почти не давая повторения движущегося объекта.
А что же тогда улучшили в dlss 2.0? Ну, тут я опять же могу лишь предполагать, основываясь на наблюдениях и на презентации, посвященной dlss 2.0.
Ключевые моменты из презентации:
Вернемся к вопросу: что же тогда улучшили в dlss 2.0? Я думаю, что они решили, что достаточно натренировали нейронную сеть ловить и устранять гостинг, и поэтому можно многократно увеличить количество предыдущих кадров. Именно поэтому во многих роликах с тестом dlss 2.0 в том же control, внезапно всплывали детали, которых не было видно без dlss. Увеличиваем количество кадров до 8, получаем суперсемплинг х8, увеличиваем до 16, получаем уже х16, а нейронная сеть, как нибудь подавит гостинг. Поэтому неудивительно, что всплывали такие мелкие детали.
Так сколько же кадров использовал dlss 1.0? Ну судя по наблюдениям - не более 8, думаю в районе 3-6. А сколько же использует dlss 2.0? Можно посчитать. Для сравнения добавил и ТАА
Исходя из этого не должно возникать вопросов, почему dlss мылит, или откуда артефакты на проводах и перилах в death stranding. Тут хороши те же методы борьбы, что использовались в рдр2: шарп и увеличенное разрешение рендеринга.
И напоследок киберпанк и 2 стула: dlss - мыло и taa - четкость
Так что же такое DLSS? Я бы сказал, что это эволюция (TXAA - MFAA - DLSS) идеи сглаживания, которое ело бы мало ресурсов, плюс щепотка шарпа... упс. Алгоритм основан на ТАА, но с куда большими масштабами. Остается надеяться, что технология будет и дальше развиваться, а нейронка научится еще лучше чистить изображение
Начнем с того, чем же на самом деле является DLSS? И..... это модифицированное TAA! Вот это новость, хотя для кого-то и нет. Как же я к этому пришел? Ну, начнем с того, что nvidia уже баловалась с многокадровым сглаживанием, достаточно вспомнить TXAA - для фильтрации пикселей на экране TXAA использует выборку сэмплов как внутри, так и снаружи пикселя, в соединении с выборками из предыдущих кадров, чтобы обеспечить по возможности самое высокое качество фильтрации. Или же чуть менее известное MFAA - по-сути тоже самое, что и TXAA, только почти не мылит. К слову, по какой-то причине и TXAA и MFAA требуют дополнительного сглаживания MSAA, вероятно, для лучшего эффекта сглаживания.
Спустя какое-то время появляется TAA, не понятно от кого, зато этот алгоритм не требует дополнительного MSAA и способен работать самостоятельно. Основан он чисто на сборе информации из предыдущих кадров, чем больше кадров, тем лучше сглаживание и тем мыльнее картинка (привет рдр2), и наоборот. Стоит отметить, что присутствует дополнительный алгоритм, который подтирает "остатки" предыдущих кадров, если он плохо справляется, мы видим дублирующиеся остатки, ореолы, пиксельную кашу, ну и просто мыло. И вот, спустя какое-то время nvidia выкатывает dlss 1.0, который продолжительное время обучают для каждой игры и т.д. и т.п. Долгое время я считал, что dlss 1.0 не использует предыдущие кадры, судя по качеству, складывалось ощущение, что он работает только с одним кадром, но спустя какое-то время, я заметил характерные для ТАА артефакты. На это потребовалось действительно много времени т.к. маскировались они просто на ура.
Метро Исходус
А что же тогда улучшили в dlss 2.0? Ну, тут я опять же могу лишь предполагать, основываясь на наблюдениях и на презентации, посвященной dlss 2.0.
Презентация
Spoiler
Здесь представлен временный суперсэмплинг, как известно суперсемплинг - это очень тяжелое сглаживание, которое делает несколько выборок на пиксель, фактически кратно повышая разрешение рендеринга х2, х4 и т.д. Идея же временного суперсемплинга в том, чтоб эти выборки брать из предыдущих кадров, таким образом за 4 кадра, мы получаем суперсемплинг х4, правда проблемы начинаются, когда изображение не статичное.
Тут вычурно представлено повторение движущегося предмета, как в примерах с Метро, называется гостинг, думаю, в дальнейшем буду этот эффект так и называть. Гостинг появляется без использования "history rectification" (типа временное исправление), некий алгоритм, который и подтирает лишнюю информацию из предыдущих кадров, либо если этот алгоритм плохо справляется.
Тут видно, что подается нейронной сети на вход, на выходе же получаем готовое изображение. Из всего, что подается на вход, лично я думаю, что только motion vectors целесообразно рассчитывать в нейронной сети, в остальных пунктах я не вижу сложных вычислений.
Тут вычурно представлено повторение движущегося предмета, как в примерах с Метро, называется гостинг, думаю, в дальнейшем буду этот эффект так и называть. Гостинг появляется без использования "history rectification" (типа временное исправление), некий алгоритм, который и подтирает лишнюю информацию из предыдущих кадров, либо если этот алгоритм плохо справляется.
Тут видно, что подается нейронной сети на вход, на выходе же получаем готовое изображение. Из всего, что подается на вход, лично я думаю, что только motion vectors целесообразно рассчитывать в нейронной сети, в остальных пунктах я не вижу сложных вычислений.
Control ghosting
DLSS
TAA
лично я у DLSS насчитал 23 следа от пневмопочты, хотя скорее всего больше. У TAA только 14, хотя, стоит сказать, что фпс там ниже, поэтому всего 14 за, примерно, то же расстояние. Вот уж действительно, навернем по-больше предыдущих кадров, а нейронка, как нибудь сама справится. Из того, что видно на скрине, получается минимум х24 суперсемплинг (относительно разрешения рендера, а не конечного)
TAA
лично я у DLSS насчитал 23 следа от пневмопочты, хотя скорее всего больше. У TAA только 14, хотя, стоит сказать, что фпс там ниже, поэтому всего 14 за, примерно, то же расстояние. Вот уж действительно, навернем по-больше предыдущих кадров, а нейронка, как нибудь сама справится. Из того, что видно на скрине, получается минимум х24 суперсемплинг (относительно разрешения рендера, а не конечного)
И напоследок киберпанк и 2 стула: dlss - мыло и taa - четкость
Cyberpunk
здесь стоит отметить, что TAA использует мало кадров, поэтому плохо сглаживает, но не дает сильного мыла и гостинга, обратите внимание на зеркала у машины
DLSS
TAA
и еще DLSS
а тут можно посмотреть на разницу в статике между DLSS и TAA. На первый взгляд картинка с ТАА может показаться лучше, но дьявол кроется в деталях, достаточно приглядеться к кактусам слева или к прутьям решетки, с TAA они имеют лесенки и вообще распадаются на пиксели, а с DLSS таких проблем нет, опять же, похоже, что здесь в ТАА используется крайне мало кадров, из-за чего не достает информации для качественного сглаживания.
DLSS
TAA
DLSS
TAA
и еще DLSS
а тут можно посмотреть на разницу в статике между DLSS и TAA. На первый взгляд картинка с ТАА может показаться лучше, но дьявол кроется в деталях, достаточно приглядеться к кактусам слева или к прутьям решетки, с TAA они имеют лесенки и вообще распадаются на пиксели, а с DLSS таких проблем нет, опять же, похоже, что здесь в ТАА используется крайне мало кадров, из-за чего не достает информации для качественного сглаживания.
DLSS
TAA