Разработчик ПО и игр Алекс Голдринг вернулся к своим реализациям Virtual Textures в WebGL, которыми занимался несколько лет назад, поделившись разборами и живыми демонстрациями. Один из примеров представляет карту Греции из Assassin's Creed: Odyssey – массивное изображение размером 32,768 x 32,768 пикселей.
При загрузке как обычной текстуры файл потребовал бы 4 ГБ видеопамяти, а сам PNG весит 804 МБ, что заняло бы значительное время на загрузку у большинства пользователей. Однако с технологией Virtual Texturing карта загружается почти мгновенно. Изображение разбивается на небольшие тайлы фиксированного размера и использует разрешение 2048 x 2048, что требует всего 16 МБ видеопамяти.
https://twitter.com/Radio_poodle/status/2011763136190136664
https://x.com/SoftEngineer/status/2011763136190136664
Голдринг объяснил принцип работы технологии. Без Virtual Textures пользователям пришлось бы загружать полный файл весом 804 МБ и ждать несколько секунд, пока браузер декодирует изображение перед использованием. После этого браузер, вероятно, завис бы при попытке загрузить текстуру в видеопамять.
Даже если представить успешную загрузку на видеокарту, файл занял бы 4 ГБ видеопамяти. Virtual Texture загружается мгновенно за счет разделения изображения на маленькие тайлы фиксированного размера с полной цепочкой уровней детализации (мипмапов).
Чтобы представить масштаб, Голдринг привел сравнение: обычная 3D-модель может использовать цветовую текстуру 2K, а в эту массивную текстуру 32K поместилось бы 256 таких текстур. При этом технология разработана для работы с еще большими размерами текстур.
Разработчик также отметил, что устранил несколько численных нестабильностей в шейдере, которые вызывали случайные артефакты. Попробовать демонстрацию и узнать больше о технологии можно на сайте разработчика.










