Да кто такой этот ваш DLSS?
Да кто такой этот ваш DLSS?
Создаю эту тему больше для удобства, чтоб незнающие узнали, чтоб мои изыскания не затерялись где-то в глубине форума, чтоб можно было если что скинуть ссылку с подробной информацией, которой в интернете, увы, мало.
Начнем с того, чем же на самом деле является 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
Last edited by MetalSnow on 09 Mar 2021, 10:20, edited 6 times in total.
Проц - красненький, видеокарта - зелёненькая
-
- Posts: 6878
- Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?
это можно опубликовать где-нибудь в более видном месте. Ща подумаемс
- ghostwraith
- Posts: 836
- Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?
Форс привет, могу курировать ветку водянок. Спасибо
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
-
- Posts: 6878
- Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?
Привет, я не против. Пока работаю над правами группы "кураторы", чуть позже(сегодня) дам статус куратора.
Но хочу прояснить: тут не оверы. Думаю, подробнее объяснять не нужно. Чистый лист, чистая совесть, любые фанатские срачи и прочее тут страшное преступление (на мелкие перепалки в несколько постов я еще может глаза закрою). Это не только тебя касается, а всех и каждого, в том числе и меня.
Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
Но хочу прояснить: тут не оверы. Думаю, подробнее объяснять не нужно. Чистый лист, чистая совесть, любые фанатские срачи и прочее тут страшное преступление (на мелкие перепалки в несколько постов я еще может глаза закрою). Это не только тебя касается, а всех и каждого, в том числе и меня.
Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
- ghostwraith
- Posts: 836
- Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?
спасибо за статью! многое объясняет, почему в статике все нормально. А в динамике вылазят проблемы. Думаю лет через 10 нейросеть научится адекватно гасить артефакты.
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
- ghostwraith
- Posts: 836
- Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?
сегодня думал по этому поводу. Предлагаю создать правило, где оскорбительные выражения закрашиваются черным. Для всех будет скрыто, а кому надо те ткнут и прочитают (для некоторых людей это норма общения и не является оскорблением. И не ущемит в праве выражения мысли). Инструменты форума это позваляют делать?RadeonForce wrote: ↑12 Mar 2021, 21:50
Для срачей создадим подвал, все же есть любители этого дела, от этого никуда не деться...
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
-
- Posts: 6878
- Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?
зачем вообще доводить до ругательств? Такое можно реализовать в подвале, чтобы эти посты не отображались на основном сайте.ghostwraith wrote: ↑12 Mar 2021, 22:12 сегодня думал по этому поводу. Предлагаю создать правило, где оскорбительные выражения закрашиваются черным. Для всех будет скрыто, а кому надо те ткнут и прочитают (для некоторых людей это норма общения и не является оскорблением. И не ущемит в праве выражения мысли). Инструменты форума это позваляют делать?
- ghostwraith
- Posts: 836
- Joined: 12 Mar 2021, 21:40
Re: Да кто такой этот ваш DLSS?
дело не в доводить, а в том, что для многих это нормальная форма общения. Которая в принципе порицается, но всеми используется. Если данное предложение не подходит, то я только предложил.
AMD 5900x 5.050 MHz PBO -21 AllCore,32DDR4-3733 CL14-14-14-28
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Radeon VII 2125Mhz 1221mV Zima, Radeon VII 2099Mhz 1218mV Leto, Bench...
https://sysprofile.ru/p/1/ghostwraith
Re: Да кто такой этот ваш DLSS?
А где ссылка на блог нв в вк, где они сами это разбирают?
-
- Posts: 6878
- Joined: 27 Nov 2020, 19:01
Re: Да кто такой этот ваш DLSS?
Наткнулся на эту статью из другого топика и хочу уточнить пару моментов по работе DLSS и не только
Сам элемент темпорального накопления применялся очень давно ещё для оффлайн рендеров трассировки лучей, а идея использовать это при растре для сглаживания появилась примерно в 2009 году, в статье Amortized supersampling.Там предлагались различные варианты увеличения производительности суперсэмплинга
Первая же игра с подобным антиялясингом NV называет Halo Reach(2010 год)
1.Лоу рез сцена, тут всё понятно-это тот самый ренедр в пониженном разрешении
2.Jitter Offsets-это берется несколько предыдыдущих кадров и смещается относительно текущего чтобы и получить те самые сэмплы
3.Depth-G buffer
4.Moution Vectors-моушн векторы это такие координаты которые показывают на какое конкретно расстояние и на какую позицию "переместился" пиксель, рассчитываются они как раз при пункте 2 когда происходит наложение нескольких кадров и вычисления сэмплов, этот процесс вообще есть в каждой игре с TAA
5.Карта глубины
6.Карта цветов
1.DLSS не тренируется в реальном времени, нейронка УЖЕ обучена и лишь инференсно запускается
2.Аппаратное обеспечение в виде тензорных ядер которые позволяют очень быстро слаживать эти самые матрицы которые нейронке нужны
Для сравнения как бы оно работало без них-есть технический анализ нейронки для реконструкции изображений от фейсбука и там приведены результаты
Запускалось это на Titan V с использованием FP16, то есть не использовались тензорные операции и всё работало на обычных ALU
Результат я думаю очевиден
Вообще чтобы действительно понимать как работает DLSS, надо погрузиться в нейронные сети и понять что такое автоэнкодеры, какие сети вообще бывают, почему они впринципе называются "нейронными" и как происходит обучение
Из всех роликов что на ру что англ сегменте это самое простое в понимании и самое полное
Рассказано проще некуда, но тема такая обширная и сложная для понимания обычного человека что меньше чем за час там не управиться
TAA никем на запатентован и под этим словосочетанием подразумеваться может что угодно.Сам по себе он ничего нового не предлагает, обычное уравнивание цвета пикселей, но с применением нескольких кадровпоявляется TAA, не понятно от кого
Сам элемент темпорального накопления применялся очень давно ещё для оффлайн рендеров трассировки лучей, а идея использовать это при растре для сглаживания появилась примерно в 2009 году, в статье Amortized supersampling.Там предлагались различные варианты увеличения производительности суперсэмплинга
Первая же игра с подобным антиялясингом NV называет Halo Reach(2010 год)
Неа, подробно рассказываю что тут подаётсяИз всего, что подается на вход, лично я думаю, что только motion vectors целесообразно рассчитывать в нейронной сети
1.Лоу рез сцена, тут всё понятно-это тот самый ренедр в пониженном разрешении
2.Jitter Offsets-это берется несколько предыдыдущих кадров и смещается относительно текущего чтобы и получить те самые сэмплы
3.Depth-G buffer
4.Moution Vectors-моушн векторы это такие координаты которые показывают на какое конкретно расстояние и на какую позицию "переместился" пиксель, рассчитываются они как раз при пункте 2 когда происходит наложение нескольких кадров и вычисления сэмплов, этот процесс вообще есть в каждой игре с TAA
5.Карта глубины
6.Карта цветов
Очень просто, генеративно-состязательная сеть с версии 2.0 не обучается конкретно под каждую игручто же тогда улучшили в dlss 2.0?
На самом деле гостинг она не устраняет, сама нейронка занимается лишь реконструкцией, алгоритма подавления гостинга в ней нет.NV лишь улучшает эту самую сеть чтобы гостинга было меньше, но самого алгоритма подавления у DLSS нетсеть ловить и устранять гостинг
Самое сложно здесь эту самую нейронку запустить, почему dlss работает так быстро? 2 вещив остальных пунктах я не вижу сложных вычислений
1.DLSS не тренируется в реальном времени, нейронка УЖЕ обучена и лишь инференсно запускается
2.Аппаратное обеспечение в виде тензорных ядер которые позволяют очень быстро слаживать эти самые матрицы которые нейронке нужны
Для сравнения как бы оно работало без них-есть технический анализ нейронки для реконструкции изображений от фейсбука и там приведены результаты
Запускалось это на Titan V с использованием FP16, то есть не использовались тензорные операции и всё работало на обычных ALU
Результат я думаю очевиден
Вообще чтобы действительно понимать как работает DLSS, надо погрузиться в нейронные сети и понять что такое автоэнкодеры, какие сети вообще бывают, почему они впринципе называются "нейронными" и как происходит обучение
Из всех роликов что на ру что англ сегменте это самое простое в понимании и самое полное