Войти
Unreal EngineФорумПрограммирование

UE5 Nanite, виртуальная геометрия

Страницы: 1 2 3 4 Следующая »
#0
(Правка: 19:59) 18:59, 20 мая 2020

Ваши смелые догадки алгоритма, как это(https://www.youtube.com/watch?v=qC5KtatMcUw) можно запускать не на 3080ti NVIDIA DGX A100 (https://www.youtube.com/watch?v=TJcKYUTaBtg) а на ПиСи ваших ползователей?

Nanitе, скорее всего, относится только к "статической" геометрии.

из видео:
Загрузка assетов из zbrush/maya/cad/qixelmegascan без оптимизаций, миллионы поликов на каждый.
Использование виртуальной текстуры для 8к текстур.
Полики вплоть до пиксельного размера, и в тени nanite умеет, и дравколы не волнуют.
Cтатуя 33млн поли * 500 раз, без лодов, без запекания нормалей.
Биллионы исходных поликов в каждом кадре обрабатывает в 20 млн поликов без потери образа.

https://youtu.be/qC5KtatMcUw?t=138

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


#1
19:04, 20 мая 2020

slax
> Видно как небольшие блоки сменяются при повороте камеры.
Лоды?)

#2
(Правка: 19:40) 19:38, 20 мая 2020

Извиняюсь если оффтоп, но я еще хотел бы услышать смелые догадки на счет того зачем это делать. Зачем оптимизировать отрисовку неоптимизированного контента с полупиксельными полигонами, если есть bump mapping, POM, та же тесселяция, которую теперь можно как угодно творить в Mesh-шейдерах. Но нет, разрабам захотелось показать кто тут самый умный, и теперь любая игра на Unreal'е будет требовать 1TB NVMe SSD и 2080Ti.
P. S. NVIDIA DGX A100 вроде как раз не справится с этим - она ведь для AI.

#3
19:43, 20 мая 2020

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

#4
19:47, 20 мая 2020

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

ты поработай на реальном проекте с художниками - по 100-500 переделывать

#5
19:52, 20 мая 2020

innuendo
> ты поработай на реальном проекте с художниками - по 100-500 переделывать

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

#6
(Правка: 20:01) 19:58, 20 мая 2020

phridrich
> Извиняюсь если оффтоп, но я еще хотел бы услышать смелые догадки на счет того
> зачем это делать. Зачем оптимизировать отрисовку неоптимизированного контента с
> полупиксельными полигонами, если есть bump mapping, POM, та же тесселяция,
> которую теперь можно как угодно творить в Mesh-шейдерах.

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

phridrich
> Но нет, разрабам
> захотелось показать кто тут самый умный
Как и тебе захотелось показать что ты умнее их

phridrich
> и теперь любая игра на Unreal'е будет
> требовать 1TB NVMe SSD и 2080Ti.
Пруфов конечно же не будет?


gamedevfor
> На реальных проектах никто тяжелые ассеты не использует,
Потому что тяжелые ассеты убивают производительность.

gamedevfor
> ну и занимаются оптимизацией само собой.
А теперь можно не заниматься и иметь тот же самый результат и производительность

gamedevfor
> Речь о том что UE5 пытается понизить порог входа для
> школьников (читай ответочка Unity) которые ничего переделывать не будут, а
> будут сразу в продакшин заливать.
А мне казалось что бы облегчают интеграцию моделей для всех разработчиков. Но опять же, форумным экспертам виднее.

#7
(Правка: 20:24) 20:17, 20 мая 2020

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

Для больших игроделов ничего не меняется, так как GTA на UE5 будет занимать 100Tb+ места на диске, но для школьников запилить игру на десяток детализированных комнат на 1Tb будет нормой.

#8
20:25, 20 мая 2020

gamedevfor
Так а нельзя было просто сделать удобную кнопочку "оптимизировать меш"? Вроде как существуют соответствующие утилиты, может даже не пришлось бы писать велосипед.

Kripto289
> А зачем не делать?
Например

Потому что тяжелые ассеты убивают производительность.

Kripto289
> Как и тебе захотелось показать что ты умнее их.
Где именно? Я задал конкретный вопрос, на который я действительно не знаю ответ. Если есть что сказать - говори, если нет - значит вопрос задавался не тебе, можешь проходить мимо.

Kripto289
> Пруфов конечно же не будет?
А на чем еще ты собрался стримить и растеризировать такую геометрию?

#9
(Правка: 20:40) 20:37, 20 мая 2020

phridrich
> Например
>>Потому что тяжелые ассеты убивают производительность.
Мы говорим о ue5? У тебя уже есть тесты производительности?
Мы не обсуждаем производительность тяжелых ассетов там, где под них не заточен рендеринг.

