«Как в кино, но на консоли»: главное из разбора Unreal Engine 5 от Digital Foundry

Рендер одного полигона на пиксель и система глобального освещения.

«Как в кино, но на консоли»: главное из разбора Unreal Engine 5 от Digital Foundry
343343

Попытаюсь рассказать как Nanite будет работать. А то много вопросов вижу) 

// Note: Это мои догадки по паре статей по REYES которые я изучил. 

1. В билде хранятся только сжатые высокодетализированные модели. Настолько высоко насколько хватит бюджета места. 
2. Они стримятся в оперативку и разжимаются между диском и оперативкой (10gb/sec = это 16 байт на полигон ~ 60 миллионов полигонов в секунду уникальной сырой геометрии - это в теории, дай бог что бы половина была в реальности)
3. Потом строится виртуальная сцена из сырой геометрии. Она НЕ рендерится.
4. Поверх этой сцены строится субпиксельный меш из полигонов.
5. Этот меш шейдерится.
6. Меш отдается на рендер.

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

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

Свет.
Свет считается тоже относительно меша, а не отностиельно оригинальной геометрии. Это СИЛЬНО уменьшает кол-во работы.

Почему сейчас а не 3 года назад?
1. Скорость чтения моделей в память. Мы можем позволить себе стримить высокодетализированные модели. 
2. Нет больше штрафа за случайное чтение. HDD механически тратит время на перемещение считывающей головки. Это огромные задержки если читать не подряд. SSD - чтение любого блока одинаково быстро. 
3. Срубить бабла на некстген. Делать движок под некстген - долго и дорого. А тут эпики предлагают свой уже сейчас (2021 это для открытого рынка, уверен что студии партнеры уже пилят свой пайпланы под это двигло)

Ссылки для чтения:
http://graphics.stanford.edu/~kayvonf/papers/kayvonf_dissertation.pdf
https://pdfs.semanticscholar.org/b87b/9ed93df8b47cebb09362a726f2e8b7bc4cdd.pdf
http://www.cs.cmu.edu/afs/cs/academic/class/15869-f11/www/lectures/13_reyes.pdf

5
Ответить

самый полезный комментарий в теме, поднимем в топ !

1
Ответить

Но при этом получается, что все эти миллионы полигонов в процессе построения меша должны будут находиться в оперативной либо видеопамяти, или я чего-то не понимаю? Если так, то кажется, что именно оперативная и видеопамять окажется бутылочным горлышком. Да, ее не придется забивать текстурами на 10 минут вперёд, но тем не менее кажется, что ее объем все равно будет чуть ли не на порядок меньше, чем нужно, чтобы полностью раскрыть всю эту историю (в конце концов, она будет забиваться при такой скорости стриминга за единицы секунд), или я чего-то не учел?

Ответить