Попытаюсь рассказать как Nanite будет работать. А то много вопросов вижу)
// Note: Это мои догадки по паре статей по REYES которые я изучил.
1. В билде хранятся только сжатые высокодетализированные модели. Настолько высоко насколько хватит бюджета места. 2. Они стримятся в оперативку и разжимаются между диском и оперативкой (10gb/sec = это 16 байт на полигон ~ 60 миллионов полигонов в секунду уникальной сырой геометрии - это в теории, дай бог что бы половина была в реальности) 3. Потом строится виртуальная сцена из сырой геометрии. Она НЕ рендерится. 4. Поверх этой сцены строится субпиксельный меш из полигонов. 5. Этот меш шейдерится. 6. Меш отдается на рендер.
То есть каждый раз в кадре число полигонов примерно одинаково. И зависит от разрешения, а не от сложности сырой геометрии в сцене.
Ключевое отличие - модели больше не рендерятся движком. Рендерится меш из полигонов, каждый около пикселя размером. А меш собирается уже из вашей геометрии.
Свет. Свет считается тоже относительно меша, а не отностиельно оригинальной геометрии. Это СИЛЬНО уменьшает кол-во работы.
Почему сейчас а не 3 года назад? 1. Скорость чтения моделей в память. Мы можем позволить себе стримить высокодетализированные модели. 2. Нет больше штрафа за случайное чтение. HDD механически тратит время на перемещение считывающей головки. Это огромные задержки если читать не подряд. SSD - чтение любого блока одинаково быстро. 3. Срубить бабла на некстген. Делать движок под некстген - долго и дорого. А тут эпики предлагают свой уже сейчас (2021 это для открытого рынка, уверен что студии партнеры уже пилят свой пайпланы под это двигло)
Но при этом получается, что все эти миллионы полигонов в процессе построения меша должны будут находиться в оперативной либо видеопамяти, или я чего-то не понимаю? Если так, то кажется, что именно оперативная и видеопамять окажется бутылочным горлышком. Да, ее не придется забивать текстурами на 10 минут вперёд, но тем не менее кажется, что ее объем все равно будет чуть ли не на порядок меньше, чем нужно, чтобы полностью раскрыть всю эту историю (в конце концов, она будет забиваться при такой скорости стриминга за единицы секунд), или я чего-то не учел?
Попытаюсь рассказать как 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
самый полезный комментарий в теме, поднимем в топ !
Но при этом получается, что все эти миллионы полигонов в процессе построения меша должны будут находиться в оперативной либо видеопамяти, или я чего-то не понимаю? Если так, то кажется, что именно оперативная и видеопамять окажется бутылочным горлышком. Да, ее не придется забивать текстурами на 10 минут вперёд, но тем не менее кажется, что ее объем все равно будет чуть ли не на порядок меньше, чем нужно, чтобы полностью раскрыть всю эту историю (в конце концов, она будет забиваться при такой скорости стриминга за единицы секунд), или я чего-то не учел?