phridrich
> Где именно? Я задал конкретный вопрос, на который я действительно не знаю
> ответ. Если есть что сказать - говори, если нет - значит вопрос задавался не
> тебе, можешь проходить мимо.
Там нет вопроса. Там есть только констатация твоих домыслов, что разработчики сделали всё зря и что всё это будет весить 1 тб.

phridrich
> А на чем еще ты собрался стримить и растеризировать такую геометрию?
Мы говорим о хранении моделей на ssd?  Так они сжимаются точно так же как и текстуры. 8к текстура вмещает 67млн пикселей = 67 млн позиций вершин.
А уж как они делают стриминг и растеризацию, тут другой вопрос. Ни ты ни я не знаем и нет смысла спорить. Но есть факт, что они рендерят 60 миллиардов треугольников в реалтайме.
И явно их сцена весит меньше 1тб ибо как минимум ps5 имеет 800гб ssd.

#10
20:55, 20 мая 2020

Kripto289
> И явно их сцена весит меньше 1тб ибо как минимум ps5 имеет 800гб ssd.

Даже если она весит 100гб то это овермного.

#11
(Правка: 21:00) 20:58, 20 мая 2020

gamedevfor
> Даже если она весит 100гб то это овермного.
Для демосцены? Это же не игра.
Они показывают новый метод рендеринга, и закидывают максимально тяжелые ассеты и модельки для демонстрации возможностей. Это не значит что щас все должны побежать и делать статую на 33 млн треугольников.

#12
21:00, 20 мая 2020

slax
> Ваши смелые догадки алгоритма
Тут совершенно случайное совпадение, когда я сделал первые тесты сжатия текстур на UNIGINE и отписался разработчику, то сделал предположение что от ЛОДов необходимо отказываться. И тут выходит видосик с УЕ5.
В общем, я проводил исследования почему в Юньке вечно мультяшный графон и по которым оказалось что добиться вменяемой фотографической картинки стандартными средствами возможности нет.
Причина в том, что идет постоянный рассинхрон разрешения того что на экране и того что в памяти, из-за чего идет постоянная потеря данных при сжатии текстур.
Я пока еще полностью не оформил эту мысль, но очевидно, что, чтобы исключить эти потери, необходимо использовать исходники высокого разрешения и динамически менять это разрешение в строгом соответствии с тем, какое разрешение этот объект будет занимать на экране. Кроме того, необходима строгая корреляция между разрешением текстуры на модели и геометрией самой модели. В таком случае, ЛОДы теряют свой функционал, поскольку по факту ЛОДы будут генерироваться динамически в зависимости от того, какой объем на экране занимает эта модель и подбирать для нее соответствующее разрешение текстур.
Если говорить проще, то за основу берется классический алгоритм ЛОДов, разработанный еще 50 лет назад.
Вот для чего все это нужно.

#13
21:36, 20 мая 2020

Kripto289
> У тебя уже есть тесты производительности?
Тестов нет, но есть здравый смысл. Он подсказывает, что чем больше треугольников тем больше время растеризации. И время, потраченное на пиксельные шейдера миллиона однопиксельных треугольников и одного миллионопиксельного - тоже совсем разное. И никакие затачивания рендера это не изменит, так как это обусловлено архитектурой железа.

> Там нет вопроса.
Вопрос в "зачем". Есть куча вещей, на которые можно использовать вычислительную мощность ГП, но почему-то она была использована на то, что бы избавить художников от необходимости оптимизировать меш.

> Так они сжимаются точно так же как и текстуры.
Модель в 60 миллионов вершин - это (60*количество байт на вершину) MB. Я понимаю, что их можно сжать и даже представляю как это можно сделать, но все равно получится пару сотен мегабайт на такую модель. К тому же не забывай про стриминг - при каждой перезагрузке модели придется ее декодировать (хотя о чем это я, давайте просто перенесем это в рантайм и получим еще большую просадку производительности).

> Ни ты ни я не знаем и нет смысла спорить. Но есть факт, что они рендерят 60 миллиардов треугольников в реалтайме.
А другие рендерят пару миллионов и получают такое же качество картинки (в плане геометрии как минимум). А оставшееся время кадра могут потратить на что-нибудь другое.

#14
21:37, 20 мая 2020

sledo
> Причина в том, что идет постоянный рассинхрон разрешения того что на экране и
> того что в памяти, из-за чего идет постоянная потеря данных при сжатии текстур.

ИМХО, возможно стоит поколдовать с GB (Garbage Collector).
Страницы: 1 2 3 4 Следующая »
Unreal EngineФорумПрограммирование