Я помню, как Джон Кармак говорил о том, как они первоначально использовали Megatexturing для Quake Wars: Enemy Territory. Технология с тех пор довольно сильно изменилась в Rage.
Мне было интересно, если кто-то здесь может дать некоторые технические детали о специфике того, что и как это развивалось с тех пор.
Я бы порекомендовал проверить статью «Virtual Texture Mapping 101» о графических процессорах Gem. По сути, он делит исходную текстуру (которая обычно бывает огромной) на меньшие фрагменты и загружает их в память графического процессора при необходимости. Эта же идея может быть использована для визуализации огромных и высокодетализированных ландшафтов.
источник
Для начала, в Beyond3D есть небольшая рецензия на некоторые технические лакомые кусочки, собранные в ходе интервью с техническим директором Splash Damage Арно ван Меером, а также старшим программистом графики Майком Армстронгом. В этой же статье конкретно упоминаются некоторые недостатки MegaTexturing в его текущей итерации на стр. 5. Она намекает на то, что Джон Кармак уже исправил некоторые из них в более поздней редакции, а также на способы исправления некоторых других, которые в то время не были жизнеспособными.
Известные примеры:
Также в этом интервью Джон Кармак утверждает, что некоторые недостатки технологии, используемой в Quake Wars, уже были исправлены во внутренних сборках - например, применение MegaTextures к произвольной геометрии, включая персонажей и транспортные средства.
источник
Презентация Sean Barret GDC 2008 Sparse Virtual Texture была его попыткой воссоздать то, что Кармэк делал в то время. Там тоже источник. С тех пор между Кармаком и Барреттом произошла переписка.
(Презентация немного плотная, но стоит потратить время на то, чтобы понять - я провел несколько часовых сессий с доской после просмотра ее дважды в течение двух дней, и, в конце концов, я понял, что понял все это намного проще, если у вас есть фрагментный шейдерный фон, которого я не имел в то время. Также очень приятно, что презентация - это демо.)
+1 к zacharmarz за упоминание отличной презентации GDC2011 Mega Meshes от людей Lionhead, работающих над Майло и Кейт. В нем упоминается множество очень практичных решений, например: рендеринг каждого другого кадра в разных местах (горячие точки, развороты на 180 градусов, увеличение, далее вдоль сплайна управления и т. Д.) Для определения видимости текстуры и уровней mip, а также передача результатов к "L2 Cache", чтобы решить некоторые проблемы потоковой передачи текстур. Не обязательно простой, но тем не менее элегантный в своей непосредственности.
источник